一、问题描述
启动flume(1.9) 时报错,如图
2020-12-23 15:37:58,284 ERROR hdfs.HDFSEventSink: process failed
java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;Ljava/lang/Object;)V
at org.apache.hadoop.conf.Configuration.set(Configuration.java:1357)
at org.apache.hadoop.conf.Configuration.set(Configuration.java:1338)
at org.apache.hadoop.conf.Configuration.setBoolean(Configuration.java:1679)
at org.apache.flume.sink.hdfs.BucketWriter.open(BucketWriter.java:221)
at org.apache.flume.sink.hdfs.BucketWriter.append(BucketWriter.java:572)
at org.apache.flume.sink.hdfs.HDFSEventSink.process(HDFSEventSink.java:412)
at org.apache.flume.sink.DefaultSinkProcessor.process(DefaultSinkProcessor.java:67)
at org.apache.flume.SinkRunner$PollingRunner.run(SinkRunner.java:145)
at java.lang.Thread.run(Thread.java:748)
Exception in thread "SinkRunner-PollingRunner-DefaultSinkProcessor" java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;Ljava/lang/Object;)V
at org.apache.hadoop.conf.Configuration.set(Configuration.java:1357)
at org.apache.hadoop.conf.Configuration.set(Configuration.java:1338)
at org.apache.hadoop.conf.Configuration.setBoolean(Configuration.java:1679)
at org.apache.flume.sink.hdfs.BucketWriter.open(BucketWriter.java:221)
at org.apache.flume.sink.hdfs.BucketWriter.append(BucketWriter.java:572)
at org.apache.flume.sink.hdfs.HDFSEventSink.process(HDFSEventSink.java:412)
at org.apache.flume.sink.DefaultSinkProcessor.process(DefaultSinkProcessor.java:67)
at org.apache.flume.SinkRunner$PollingRunner.run(SinkRunner.java:145)
at java.lang.Thread.run(Thread.java:748)
二、解决
一般这类问题,classNotFound,不是少jar包,那就是jar包冲突,查看flume安装目录下lib下面查看是有guava这个包的
-rw-rw-r-- 1 hadoop hadoop 37846 12月 18 2018 flume-taildir-source-1.9.0.jar
-rw-rw-r-- 1 hadoop hadoop 81391 12月 18 2018 flume-thrift-source-1.9.0.jar
-rw-rw-r-- 1 hadoop hadoop 19045 12月 18 2018 flume-tools-1.9.0.jar
-rw-rw-r-- 1 hadoop hadoop 15217 12月 18 2018 flume-twitter-source-1.9.0.jar
-rw-r--r-- 1 hadoop hadoop 32359 9月 12 2018 geronimo-jms_1.1_spec-1.1.1.jar
-rw-rw-r-- 1 hadoop hadoop 189285 9月 12 2018 gson-2.2.2.jar
-rw-rw-r-- 1 hadoop hadoop 1648200 9月 13 2018 guava-11.0.2.jar
-rw-r--r-- 1 hadoop hadoop 747794 10月 12 2018 httpclient-4.5.3.jar
-rw-r--r-- 1 hadoop hadoop 323824 10月 12 2018 httpcore-4.4.6.jar
-rw-rw-r-- 1 hadoop hadoop 132202 9月 12 2018 irclib-1.10.jar
-rw-rw-r-- 1 hadoop hadoop 66981 11月 14 2018 jackson-annotations-2.9.7.jar
-rw-rw-r-- 1 hadoop hadoop 324036 11月 14 2018 jackson-core-2.9.7.jar
我们看到版本是:guava-11.0.2.jar
不缺包,那就是包冲突,我们来看本地hadoop中guava的版本:share/hadoop/common/lib
-rw-r--r--. 1 hadoop hadoop 190432 9月 12 2019 gson-2.2.4.jar
-rw-r--r--. 1 hadoop hadoop 2747878 9月 12 2019 guava-27.0-jre.jar
-rw-r--r--. 1 hadoop hadoop 59825 9月 12 2019 hadoop-annotations-3.1.3.jar
-rw-r--r--. 1 hadoop hadoop 138823 9月 12 2019 hadoop-auth-3.1.3.jar
对比一下版本不一致
最后把Hadoop中guava的包拷贝到flume中去,问题解决!!!!