zoukankan      html  css  js  c++  java
  • HDFS Namenode启动过程

     

       文章作者:luxianghao

     

       文章来源:http://www.cnblogs.com/luxianghao/p/6564032.html  转载请注明,谢谢合作。

     

       免责声明:文章内容仅代表个人观点,如有不当,欢迎指正。

     

       ---

     

    在启动过程中,Namenode在能处理client的请求之前必须完成以下几步:

      1 fsimage文件中读取系统metadata

      2 读取edit logs并把记录在其中的操作合并到系统metadata中去

      3 生成一个新的checkpoint(新的fsimage必须和旧fsimage加上edit log上操作保持一致)

      4 保持safe mode直到Datanodes上报足够数量的block信息

     

    在一些情况下 上面的这些动作会消耗很长时间, eg

     1 edit logs很大,这样读取记录到这里面的操作,合并到system metadata会花费很长时间,当secondary nn长时间不工作的时候,这种情况就会发生,

     2 老化的磁盘会拖慢任何受限于io的操作: 读取fsimage,读取 edit logs,生成一个新的checkpoint(包含上面两个动作)

     3 当生成一个新的checkpoint的时候,NN会写所有的被配置存储fsimage的位置,这个动作是并行的,但是NN会阻塞直到所有的写操作完成

        这就意味着一块慢盘会拖慢整个启动过程

     

    通常管理员在遇到问题的时候会第一时间去看web UI,但是NN在生成一个新的checkpoint之后才会启动 HTTP server,当重启一个NN而且启动过程慢的时候,

    web UI可用之前通常要花费好几分钟,甚至一个小时的时间,也有可能在启动过程中,NN hung住了,但是有经验的工程师,会通过检查thread dumps

    来判断NN是否在正常启动

     

    针对上面的这个说的这种不能及时看web UI的情况,HDP 2.0加了一个新的feature来解决这个问题,具体可参考 https://issues.apache.org/jira/browse/HDFS-4249

     

    参考文档:

      https://zh.hortonworks.com/blog/understanding-namenode-startup-operations-in-hdfs/

     
  • 相关阅读:
    【AS3代码】小游戏打飞机源代码
    【AS3代码】键盘的输入和输出
    PHP多维数组排序
    【AS3代码】一个完整的游戏框架
    【AS3代码】小画板升级版(带重绘回放和清空功能)
    Liunx命令工作总结(1)
    Java NIO基础 我们到底能走多远系列(17)
    ibatis 一对多 解决方案
    图片上传+预览+剪切解决方案我们到底能走多远系列(20)
    Liunx命令工作总结(2)
  • 原文地址:https://www.cnblogs.com/luxianghao/p/6564032.html
Copyright © 2011-2022 走看看