`
Fire_Balrog
  • 浏览: 19606 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

笔记:HDFS namenode 快速启动

阅读更多

本文仅仅是个人读书笔记,不一定具参考价值

 

对于高可用性的Hadoop集群而言,应该尽量提高集群的可服务时间。

但是由于某些不可避免的原因,集群有时候需要进行重启,因此重启的时间成为关键问题。

而其中namenode的重启则是最为耗时的一个环节,namenode需要处理所有datanode的block report,

一旦节点数目变多,这个处理的过程会变得很慢。所以可以在这个部分加以改进。

 

近日在jira上看到一个issue

https://issues.apache.org/jira/browse/HDFS-1295

这个issue正是用于提高namenode的重启速度的。

 

安装原文的说法,加上这个patch之后,处理block report的效率提升300%

 

基本原理:

在原来的namenode的接受heart beat中处理block report时,会对report的block与在namenode中的block map进行一次'diff'的操作,但实际上当namenode重启时,每个report的block必然是不存在与block map中的,因此可以加上一次node.numBlocks()==0的判断,将启动后收到的第一次block report直接加入block map中;

而在addStoredBlock中,又加入计算liveNode的轻量化的方法,进一步提高启动的速度。

 

后记:这是一个不触动框架的方法,原理也较为简单,值得一试。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics