我正在使用Hadoop 2.9.2和Flume 1.4.0从Twitter获取数据,但是我停留在以下段落:当我尝试使用bin/flume-ng agent -n TwitterAgent --conf ./conf/ -f conf/flume-twitter.conf -Dflume.root.logger=DEBUG,console
运行该应用程序时,我得到以下信息错误:
(conf-file-poller-0) [ERROR - org.apache.flume.node.PollingPropertiesFileConfigurationProvider$FileWatcherRunnable.run(PollingPropertiesFileConfigurationProvider.java:149)] Unhandled error
java.lang.NoSuchMethodError: com.google.common.cache.CacheBuilder.refreshAfterWrite(JLjava/util/concurrent/TimeUnit;)Lcom/google/common/cache/CacheBuilder;
所以我想那个软件包有问题,但是,因为我对Hadoop和Flume非常了解,所以我真的不知道出什么问题。
假设Hadoop工作正常(我再次确认了这一点),我正在按照本指南进行操作:
flume-sources-1.0-SNAPSHOT.jar
(附加)并解压缩到水槽的lib
文件夹中。.conf
文件:5.1创建文件conf / flume-twitter.conf并复制/粘贴此文件,并正确填充:
TwitterAgent.sources = Twitter
TwitterAgent.channels = MemChannel
TwitterAgent.sinks = HDFS
TwitterAgent.sources.Twitter.type = com.cloudera.flume.source.TwitterSource
TwitterAgent.sources.Twitter.channels = MemChannel
TwitterAgent.sources.Twitter.consumerKey =
TwitterAgent.sources.Twitter.consumerSecret =
TwitterAgent.sources.Twitter.accessToken =
TwitterAgent.sources.Twitter.accessTokenSecret =
TwitterAgent.sources.Twitter.keywords =
TwitterAgent.sinks.HDFS.channel = MemChannel
TwitterAgent.sinks.HDFS.type = hdfs
TwitterAgent.sinks.HDFS.hdfs.path = hdfs://localhost:9000/tweets/
TwitterAgent.sinks.HDFS.hdfs.fileType = DataStream
TwitterAgent.sinks.HDFS.hdfs.writeFormat = Text
TwitterAgent.sinks.HDFS.hdfs.batchSize = 1000
TwitterAgent.sinks.HDFS.hdfs.rollSize = 0
TwitterAgent.sinks.HDFS.hdfs.rollCount = 10000
TwitterAgent.channels.MemChannel.type = memory
TwitterAgent.channels.MemChannel.capacity = 10000
TwitterAgent.channels.MemChannel.transactionCapacity = 100
5.2将conf/flume-env.sh.template
重命名为conf/flume-env.sh
并添加以下行:
export JAVA_HOME=/your/java/path
FLUME_CLASSPATH="/your/path/to/apache-flume-1.4.0-bin/lib/flume-sources-1.0-SNAPSHOT.jar"
在.bashrc文件中设置FLUME_HOME
,并添加以下行:
export FLUME_HOME=/your/path/to/apache-flume-1.4.0-bin
export PATH=$PATH:/FLUME_HOME/bin
export CLASSPATH=$CLASSPATH:/FLUME_HOME/lib/*
可能还需要具有HADOOP_HOME
(使用相同的步骤)。
使用源.bashrc更新。
复制/粘贴以下文件:
复制.jar
文件夹中share/hadoop/common
中的所有flume/lib
文件
复制.jar
文件夹中share/hadoop/common/lib
中所有flume/lib
个文件
从以下位置开始水槽:
bin/flume-ng agent -n TwitterAgent --conf ./conf/ -f conf/flume-twitter.conf -Dflume.root.logger=DEBUG,console
我和我的朋友遵循相同的指南,并执行了完全相同的步骤,但是尽管它起作用了,但我的却没有。我该怎么解决?