本文环境如下:
操作系统: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
配置