用exec source运行flume-ng agent后hdfs上不能创建指定的文件目录,可能的三种情况如下
一、配置文件中的监听端口和hadoop下的core-site.xml中的端口不一致
在我新建的.conf文件里面,需要配置hdfs的路径
hdfs://192.168.122.102:9000/flume/upload/%Y%m%d/%H
注意:此处端口号应该和hadoop下的core-site.xml里面的配置一样,否则写入不到Hdfs,这里最为致命
然后,开启flume监听端口。
二、guava-11.0.2.jar版本不一致
执行flume任务时报错:
Exception in thread “SinkRunner-PollingRunner-DefaultSinkProcessor” java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;Ljava/lang/Object;)V
解决办法:
将flume的lib下的低版本guava-11.0.2.jar换成Hadoop下的高版本guava-27.0-jre.jar
cd /usr/local/hadoop-3.1.3/share/hadoop/common/lib/
cp guava-27.0-jre.jar /usr/local/flume-1.9.0/lib/
- 然后重新执行flume任务不再报错。
三、文件权限问题
1、在普通用户权限下执行flume-ng agent后可能会提示"/opt/module/flume/flume