hadoop-namenode启动流程 (2.6.5版本)
2021-06-08 13:57:03 0 举报
hadoop的namenode节点 datanode节点的启动流程
作者其他创作
大纲/内容
NameNode的类说明
checkStorageLocations进行校验存储路径
NamenodeRole.NAMENODE == role默认情况下成立
进行创建serviceRpcServer,clientRpcServer
创建HttpServer2对象 infoServer对应多个servelt
initialize(Configuration conf)进行初始化的操作
说明
blockPoolManager.refreshNamenodes(conf)
getStorageLocations()从配置文件中进行获取路径
getCompleteBlocksTotal()进行获取完成的block的数量
createDataNode()
NameNode#parseArguments进行解析参数
loadNamesystem(conf)进行初始化FSNamesystem
storage = new DataStorage();
FSNamesystem.loadFromDisk(conf)
startCommonServices启动一些公共服务的信息
new NameNode()创建NameNode对象
namenode启动的流程NameNode.initialize() -> 初始化的核心逻辑-> startHttpServer() -> 启动自己的http服务器,后面接收别人发送过来的http请求-> loadNamesystem() -> 初始化FSNamesystem,磁盘加载fsimage和edits进行内存合并-> createRpcServer() -> 初始化rpc server,接收别人调用过来的rpc请求-> startCommonServices()-> FSNamesystem.startCommonServices()-> checkAvailableResources() -> 检查磁盘空间是否有100m来写入edits log-> setBlockTotal() -> 检查是否要进入safemode-> BlockManager.active() -> 启动一堆后台线程,做一些任务 -> NameNodeRpcServer.start() -> 启动rpc serverNameNode.join() -> 等待rpc server结束,理论上永远不会结束的
入口
readaheadPool = ReadaheadPool.getInstance()
setupServlets给httpServer2进行设置一些servlet
main主方法
进行判断是否进入安全模式
makeInstance()创建实例对象
initIpcServer(conf)进行初始化Rpcserver
进行创建DataNode 涉及到的组件1.DataStorage2.DataXceiverServer3.infoServer http请求的server组件4.IpcServer. Rpc请求的server组件5.BlockPoolManager 5.1 BPOfferService 5.1.1 BPServiceActor6.ReadaheadPool
checkAvailableResources()进行检查磁盘空间是否可用
NameNode启动流程
blockManager.activate开启一些后台线程
initDataXceiver(conf)
在内存中进行合并fsimage和editlog,然后重新创建一个新的editlog 进行写入
enter()
blockPoolManager = new BlockPoolManager(this)
createRpcServer(conf)进行创建RpcServer
instantiateDataNode()
chcknode
startHttpServer(Configuration conf)启动http的服务
NameNode#createNameNode进行创建NameNode
NameNode#main方法
blockPoolManager#doRefreshNamenodes一个BPOfferService对应一个 主从架构的一个 BPOfferService 包含两个BPServiceActor一个BPServiceActor对应active 节点一个 BPServiceActor对应standby 节点
setBlockTotal
new NameNodeRpcServer()进行创建NameNodeRpcServer
startInfoServer(conf)进行启动http请求的server
启动HttpServer2
0 条评论
下一页