【问题标题】:Flume twitter config errorFlume 推特配置错误
【发布时间】:2015-04-08 12:23:06
【问题描述】:

我正在尝试使用 Flume 提取 Twitter 数据。但我收到以下错误

15/04/08 23:16:36 ERROR node.PollingPropertiesFileConfigurationProvider: Unhandled error
 java.lang.NoSuchMethodError: twitter4j.conf.Configuration.isStallWarningsEnabled()Z
at twitter4j.TwitterStreamImpl.<init>(TwitterStreamImpl.java:60)
at twitter4j.TwitterStreamFactory.<clinit>(TwitterStreamFactory.java:40)
at com.cloudera.flume.source.TwitterSource.<init>(TwitterSource.java:64)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:408)
at java.lang.Class.newInstance(Class.java:433)
at org.apache.flume.source.DefaultSourceFactory.create(DefaultSourceFactory.java:42)
at org.apache.flume.node.AbstractConfigurationProvider.loadSources(AbstractConfigurationProvider.java:327)
at org.apache.flume.node.AbstractConfigurationProvider.getConfiguration(AbstractConfigurationProvider.java:102)
at org.apache.flume.node.PollingPropertiesFileConfigurationProvider$FileWatcherRunnable.run(PollingPropertiesFileConfigurationProvider.java:140)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)

我使用了 cloudera 的 flume-sources-1.0-SNAPSHOT.jar。TwitterAgent 运行时出现上述错误。 有什么解决办法吗?

提前致谢。

【问题讨论】:

  • 为您的问题添加更多内容。你做了什么导致这个错误?

标签: flume hadoop2 flume-ng flume-twitter


【解决方案1】:

这显然是一个依赖错误。 flume-sources 库需要一个不存在的 Twitter4j 版本,因此出现 NoSuchMethod 错误。我建议您提取正确的版本,这将是

twitter 源代码为 1.6.0-SNAPSHOT,twitter4j 代码为 3.0.3。你应该参考flume的pom.xml,里面有你需要的所有版本信息。

应该注意的是,您应该尽可能使用最新版本,因为旧的实现将无法工作。与此同时,Twitter 打破了他们的旧 API。

希望这会有所帮助。

【讨论】:

  • 在哪里可以下载 1.6.0-SNAPSHOT jar?
  • 您需要查看相应的水槽源并使用 maven 构建。
【解决方案2】:

这是您的 Agent.conf 文件中类的完全限定名称的问题。 在旧版本中,类名是:com.cloudera.flume.source.TwitterSource 在 Flume 的最新版本中,TwitterSource 已经发货,无需单独下载。 类名改为 org.apache.flume.source.twitter.TwitterSource

请谨慎更改班级名称,一定会为您工作

【讨论】:

    猜你喜欢
    • 2019-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-29
    相关资源
    最近更新 更多