我正在尝试执行水槽从Twitter流中获取数据,但是在执行水槽时却收到此错误。
[错误-org.apache.flume.lifecycle.LifecycleSupervisor $ MonitorRunnable.run(LifecycleSupervisor.java:253)]无法启动EventDrivenSourceRunner:{source:com.cloudera.flume.source.TwitterSource {name:Twitter,state :IDLE}}-出现异常。 java.lang.NoSuchMethodError:twitter4j.TwitterStream.addListener(Ltwitter4j / StreamListener;)V 在com.cloudera.flume.source.TwitterSource.start(TwitterSource.java:140) 在org.apache.flume.source.EventDrivenSourceRunner.start(EventDrivenSourceRunner.java:44) 在org.apache.flume.lifecycle.LifecycleSupervisor $ MonitorRunnable.run(LifecycleSupervisor.java:251) 在java.util.concurrent.Executors $ RunnableAdapter.call(Executors.java:471) 在java.util.concurrent.FutureTask.runAndReset(FutureTask.java:304) 在java.util.concurrent.ScheduledThreadPoolExecutor $ ScheduledFutureTask.access $ 301(ScheduledThreadPoolExecutor.java:178) 在java.util.concurrent.ScheduledThreadPoolExecutor $ ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) 在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 在java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:615) 在java.lang.Thread.run(Thread.java:745)
我是初学者,在Cloudera快速入门中工作。在寻找解决方案时,据说先安装maven,然后从那里构建flume-snapshot jar文件,但是我不知道如何在Cloudera quickstart中安装maven。有关如何纠正此错误的任何帮助,请在这里停留1周。
答案 0 :(得分:0)
找到了解决方案: twitter4j文件和水槽快照jar引发了冲突。因此,我通过使用jarx更改了twitter4j jar的文件扩展名来重命名了它们。通过阅读此article,我所做的另一件事是将水槽快照放入以下层次结构中。 /usr/lib/flume-ng/lib/plugins.d/flumesnapshot,并在var目录中遵循相同的模式。