报错内容
ERROR - org.apache.flume.sink.hdfs.HDFSEventSink.process(HDFSEventSink.java:459)
java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;Ljava/lang/Object;)
报错如下图:
集群背景(基于 Hadoop 3.3.0 集群安装部署 Flume 1.9.0)
- Hadoop 3.3 HDFS 分布式集群基础环境
https://blog.csdn.net/llwy1428/article/details/111144524 - Flume 设置了sink.type 为 hdfs
即:
报错原因
Hadoop 3.3.0 中的 guava 版本和 Flume 1.9.0 中的版本不一致
经查
Hadoop 3.3.0 中 guava-27.0-jre.jar
Flume 1.9.0 中 guava-11.0.2.jar
解决方案
删除低版本的 guava ,把高版本的 guava 复制一份放在低版本处
- 删除 Flume 中的 guava
- 把 Hadoop 中的 guava 复制到 Flume 中