频道栏目
首页 > 网络 > 其他 > 正文

Hadoop HA --- 网络原因/NN Full GC造成集群故障

2017-07-21 11:29:50      个评论    来源:liuguoxiang815116的博客  
收藏   我要投稿

Hadoop HA — 网络原因/NN Full GC造成集群故障

1 问题描述

简单描述一下问题,集群为Hadoop HDFS HA模式,三个节点104、105、106,由于三个节点的时间不同,以105时间为标准。2017-07-08 01:45分左右,集群出现故障。

2 日志信息

105 NN 日志如下:
105NameNode日志

105 DN日志如下:
105DataNode日志

104 JN日志如下:
104JournalNode日志

105 JN日志如下:
105JournalNode日志

106 JN日志如下:
106JournalNode日志

3 问题分析

从105的NN日志可以看出,在01:40左右,JN同步edit log的时候,与三个节点之间的传输发生故障,只有105给予28秒的超时响应(还是超时)。由于是三个节点,必须有至少两个jn节点正常工作才能保证edit log的正常写入。查看三个节点的jn日志,可以看出,在这个时间段三个节点的jn在同步edit log的时候,确实出现不同程度的超时。

从105的DN分析,在同一时刻,有一个68秒的GC,由于在进程的启动过程中没有加入GC的参数,无法正确的判断出是由于NN FULL GC引起的还是网络原因引起的。

4 解决方案

1) 网络原因

重点怀疑是由于网络原因引起的,查看之前的jn日志,发现经常会出较长时间的response,由于造成集群故障的场景还是比较容易复现,在Active的NN向jn节点发起长时间的ping,记录ping的时间点,待问题复现,查看当时的网络状态。若确实是由网络原因造成的,那么可以考虑调节jn的写入超时时间。

dfs.qjournal.write-txns.timeout.ms

2) NN FUll GC

在NN的option中添加GC参数(hadoop-env.sh)

-XX:+UseCompressedOops
-XX:+UseParNewGC -XX:+UseConcMarkSweepGC
-XX:+CMSClassUnloadingEnabled
-XX:+UseCMSCompactAtFullCollection
-XX:CMSFullGCsBeforeCompaction=0
-XX:+CMSParallelRemarkEnabled -XX:+DisableExplicitGC
-XX:+UseCMSInitiatingOccupancyOnly
-XX:CMSInitiatingOccupancyFraction=75
-XX:SoftRefLRUPolicyMSPerMB=0

例如:

export HADOOP_NAMENODE_OPTS=”-XX:+UseParallelGC ${HADOOP_NAMENODE_OPTS}”

5 后续

等待问题复现,查看验证结果。

上一篇:网络中立:YouTube联名上书
下一篇:PXE网络装系统(PXE+DHCP+TFTP+FTP)
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站