2

我有 2 个 CDH4 集群。一个带有 CentOS 6.4(真实硬件)另一个 Ubuntu 12.04(Amazon EC2)。

所有配置文件都是手动制作的(使用 Cloudera 管理器)。我尝试启动Cloudera-twitter-example。当我在 CentOS 集群上启动 flume 时,它​​可以正常工作。但是在 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;

经过一番谷歌搜索后,我在 Suresh E Gopalan的评论中找到了这个解决方案2013 年 8 月 20 日凌晨 2:43

于是我们又多了一个JAR文件search-contrib-0.9.1-cdh4.3.0-SNAPSHOT-jar-with-dependencies.jar,同一个类,和FLUME_CLASSPATH中正确的有冲突,暂时重命名为.org扩展名,这样就可以了在启动时从类路径中排除

重命名这个 jar 后,Flume 开始在 Ubuntu 集群上工作。在 CentOS 集群上,我有相同的 jar 和相同的类,但它不需要重命名。

为什么会发生,我应该在 Ubuntu 集群中做些什么更改才能在不重命名的情况下具有相同的行为?

4

1 回答 1

2

重建flume-source,不要下载预建的snapshot.jar

于 2014-07-20T08:15:39.663 回答