hadoop 2.7.3 源码分析(四):namenode启动流程

本文详细剖析了Hadoop Namenode的启动流程,从NameNode主类开始,探讨了静态代码块的角色,尤其是配置初始化过程。通过分析启动配置和主函数,揭示了HdfsConfiguration类的初始化细节,包括单例设计和配置映射的维护,确保系统正确运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

摘要

通过前边的文章我们已经知道,hadoop namenode启动的类org.apache.hadoop.hdfs.server.namenode.NameNode,本节内容就顺着其启动流程,查看在namenode启动的过程中其都做了哪些工作(关于一些技术细节就暂时放过)。

启动

我们通过命令

$start-dfs.sh

启动hadoop集群的namenode和datanode,在namenode启动的过程中JVM首先加载org.apache.hadoop.hdfs.server.namenode.NameNode这个类。

NameNode启动流程

从分析流程上来说我们主要关注两部分代码

static语句块,在执行主函数前

static{
    HdfsConfiguration.init();
}

通过函数的名称我们也可以看出上述代码作用是初始化HDFS的配置信息。
在执行完static语句块后执行main函数,其代码如下。(分析直接写在代码的注释当中)

public static void main(String argv[]) throws Exception{
     //分析传入的参数是否为帮助参数,如果是帮助的话打印帮助信息,并退出。
    if(DFSUtil.parseHelpArgument(argv,NameNode.USAGE,System.out,true)){
        System.exit(0);
    }
    try{
        //格式化输出启动信息,并且创建hook(打印节点关闭信息)
        StringUtils.startupShutdo
### Hadoop 2.7.3 sbin 目录缺失解决方案 如果在安装 Hadoop 2.7.3 的过程中发现 `sbin` 目录缺失,这可能是由于下载的压缩包不完整或者解压过程出现问题所致。以下是针对此问题的具体分析和解决方法: #### 可能原因 1. 下载文件可能损坏或未完成全部内容提取[^1]。 2. 如果是从第三方镜像站点获取的资源,可能存在打包错误或遗漏某些必要目录。 #### 解决方案 为了恢复完整的 `sbin` 目录并确保其他组件正常工作,请按照以下方式操作: 1. **重新验证源码包完整性** - 确认所使用的 Hadoop 压缩包是否来自官方 Apache 软件基金会网站或其他可信渠道。建议删除当前已有的文件夹,并从官网重新下载标准发行版。 2. **正确解压归档文件** 使用支持 `.tar.gz` 文件类型的工具(如 WinRAR 或者命令行下的 GNU Tar 工具),执行如下指令来展开原始存档: ```bash tar -xzvf hadoop-2.7.3.tar.gz ``` 3. **手动补充缺少脚本** 若仍然无法找到 `sbin` 文件夹,则可以尝试通过克隆 Git 存储库中的对应分支版本号重建这些辅助管理程序。例如运行下面这条语句拉取最新代码树结构后再编译生成目标二进制可执行单元: ```bash git clone https://github.com/apache/hadoop.git --branch branch-2.7.3 mvn package -Pdist,native -DskipTests -Dtar ``` 这样会创建一个新的包含所有必需子目录的新构建成果路径 `/path/to/target/hadoop-dist/...`. 4. **配置环境变量与依赖项校正** 安装完成后需设置好 JAVA_HOME 和 PATH 参数指向新位置;另外还需确认是否有额外平台特定需求比如 Windows 平台上的 DLL 库拷贝动作尚未被执行完毕[^2]: 将合适的 `hadoop.dll` 和 `winutils.exe` 放入 `%HADOOP_HOME%\bin\` 中去满足本地调用接口的需求。 5. **初始化临时存储区域** 修改核心 XML 配置文档里的默认暂存区定义部分以适配实际磁盘布局情况[^4]: ```xml <configuration> <property> <name>hadoop.tmp.dir</name> <value>/your/custom/path/tmp</value> </property> </configuration> ``` 最后一步就是依照单节点测试流程依次启动 NameNode 和 DataNode 组件服务进程前记得先做一次格式化处理作业[^3]: ```bash cd $HADOOP_HOME/bin/ ./hdfs namenode -format ``` 以上步骤应该能够帮助修复因丢失重要组成部分而导致的功能障碍现象。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

iblks

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值