注:本系列主要对Hadoop生态下的各个组件源码解析做了总结与论述,如有错误欢迎读者提出并补充
本系列将持续更新,希望大家一键三连支持!!!♥♥♥
本系列将持续更新,希望大家一键三连支持!!!♥♥♥
本系列将持续更新,希望大家一键三连支持!!!♥♥♥
NameNode源码解析
Hadoop中NameNode在启动时,先后经历了如下六大子过程:
1.启动9870端口服务
2.加载镜像文件和编辑日志
3.初始化NN的RPC服务端
4.NN启动资源检查
5. DN心跳超时判断
6. 安全模式
首先需在pom.xml中增加如下依赖:
<dependencies>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
<version>3.1.3</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-hdfs</artifactId>
<version>3.1.3</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-hdfs-client</artifactId>
<version>3.1.3</version>
<scope>provided</scope>
</dependency>
</dependencies>
通过快捷键ctrl+n全局搜索namenode
,进入NameNode.java
中,再通过ctrl+f
,搜索main
方法;
之后便到了Initialize()方法
之前的创建
一个NameNode新对象
:
1.1 启动9870端口服务
进入初始化Initialize方法
后,第一步就是开启9870端口服务
:
其中:
上述操作中:
1.2 加载镜像文件和编辑日志
需要注意的是从磁盘加载
的过程:
1.3 初始化NN的RPC服务端
需要注意:
1.4 NN启动资源检查
NN资源检查:
判断资源是否够用:
1.5 DN心跳超时判断
进行心跳检查:
节点存活的判定条件是:
1.6 安全模式
NN安全模式的切换:
进入安全模式的条件判定: