本文环境如下:
操作系统:CentOS 7.2.1511 64位
Flume版本:1.6.0
1. 当Flume与Hadoop不在同一服务器上
当Flume与Hadoop不在同一服务器上时,又配置了写HDFS,则Flume启动时会报找不到类的错误。
需要添加Hadoop相关的包到flume的classpath配置中(或者直接拷贝到flume的lib文件夹中)。
具体需要的包,我是在maven项目中配置:
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
<version>2.6.4</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-hdfs</artifactId>
<version>2.6.4</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
<version>2.6.4</version>
</dependency>
然后把所有依赖的包(共82个),都拷贝到flume的lib中(有些包会和lib中的重复)。实际情况应该有蛮多包是没有使用的,以后有时间再精简了。
2. 写入配置了HA的HDFS中
当你的Flume需要将数据写入HDFS中,而Hadoop服务器又配置了HA,我尝试了2种配置方案。
方案1
配置其中一个namenode,并添加到host。
该方案能用,但是Hadoop的HA就起不了作用了。当你一个节

本文详细记录了Flume在与Hadoop不在同一服务器时的配置问题,以及如何处理Flume写入配置了HA的HDFS中的情况。在Hadoop HA环境下,通过设置nameservices及拷贝Hadoop配置文件到Flume的conf目录解决了问题。此外,还探讨了Kafka Channel的parseAsFlumeEvent配置问题,因当前版本存在bug,暂时采用Memory Channel+Kafka Sink作为替代方案。
最低0.47元/天 解锁文章
2764





