Hdfs-源码解析(2)

namenode启动

Namenode持久化了文件和块之间的对应关系,也就是在namenode数据目录下的current/fsimage目录,namenode启动的时候,会将这个文件加载到内存里。块和机器的对应关系,namenode并不持久化,也就是说,namenode在启动的时候,并不知道文件块都在哪个datanode里,所以,namenode在启动后,会处于safemode状态,等待datanode在发送心跳的时候,报告自己的文件块列表,每个块都有指定的最小副本数,当namenode检测确认数据块的副本数达到最小副本数的时候,认为这个块是有效的。这个数目可以通过dfs.replication.min参数配置,默认是1,也就是至少要求有一个副本。

Namenode根据块的有效率来决定是否退出安全模式,默认情况下,只有块有效率达到99.9%以上时,才会退出安全模式。在启动的时候,可以看到这样的日志:

The ratio ofreported blocks 1.0000 has reached the threshold 0.9990. Safe mode will beturned off automatically in 30 seconds.

如果块有效率达不到这个比率,则namenode将一直处于安全模式。这个比率可以通过配置项:dfs.safemode.threshold.pct进行调节,当数据块达到要求后,namenode还留一段时间等待其他的datanode,可以通过dfs.safemode.extension来配置,默认30秒。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值