flume往hdfs写报错:java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;Ljava/lang/Object;)V
这个错误是因为flume内依赖的guava和hadoop内guava版本不一致导致的。
解决方法:
首先确认hadoop和flume的guava版本
hadoop查看guava路径是:/moudle/hadoop-3.3.0/share/hadoop/common/lib/
hive查看guava路径是:/moudle/flume1.9/lib/
查看后确认hadoop的guava版本是guava-27.0-jre.jar,flume1.9的guava版本是guava-11.0.2.jar,因此删除低版本的guava,把高版本的复制过去,统一hadoop和hive的guava版本,这里统一使用guava-27.0-jre.jar。
cp /moudle/hadoop-3.3.0/share/hadoop/common/lib/guava-27.0-jre.jar /moudle/flume1.9/lib/