先说一下环境,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/ha