场景驱动,NameNode的启动流程,通过观看源码(hadoop2.7)直接去找NameNode的main方法,进入到initialize(conf)初始化的方法,在这里NameNode主要进行了四个方面的操作。
1、startHttpServer(conf)调用这个方法启动了一个httpserver,并且Hadoop的httpserver是自己封装实现的类似Hadoop的rpc。这一步主要是启动这个httpserver绑定一些servet并通过50070端口对外提供服务。就是hdfs的web页面所展示的内容是通过这里的servlet获取数据的。
2、loadNamesystem(conf)调用此方法加载自己的元数据进内存。简单的理解就是将磁盘上的最新的fsimage和id必fsiamge大的editlog加载进内存进行合并后成为当前NameNode的内存中的元数据。实际上还涉及一些HA的检查,journalNode元数据同步等的一些操作。
3、createRpcServer(conf)启动rpcserver,NameNode和DataNode之间通过rpc进行通信,这个方法在NameNode启动rpc服务端,通过jps看到的NameNode服务只是NameNodeRpcServer的一个代理对象。启动之后客户端和DataNode可以远程调用NameNode的rpc服务端的方法。Hadoop的rpc也是自己封装实现的
4、startCommonServices(conf)这个方法比较重要,第一步会创建NameNodeResourceChecker对象用于检查NameNode的储存元数据的目录是否有足够的空间,第二个会启动一些线程和服务,pendingReplicatio
NameNode启动流程
最新推荐文章于 2022-10-03 21:01:19 发布
本文深入剖析NameNode的启动流程,包括启动HTTP服务器、加载元数据、创建RPC服务器及启动公共服务。NameNode首先启动HTTP服务器提供Web界面,接着加载fsimage和editlog形成内存元数据。然后启动RPC服务器以便DataNode与其通信。最后,开始公共服务,检查存储空间,启动心跳管理、副本复制等线程,并依据设定进入安全模式。
摘要由CSDN通过智能技术生成