孤独的战神 发表于 2019-11-30 22:47:36

hadoop 源码剖析之namenode启动

namenode启动主要包含三部分:
创建NameNodeHttpServer、FSNameSystem、NameNodeRpcServer。
namenode初始化,直接create namenode一个实例--->NameNode namenode = createNameNode(argv, null);
----->initialize(conf);
        -----> 创建NameNodeHttpServer:startHttpServer(conf);
NameNodeHttpServer绑定了50070端口(配置属性:dfs.namenode.http-address),主要提供我们平时访问的namenode web界面,
我们可以查看集群状态、元数据、目录结构、block信息等。
    ----->初始化FSNamenode:loadNamesystem(conf);
实例化一个FSNamesystem,从磁盘上加载fsimage 和edits,将        fsimage和edits合并成一个新的FSImage加载到内存,然后打开一个新的edits继续写入。
      ----->调用FSNameSystem 的startCommonServices:进入安全模式、检查磁盘空间等
    ----->初始化NameNodeRpcServer:createRpcServer(conf)
实现了各个节点之间通信接口:client<----->namenode、datanode<----->namenode、datanode<----->datanode等

页: [1]
查看完整版本: hadoop 源码剖析之namenode启动