flume twitter配置错误

uyhoqukh  于 2021-06-04  发布在  Flume
关注(0)|答案(2)|浏览(395)

我正在尝试使用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。有什么办法吗?
提前谢谢。

xriantvc

xriantvc1#

这显然是一个依赖性错误。flume源代码库需要一个不存在的twitter4j版本,因此出现nosuchmethod错误。我建议你选择正确的版本
twitter源代码为1.6.0-snapshot,twitter 4j为3.0.3。您应该参考flume的pom.xml,它包含您需要的所有版本信息。
应该注意的是,您应该尽可能使用最新的版本,因为旧的实现将不起作用。与此同时,twitter打破了它们的旧api。
希望这有帮助。

vcirk6k6

vcirk6k62#

这是agent.conf文件中类的完全限定名的问题。在旧版本中,类名为:com.cloudera.flume.source.twittersource在最新版本的flume中twittersource已经发布,不需要单独下载。类名更改为org.apache.flume.source.twitter.twittersource
请小心更改类名,尽管它对你有用

相关问题