概述
flume采集数据到hdfs时报错java.lang.NoSuchMethodError
在最近的学习中,我想用flume和kafka以及hdfs设计一个日志采集的管道,使用flume监控本地文件,当本地文件发生变化时候将数据采集到kafka中,然后在通过flume消费kafka的数据采集到hdfs中存储。
但是在进行的过程中发现有一些问题,程序采集完毕之后,hdfs中并没有收集到数据,然后就开始了排除bug的选择
首先怀疑是配置文件编写错误,但是如果配置文件有明显错误就不可能执行成功,本着仔细的原则还是从头到尾的检查了一遍并没有发现配置文件的错误
然后怀疑是在监控本地文件到kafka中出现错误,是否kafka采集到了数据,然后另外打开一个终端同时消费kafka中的topic,再次运行发现可以消费到数据,这个怀疑排除
最后怀疑并且有些确定是kafka采集到hdfs的时候出现错误,然后到消费kafka到hdfs的终端中,打开flume的日志,逐一查看发现了在运行的过程中报错
报错原因:因为hadoop3.0+之后的guava和flume1.9的guava版本不一致造成的。
解决方法:在最初安装的时候因为是布置的集群模式,我只在一台机器上删除,而在另外的机器上忘记了删除,所以将flume/lib下的guava-11.0.2.jar删除掉即可
注意:删除guava-11.0.2.jar的服务器节点,一定要配置hadoop环境变量。否则会报java.lang.ClassNotFoundException异常。
最后
以上就是英勇小白菜为你收集整理的flume采集数据到hdfs时报错java.lang.NoSuchMethodErrorflume采集数据到hdfs时报错java.lang.NoSuchMethodError的全部内容,希望文章能够帮你解决flume采集数据到hdfs时报错java.lang.NoSuchMethodErrorflume采集数据到hdfs时报错java.lang.NoSuchMethodError所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复