flume使用hdfs sink時需要注意的幾點
阿新 • • 發佈:2019-02-13
最近接觸了flume,這個日誌收集器在擴充套件性方面確實很便捷,相信這與其架構的設計有密切的關係。書歸正傳,這次用到了hdfs sink在使用時還是有幾點需要注意的,在此和大家分享一下。
第一部分windows下搭建單機的hdfs
如果你和我一樣沒有linux的測試環境,想在windows搭建hdfs,可以參考下面的連結,筆者就是參照這篇文章進行部署的
需要注意的是windows下使用hdfs需要依賴hadoop.dll winutils.exe等,此處有兩點需要注意
1. hadoop.dll winutils.exe在官方的bin包中沒有,可以通過原始碼編譯或者在網上下載已經編譯好的
2. 在2.2版本後這些依賴包,均發生了改變,也就是說低版本的這些依賴,在高版本上使用會報錯
第二部分hdfs sink
1.需要把hadoop的包引入到%flume_home%/lib中
1.1 hadoop-common 不引入會報錯 classNotFound SequenceFile
1.2 hadoop-hdfs 不引入會報錯 no filesystem for scheme hdfs
1.3 flume-ng啟動時的classpath需要加入%hadoop_home%/share/hadoop/common/lib ,這主要是hadoop-common依賴的jar在那個目錄
1.4hdfs需要event的header裡要帶時間戳,如果沒有可以通過設定hdfs.useLocalTimeStamp=true來使用本地時間戳
以上就是在使用時,需要注意的地方,如果感興趣就行動起來吧,想的再多,也不如動手試試。
最近一直在接觸flume,後期可能會寫一些flume的原始碼及架構解讀。