我有2个CDH4群集。 一个使用CentOS 6.4(真实硬件)其他Ubuntu 12.04(Amazon EC2)。
所有配置文件a手动相同(使用Cloudera管理器)。 我尝试开始Cloudera-twitter-example。当我开始使用CentOS集群时,它可以毫无问题地工作。但是在Ubuntu集群上,Flume在日志文件中出现了这样的错误:
2013-09-11 15:04:54,491 INFO org.apache.flume.instrumentation.MonitoredCounterGroup: Component type: SINK, name: HDFS started
2013-09-11 15:04:54,527 ERROR org.apache.flume.lifecycle.LifecycleSupervisor: 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;
经过一些谷歌搜索后,我找到了this solution in comments Suresh E Gopalan 2013年8月20日上午2:43
所以我们有另一个JAR文件 search-contrib-0.9.1-cdh4.3.0-SNAPSHOT-jar-with-dependencies.jar with FLUME_CLASSPATH中的同一个类并与正确的类冲突 暂时将其重命名为.org扩展名,以便将其排除 来自启动时的classpath
重命名此jar后,Flume开始在Ubuntu集群上运行。 在CentOS集群上,我有相同的jar具有相同的类,但不需要重命名。
为什么会发生这种情况?如果没有重命名,我应该在Ubuntu群集中做什么更改以获得相同的行为?
答案 0 :(得分:2)
重建flume-source,不要下载预建的snapshot.jar