java – 由于JAR冲突无法运行Flume
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 由于JAR冲突无法运行Flume,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1680字,纯文字阅读大概需要3分钟。
内容图文
![java – 由于JAR冲突无法运行Flume](/upload/InfoBanner/zyjiaocheng/803/b01cced3301d42c9b920261705c09e4d.jpg)
我手动安装了Flume和Hadoop(我的意思是,不是CDH),我正试图从Cloudera运行twitter example.
在apache-flume-1.5.0-SNAPSHOT-bin目录中,我使用以下命令启动代理:
bin/flume-ng agent -c conf -f conf/twitter.conf -Dflume.root.logger=DEBUG,console -n TwitterAgent
我的conf / twitter.conf文件使用记录器作为接收器. conf / flume-env.sh为CLASSPATH分配包含twitter源定义的flume-sources-1.0-SNAPSHOT.jar.结果输出是:
(...) [ERROR org.apache.flume.lifecycle.LifecycleSupervisor$MonitorRunnable.run(LifecycleSupervisor.java:253)] 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;
at com.cloudera.flume.source.TwitterSource.start(TwitterSource.java:139)
冲突是由一个FilterQuery类产生的,该类在flume lib中的其他地方定义,并且不包含setIncludeEntities方法.对我来说,包含此类的文件是twitter4j-stream-3.0.3.jar,我不能按照建议here从类路径中排除该文件.
解决方法:
我相信这种经历对你来说非常令人沮丧,对我而言肯定是这样.主要问题是,文件flume-sources-1.0-SNAPSHOT.jar和twitter4j-stream-3.0.3.jar都包含相同的FilterQuery.class.这就是在日志文件中生成冲突消息的原因.
我不是Java或大数据专家,但我可以为您提供此问题的替代方案.从here下载Twitter4j-stream-2.6.6.jar或更低版本并替换twitter4j-stream-3.0.3.jar.所有3.X.X都使用此类.更换后,一切都应该正常工作.但是在下载大量推文后你可能会遇到一些堆错误.请谷歌解决方案,因为它已在3.X.X文件中解决.
-编辑
另外,请不要忘记下载并替换/usr/lib / flume-ng文件夹中的所有twitter4j文件.即,twitter4j-media-support-2.2.6.jar,twitter4j-stream-2.2.6.jar和twitter4j-core-2.2.6.jar.与这些文件中的版本相关的任何不匹配也会产生问题.
内容总结
以上是互联网集市为您收集整理的java – 由于JAR冲突无法运行Flume全部内容,希望文章能够帮你解决java – 由于JAR冲突无法运行Flume所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。