目录
回顾
上一篇分析了Hadoop的Rpc服务,这一篇将接着往下分析startCommonServices这个方法,先看代码整体的流程。
startCommonServices
主要是两步:
-
namesystem.startCommonServices
-
rpcServer.start();
FSNamesystem
FSNamesystem是NameNode核心成员变量用来管理元数据(实现对DataNode、Block的管理以及读写日志),FSNamesystem的startCommonServices将启动一些磁盘检查、安全模式等一些后台服务及线程。
1、将需要检查的URL添加到volumes中 , 后台有线程会一直执行hasAvailableDiskSpace来检查
2、checkAvailableResources(); 进行资源检查
3、NameNode启动,进入到safemode阶段,处于一个等待汇报blocks的状态
4、汇报所有的block,用于后面判断是否进入安全模式
5、激活BlockManager
先new一个NameNodeResourceChe