flume與hdfs集成排雷指南

先說一下環境,flume 1.9.0,hadoop 3.2.1,兼容沒有問題,官方文檔沒什麼好說的,足夠詳細,每一項後面都附帶有例子,好評。但是在配置sink to hdfs的時候足足踩了不少雷,記錄下來希望可以幫到更多的人。


錯誤最常見的還是java.lang.NoClassDefFoundError異常,出現這個提示100%是因爲flume缺少相應的組件包,下面分別說一下缺少的內容,找到對應jar之後複製到{FLUME_HOME}/lib下即可。

org/apache/hadoop/io/SequenceFile$CompressionType

缺少hadoop-common-X.jar,目錄在{HADOOP_HOME}/share/hadoop/common

com/ctc/wstx/io/InputBootstrapper

缺少woodstox-core-X.jar,目錄在{HADOOP_HOME}/share/hadoop/common/lib

org/codehaus/stax2/XMLInputFactory2

缺少stax2-api-X.jar,目錄在{HADOOP_HOME}/share/hadoop/common/lib

com.google.common.base.Preconditions.checkArgument

guava包版本不一致(通常是過低),從這裏獲取新版本並刪除舊版{HADOOP_HOME}/share/hadoop/common/lib

org/apache/commons/configuration2/Configuration

缺少commons-configuration2-X.jar,目錄在{HADOOP_HOME}/share/hadoop/common/lib

org/apache/hadoop/util/PlatformName

缺少hadoop-auth-X.jar,目錄在{HADOOP_HOME}/share/hadoop/common/lib

org/apache/htrace/core/Tracer

缺少htrace-core4-X-incubating.jar,目錄在{HADOOP_HOME}/share/hadoop/common/lib

No FileSystem for scheme: hdfs

缺少hadoop-hdfs-X.jarhadoop-hdfs-client-X.jar,目錄在{HADOOP_HOME}/share/hadoop/hdfs

commons-lang3

可能還會出現commons-lang3一類的錯誤,日誌太多已經找不到當時完整的錯誤提示了,這個只需要把{FLUME_HOME}/liblang-2.5的包刪掉換成lang3的就可以,目錄在{HADOOP_HOME}/share/hadoop/common/lib


org.apache.hadoop.ipc.RpcException

這個問題與以下兩個問題類似:
RPC response exceeds maximum data length
RPC connect refused
檢查flume的任務配置文件中hdfs.path是否正確,這裏應填寫namenode的rpc地址而不是http地址,務必注意hadoop3與hadoop2的端口變化

Operation category READ is not supported in state standby

此錯誤會出現在HDFS處於HA模式時,當flume任務配置文件中hdfs.path選擇了處於standbynamenode時便會報告此錯誤,解決方法是將path指向處於active狀態的namenode

java.net.UnknownHostException: mycluster

如果在flume的任務配置文件中hdfs.path指向的是HDFS集羣地址則會出現此錯誤,將hadoop的core-site.xmlhdfs-site.xml複製到{FLUME_HOME}/conf目錄下即可

當sink非logger類型時控制檯不輸出日誌(包括錯誤日誌)

在啓動命令後面加上-Dflume.root.logger=INFO,console

source是文本文件但HDFS中保存的是16進制

flume任務配置中加上下面兩行:

a1.sinks.k1.hdfs.writeFormat = Text
a1.sinks.k1.hdfs.fileType = DataStream

無法通過web上傳/下載HDFS文件

首先要保證配置正確且可以通過命令上傳文件,觀察通過web下載HDFS文件時的請求url:
在這裏插入圖片描述
不用多解釋了吧,去配host,上傳同理。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章