作者:李继武&陶攀龙
1.故障描述
在HBase和Hive集群中HDFS的DataNode节点均有大量的异常日志,详细日志信息如下:
2019-02-25 17:02:02,153 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: BlockSender.sendChunks() exception: java.io.IOException: 断开的管道 at sun.nio.ch.FileChannelImpl.transferTo0(Native Method) at sun.nio.ch.FileChannelImpl.transferToDirectlyInternal(FileChannelImpl.java:416) at sun.nio.ch.FileChannelImpl.transferToDirectly(FileChannelImpl.java:481) at sun.nio.ch.FileChannelImpl.transferTo(FileChannelImpl.java:596) at org.apache.hadoop.net.SocketOutputStream.transferToFully(SocketOutputStream.java:223)...
主要以Hive集群分析为主,该集群中有hive01和hive02两个节点即是管理节点也是数据节点,这两个节点上出现了大量的“Broken Pipe”异常日志
2.故障分析阶段(平台层面)
通过提供给Cloudera售后的HDFS日志、lsof日志以及其它搜集的日志,在初步分析后反应出来的现象HBase出现性能问题是由于底层的HDFS不稳定导致。在HDFS的DataNode节点有大量的“Broken Pipe”异常,由于大量的Broken Pipe导致DataNode读写Block时重试从而导致基于HDFS的HBase等应用会出现性能下降的问题。
售后提出协调系统管理员分析系统层面的问题,在OS层面与旧集群未做任何变动,系统的参数及Hadoop的基本运行环境均与旧集群一致。
1. 通过分析Hive集群发现 NameNode GC频繁且耗时,如下图所示
将NameNode的Java heap大小从6GB调整至10GB
增加NameNode的Heap大小后通过jstat命令和CM监控界面进行监控,看到NameNo

本文详细记录了HDFS DataNode节点出现大量'Broken Pipe'异常的故障分析和处理过程。从平台层面、网络层面、系统层面逐一排查,包括NameNode GC问题、内存使用、TCP内核参数、网络配置、系统语言环境等。最终,通过将系统语言环境更改为英文解决了问题。
最低0.47元/天 解锁文章
1899

被折叠的 条评论
为什么被折叠?



