NameNode 启动简图
2020-01-06 11:07:28 0 举报
namenode
作者其他创作
大纲/内容
FSImage
3.构造函数
7.实例化一个 fsImage 对象
BlockManager
8.loadFSImage在这个方法中,执行:1.如果不是是HA 那么调用FSEditLog.initJournalsForWrite 和 FSEditLog.recoverUnclosedStreams2.如果是HA,那么调用FSEditLog.initSharedJournalsForRead
启动管理心跳服务
NameNode
DefaultMetricsSystem
4.initialize 初始化Nameno
PendingReplicationBlocks
HeartbeatManager
NameNodeHttpServer
2.initialize
6.loadFromDisk
5.startHttpServer提供给客户端,响应客户端的各种请求
开启线程
replicationThread
FSNamesystem
安全模式检测FSNamesystem.setBlockTotal()
检查NameNode所在机器的磁盘空间是否充足
NameNodeResourceChecker
1.createNameNode
DecommissionManager
进入安全模式的条件:1.threshold != 0 && blockSafe < blockThreshold) blockSafe namenode在datanode启动后 接受的block数之和、blockThreshold :安全模式的 阈值,即:上报的Block数<集群的阈值 则进入安全模式2.(datanodeThreshold != 0 && getNumLiveDataNodes() < datanodeThreshold) datanodeThreshold: datanode的阈值 小于此值则进入 安全模式, 默认值 :DFS_NAMENODE_SAFEMODE_MIN_DATANODES_DEFAULT = 0;3.(!nameNodeHasResourcesAvailable()) 这方法是校验是否有足够的磁盘空间, 这个空间有一个默认参数,DFS_NAMENODE_DU_RESERVED_DEFAULT = 1024 * 1024 * 100; // 100 MB ,所以最少需要100M的磁盘空间,否则进入安全模式
空间不够足则,打印告警日志
DatanodeManager
启动了管理心跳的服务
启动了等待复制的线程
heartbeatThread
启动线程
启动管理下线datanode的服务
收藏
0 条评论
回复 删除
下一页