即将上线的flume服务器面临的一系列填坑笔记

                                            作者:尹正杰

版权声明:原创作品,谢绝转载!否则将追究法律责任。

 

一.flume缺少依赖包导致启动失败!

报错信息如下:

2018-10-17 11:07:43,369 (conf-file-poller-0) [ERROR - org.apache.flume.node.PollingPropertiesFileConfigurationProvider$FileWatcherRunnable.run(PollingPropertiesFileConfigurationProvider.java:146)] Failed to start agent because dependencies were not found in classpath. Error follows.

  上面的报错信息很明显的告诉了我们,缺少依赖包。没有找到依赖环境!我对比了线上的flume的lib目录下和我新集群的lib目录,发现是有点不一样!下图就是我线上的环境:

  下图就是我新集群的环境:

  此时相信大家看到这种情况,已经迫不及待的想把线上的jar包都拷贝过来,观察问题是否解决,没错,我也是这么想的,于是我将线上的jar包拷贝到了我的集群。如下图:

  拷贝完成后,观察我的新集群的jar包和线上jar包环境是一致的!如下图: 

  我新集群的环境和线上的保持一致后,重新执行上述的错误就不在出现啦!

二.内存溢出,导致flume运行崩溃

解决了上面关于依赖包的问题,发现新错又出现了,报错OOM,报错信息如下:

Exception in thread "PollableSourceRunner-KafkaSource-kafkaSource" java.lang.OutOfMemoryError: GC overhead limit exceeded
at java.util.ArrayList.iterator(ArrayList.java:834)

Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "PollableSourceRunner-KafkaSource-kafkaSource"
Exception in thread "SinkRunner-PollingRunner-DefaultSinkProcessor" java.lang.OutOfMemoryError: GC overhead limit exceeded

Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "SinkRunner-PollingRunner-DefaultSinkProcessor"

  相必须看到上述的报错的小伙伴应该都跟我一样,第一反应就是调大内存,在将堆内存调大之前,我们先看一下flume默认给我分配堆堆内存是多大,如下图:(我们看到flume默认指定堆堆大堆内存为20M,它崩溃了是理所当然的,毕竟我们公司的数据量也不小!)

  你是不是很好奇,这个20M大小在哪里设置的呢?其实就是在flume-ng这个脚本里写死了,编辑你的flume-ng脚本,查看第225行,如下图:

  找到原因呢后,我们可以修改这个上面的配置文件(/soft/apache-flume-1.7.0-bin/bin/flume-ng,这个路径跟你安装flume的路径去找,推荐使用which,find命令将他找出来!)参数(JAVA_OPTS="-Xmx10240m"),我们将20M改为10G,具体操作如下:

  当然,如果你不想修改默认的参数,我们也可以在启动的时候修改JVM的堆内存空间。我在命令行启动flume进程的时候手动分配Java的堆内存大小为2G,如下图:

三.缺少Hadoop的运行环境导致无法通过kafka将数据拷贝到hdfs中。

报错信息如下:

2018-10-17 13:06:45,287 (SinkRunner-PollingRunner-DefaultSinkProcessor) [WARN - org.apache.flume.sink.hdfs.BucketWriter.getRefIsClosed(BucketWriter.java:182)] isFileClosed is not available in the version of HDFS being used. Flume will not attempt to close files if the close fails on the first attempt
java.lang.NoSuchMethodException: org.apache.hadoop.fs.LocalFileSystem.isFileClosed(org.apache.hadoop.fs.Path)

  遇到上面的这种情况,首先请确认你的hdfs的环境是否安装了,我的flume机器上仅仅部署了jdk和flume环境,其他的环境都没部署。如果你跟我一样没有部署的话,我给你个思路:

    1>.去Apache官网下载和你集群中hdfs版本一致的包,安装到你的服务器上;(我cdh默认hdfs版本是2.6.0,于是我就去官网下载相应的包:https://archive.apache.org/dist/hadoop/common/hadoop-2.6.0/)

    2>.安装过程很简单,解压即可,然后在“/etc/profile”这个配置文件中配置一下环境变了,最后别忘记将你要上传到hdfs集群中的配置文件(core-site.xml和hdfs-site.xml )拷贝一份到本地,将这两个配置文件覆盖到本地到配置文件,配置文件生效后,需要使用“source /etc/profile”命令来重新加载一个系统的环境变量的配置文件,配置完成后我们可以通过下面的命令查看hdfs的版本。

    

    按照上述方法操作后,我们再次运行flume,发现不报错了,数据也开始在hdfs中写了,是不是没有报错信息了?没有报错就是最好的结果,如下图: 

  接下来我们去集群的webUI查看相应的文件是否生产,果不其然,文件已经写到hdfs中了:

四.broker节点时间不同步导致的

报错信息如下:

2018-10-18 16:28:37,329 (SinkRunner-PollingRunner-DefaultSinkProcessor) [INFO - org.apache.kafka.clients.consumer.internals.AbstractCoordinator$SyncGroupRequestHandler.handle(AbstractCoordinator.java:431)] SyncGroup for group flume-consumer-against_cheating_01 failed due to coordinator rebalance, rejoining the group
2018-10-18 16:28:37,957 (PollableSourceRunner-KafkaSource-kafkaSource) [WARN - org.apache.flume.channel.kafka.KafkaChannel$KafkaTransaction.doCommit(KafkaChannel.java:560)] Sending events to Kafka failed
java.util.concurrent.ExecutionException: org.apache.kafka.common.errors.TimeoutException: The request timed out.
at org.apache.kafka.clients.producer.internals.FutureRecordMetadata.valueOrError(FutureRecordMetadata.java:56)
at org.apache.kafka.clients.producer.internals.FutureRecordMetadata.get(FutureRecordMetadata.java:43)
at org.apache.kafka.clients.producer.internals.FutureRecordMetadata.get(FutureRecordMetadata.java:25)
at org.apache.flume.channel.kafka.KafkaChannel$KafkaTransaction.doCommit(KafkaChannel.java:552)
at org.apache.flume.channel.BasicTransactionSemantics.commit(BasicTransactionSemantics.java:151)
at org.apache.flume.channel.ChannelProcessor.processEventBatch(ChannelProcessor.java:194)
at org.apache.flume.source.kafka.KafkaSource.doProcess(KafkaSource.java:295)
at org.apache.flume.source.AbstractPollableSource.process(AbstractPollableSource.java:60)
at org.apache.flume.source.PollableSourceRunner$PollingRunner.run(PollableSourceRunner.java:133)
at java.lang.Thread.run(Thread.java:748)
Caused by: org.apache.kafka.common.errors.TimeoutException: The request timed out.

  这个问题,困扰了我好久,百度谷歌接近2个小时,都没有找到答案,手动去kafka集群拉去数据也是可以正常拉去都,就是一直报上面都错误,最后我们运维小组都人一起在办公室帮我分析一下原因,我自己也纳闷,为什么上午还好好都,下午就不好使了。我一个同时说会不会是下午你让我同步Hadoop集群都时间了?导致这个错误都发生?我寻思了一番,于是重启了一下Hadoop集群,发现以上错误烟消云散啦!那么问题来了,为什么会这样的呢?

  说到这,我们就不得不探讨一下Kafka的工作原理了。

即将上线的flume服务器面临的一系列填坑笔记相关推荐

  1. 即将上线的Hive服务器面临的一系列填坑笔记

    即将上线的Spark服务器面临的一系列填坑笔记 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.18/10/19 16:36:31 WARN metastore.ObjectSt ...

  2. 阿里云win2016服务器部署jdk+tomcat填坑

    这里写目录标题 win2016 Server上部署web服务 服务器上安装oppenSSH 目的 过程 错误 服务器上安装tomcat 目的 过程 win2016 Server上部署web服务 服务器 ...

  3. 永恩上线服务器维护,LOL网友爆料:劫将推出至臻皮肤,卢锡安赛娜情侣皮肤即将上线?...

    原标题:LOL网友爆料:劫将推出至臻皮肤,卢锡安赛娜情侣皮肤即将上线? 最好玩的游戏资讯,最奇葩的游戏经历,让我们一起探索游戏的真谛!欢迎来到<不靠谱联盟>栏目,本期有哪些精彩内容呢?咱们 ...

  4. 有杀气童话服务器维护9月,《有杀气童话》九月新版本即将上线 公会战玩法前瞻...

    <有杀气童话>九月新版本即将上线,公会战玩法前瞻.超人气童话RPG手游<有杀气童话>即将迎来新版本,在新版更新中推出全新的公会战玩法,为大家送上一份开学大礼. 争夺城堡 霸气公 ...

  5. 为什么吃鸡体验服说当前服务器正在维护,“吃鸡”体验服出现46字提示,先别急卸载,第6张地图即将上线...

    原标题:"吃鸡"体验服出现46字提示,先别急卸载,第6张地图即将上线 文章开始前先说个题外话,老粉丝应该发现,小鱼干这段时间文章的更新频率大幅下降,基本上每天一两天最多了. 原因很 ...

  6. 文石服务器维护,文石BOOX OS 2.0新系统即将上线,联合京东读书推出BOOX书城

    原标题:文石BOOX OS 2.0新系统即将上线,联合京东读书推出BOOX书城 作为行业领先的电纸书品牌,文石多年来一直致力于完善BOOX电纸书的功能,优化系统,提高性能,简化操作,力图在开放性和傻瓜 ...

  7. 即将上线的Kafka 集群(用CM部署的)无法使用“--bootstrap-server”进行消费,怎么破?...

    即将上线的Kafka 集群(用CM部署的)无法使用"--bootstrap-server"进行消费,怎么破? 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.   ...

  8. 元界快讯|首个物联网元宇宙平台“物联森友会”即将上线

    广州六区加码元宇宙产业,大湾区元宇宙产业链联盟将成立 3月24日上午,广州市科技局召开了元宇宙技术发展研讨会,深度探讨技术.产业.政策等相关内容,市.区合力共同推动元宇宙的发展与落地. 目前,大湾区主 ...

  9. 京东个人版C店即将上线

    我是卢松松,点点上面的头像,欢迎关注我哦! 来自小胖哥的爆料:京东在本月底过年之前马上要上线个人版的一个京东C店,这次C店是在主站内,对标的就是淘宝C店. ​熟悉京东应该知道京喜跟京东主站是两个不同团 ...

最新文章

  1. NR 5G 身份标识
  2. dwr配置文件dwr.xml详解
  3. 中标麒麟linux系统安装打印机_中标软件+天津麒麟=中国国产操作系统新旗舰
  4. HDFS内副本和块的状态分析
  5. 史上第一代图形浏览器往事
  6. 点击文本框内容消失,移开内容自动显示(两种方法)(原创)
  7. JZOJ2499 东风谷早苗
  8. 时间与相关类型(2) - TDate、TTime、TTimeStamp
  9. 翼支付高速发展背后,甜橙金融的云化智能变革
  10. 企查查之企业信息查询自动化
  11. 淘宝app商品详情API接口(商品详情描述信息查询接口)
  12. 温度指示报警电路设计报告
  13. 阿里云凌晨回应故障:已全部恢复 将尽快赔偿
  14. 1.11 等待通知机制wait和notify的使用,简单的生产者消费者
  15. 英特尔小心!AMD发ARM架构Opteron处理器
  16. 一小时销量破百万,Python告诉你周杰伦的《Mojito》到底有多火!
  17. 写一个轻量化的Google翻译脚本
  18. SpringBoot: Could not resolve placeholder 'XXXX' in value ${XXXX}
  19. 7层网络协议和4层网络协议有什么区别和联系?
  20. Android Home键引起的闪屏问题

热门文章

  1. git切换到指定tag
  2. 在php中插入数据显示在html_PHP中的浮点型数据计算之程序员脱发问题
  3. RedisManager使用手册(六)-- 监控功能介绍
  4. shell脚本使得nginx日志每天定时切割压缩
  5. 稀疏表示字典的显示(MATLAB实现代码)
  6. mysql中Table is read only 的解决方法小结
  7. oracle行转列与列转行
  8. ny42 一笔画问题
  9. Java事务处理类(源码)
  10. 右左法则----复杂指针解析