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]