笔记: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的轻量化的方法,进一步提高启动的速度。

 

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值