日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Flume 1.7 源码分析(一)源码编译

發布時間:2024/2/28 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Flume 1.7 源码分析(一)源码编译 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Flume 1.7 源碼分析(一)源碼編譯
Flume 1.7 源碼分析(二)整體架構
Flume 1.7 源碼分析(三)程序入口

1 說明

Flume是Cloudera提供的一個高可用的,高可靠的,分布式的海量日志采集、聚合和傳輸的系統,目前已經是Apache的一個子項目。Flume是一個專用工具被設計為旨在往HDFS、HBase發送數據。它對HDFS有特殊的優化,并且集成了Hadoop的安全特性。本文將詳細分析Flume核心模塊的源碼實現。

2 下載、編譯

2.1 源碼檢出

Flume源碼的git地址是:https://git-wip-us.apache.org/repos/asf/flume.git。本文采用的分支是flume-1.7。

2.2 源碼編譯

Flume采用Maven進行構建。本文采用IDEA作為編譯、調試工具。

2.2.1 Maven依賴下載

配置阿里云的Maven服務器,速度較快,并可完成絕大多數包的下載。

<mirror> <id>nexus-aliyun</id><mirrorOf>*</mirrorOf><name>Nexus aliyun</name><url>http://maven.aliyun.com/nexus/content/groups/public</url> </mirror>

使用阿里云Maven服務器,仍然有一些包無法解決,例如FlumeAuth模塊的hadoop-minikdc和SolrSink的kite-morphlines-all等。由于這部分缺失的包,基本都是屬于flume的插件模塊之中,可直接關閉這些插件模塊,不會影響主程序的執行和源碼閱讀。同時,還可移除其他的你不需要使用的source和sink和channel插件模塊,可加快編譯速度。

導入好的項目如下圖所示:

其中比較重要的就是上圖圈起來的模塊了,其中flume-ng-core存放了最核心部分的代碼,包含基礎的Source、Channel、Sink等;flume-ng-node則是存放了程序啟動的代碼(入口函數)。

其他可能會用到的模塊就是flume-ng-sources、flume-ng-channels、flume-ng-sinks,這3個模塊存放了非必須的flume組件(flume-ng-core中未包含的),里面有些組件也是很常用的。

2.2.2 編譯打包

使用mvn clean install -Dmaven.test.skip=true進行打包,看到BUILD SUCCESS則代表編譯成功,可進行下一步。

本步驟一定要有,不然debug的時候會報某些類找不到,這些類大多數是由avro定義的文件編譯后才會生成的class文件。

2.2.3 簡單測試

在TestMemoryChannel類右鍵選擇Run ‘TestMemoryChannel’運行JUnit單元測試。檢查是否有報錯。

總結

以上是生活随笔為你收集整理的Flume 1.7 源码分析(一)源码编译的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。