【发布时间】:2013-10-04 20:13:41
【问题描述】:
我已经手动安装了 Flume 和 Hadoop(我的意思是,不是 CDH),我正在尝试从 Cloudera 运行 twitter example。
在apache-flume-1.5.0-SNAPSHOT-bin目录下,我用以下命令启动代理:
bin/flume-ng agent -c conf -f conf/twitter.conf -Dflume.root.logger=DEBUG,console -n TwitterAgent
我的conf/twitter.conf 文件使用记录器作为接收器。 conf/flume-env.sh 将包含 Twitter 源定义的 flume-sources-1.0-SNAPSHOT.jar 分配给 CLASSPATH。结果输出是:
(...) [ERROR org.apache.flume.lifecycle.LifecycleSupervisor$MonitorRunnable.run(LifecycleSupervisor.java:253)] Unable to start EventDrivenSourceRunner: { source:com.cloudera.flume.source.TwitterSource{name:Twitter,state:IDLE} } - Exception follows. java.lang.NoSuchMethodError:
twitter4j.FilterQuery.setIncludeEntities(Z)Ltwitter4j/FilterQuery;
at com.cloudera.flume.source.TwitterSource.start(TwitterSource.java:139)
冲突是由在 Flume 库中其他地方定义的 FilterQuery 类引起的,该类不包含 setIncludeEntities 方法。对我来说,包含此类的文件是 twitter4j-stream-3.0.3.jar,我无法按照建议的 here 从类路径中排除该文件。
【问题讨论】:
标签: java hadoop twitter4j flume