标签为 CDH 的文章

Hadoop运维笔记 之 Datanode的Last Contact值异常增大导致频繁出现Deadnode

我们在线上采用的是CDH的Hadoop发行版,但从CDH3迁移到CDH5之后,Bug层出不穷。:(

CDH5.0.x版本没有什么严重的Bug,但是Namenode之间的状态同步却有问题。
具体表现为,在需要Decommission某个节点时,必须在Active Namenode上操作,如果在Standby Namenode上操作,其Decommissioning状态不会同步到Active Namenode上,也不会真正的Decommissioning。
而即使在Active Namenode上操作的话,Decommissioned状态也不会同步到Standby Namenode;
通过升级到CDH5.1.0之后,我们解决了这个问题,但没想到的是,后面版本的Bug会更加严重。

在CDH5.1.0版本中,有严重的snapshot操作导致edits记录紊乱使Namenode崩溃的问题,在定位到了其匹配的Bug后,我们只能继续通过升级到CDH5.2.0解决这个问题。

但CDH5.2.0又引入了一个新的Bug,就是Namenode与Datanode的心跳会因为正在运行的job而被block,虽然Datanode的负载并不高,但仍然会导致Last Contact值不断增大。
而默认的心跳超时时间是630秒,超过这个数值之后,Namenode就自动将Datanode列入Deadnodes当中。
我们所有的开发和运维花费了一周的时间做各种分析和调试,都没能解决这个问题,也没有找到与问题完全匹配的Bug。
最后,因为一个同行的哥们儿也遇到了相同的问题,他通过升级到CDH5.3.0将问题解决了。
于是,我们在无计可施的情况下,也升级到了CDH5.3.0,果然解决了Last Contact值增高的心跳问题。

于此,不得不感叹,CDH5的Bug真是多,有的还会导致非常严重的问题,但目前已经上了贼船,也就只能自求多福了。

从CDH5.2.0之前的旧版本直接升级到CDH5.3.0的文档:
http://www.cloudera.com/content/cloudera/en/documentation/core/latest/topics/cdh_ig_earlier_cdh5_upgrade.html

从CDH5.2.0升级到CDH5.3.0的文档:
http://www.cloudera.com/content/cloudera/en/documentation/core/latest/topics/cdh_ig_cdh5beta1_to_latest_upgrade.html

升级Hive与Oozie到CDH5.3.0对应版本的文档:
http://www.cloudera.com/content/cloudera/en/documentation/core/latest/topics/cdh_ig_hive_upgrade.html
http://www.cloudera.com/content/cloudera/en/documentation/core/latest/topics/cdh_ig_oozie_upgrade.html

, ,

No Comments