因为项目需求,最近一直在搭建日志存储服务器,初步打算log4j2+hadoop,然而在使用hdfs sink的时候发现问题了。先说一下大体的使用hdfs sink步骤:
- 新建xx.conf文件,写入:
- 把hadoop的配置文件core-site.xml以及hdfs-site.xml放入flume的conf文件夹
- 把图示jar包放入flume的lib文件夹中:
- 编辑conf/flume-env.sh文件,指定jdk位置
这个时候启动出现问题了,报错:
按照StackOverflow的说法是core-site中加入:
<property>
<name>fs.hdfs.impl</name>
<value>org.apache.hadoop.hdfs.DistributedFileSystem</value>
</property>
这个时候报新错:无法发现类org.apache.hadoop.hdfs.DistributedFileSystem,所以初步怀疑应该是jar包版本的原因,因为hadoop版本为2.8,所以flume中集成的hadoop jar包也为2.8,果断降级使用,换2.7依然报错,换2.6项目顺利启动,删除core-site中fs.hdfs.impl没有任何影响。等有机会跟踪一下源码发现问题吧。特此记录一下。有转载的朋友说明一下出处,谢谢。