格式化HDFS过程记录

本文详细介绍了如何解决HDFS配置错误的问题,特别是当dfs.namenode.data.dir配置项错误导致数据存储路径不正确的情况。文章提供了具体步骤,包括删除原有配置文件、重新格式化HDFS以及重启服务,确保HDFS正常运行。

用了好久的ha的hdfs,今天才发现
hdfs-site.xml文件的dfs.namenode.data.dir配置错了data这个单词没写 导致hdfs的文件不知道存储到哪去了
反正/home/hahadoopdata/dfs/data配置的这个路径就没有data文件夹

现在只能格式化hdfs 步骤跟简单 就三步
因为用过一段时间了 产生了许多文件 需要删除
1.删除文件
2.格式化
3.重启服务

详细解释一下重新格式化hdfs系统的方法:

1.删除文件

(1)查看hdfs-ste.xml:

<!--hdfs的元数据存储位置-->
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/hahadoopdata/dfs/name</value>
</property>
<!--hdfs的数据存储位置-->
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/hahadoopdata/dfs/data</value>
</property>

将dfs.namenode.name.dir所指定的目录删除、dfs.datanode.data.dir所指定的目录删除

就是说 我删除的是home下的hahadoopdata文件夹 这个文件夹都删掉了 home没删 毕竟还有别的文件
(2)查看core-site.xml:

<!--配置临时数据存储目录-->
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hahadoopdata/tmp</value>
</property>

将hadoop.tmp.dir所指定的目录删除。

2.重新执行命令:hadoop namenode -format

注意昂:
删除和格式化的时候 集群的服务是开启的 毕竟一个格式化命令 是格式化三台机子
就是说这个命令在三台机子下重新生成了我们配置的文件路径的文件夹和文件

格式化完毕。

注意:原来的数据全部被清空了。产生了一个新的hdfs。

3.然后重启服务 !!!!

要不咋生效!
stop-all.sh
start-all.sh

方法参考自:https://blog.youkuaiyun.com/yeruby/article/details/21542465

### HDFS NameNode Format 操作教程 #### 1. **HDFS NameNode 格式化概述** HDFS 的 `hdfs namenode -format` 是用于初始化 HDFS 文件系统的命令。该命令会创建必要的元数据目录结构并写入 VERSION 文件到指定路径下,通常位于 `/tmp/...` 或者由配置文件中的参数定义的位置。 此操作仅需在首次部署 HDFS 集群或者重新初始化集群时执行一次。如果已经存在旧的数据,则需要谨慎处理以防丢失重要信息[^1]。 --- #### 2. **准备工作** ##### a. 确认环境变量设置 确保 `$HADOOP_HOME` 和 PATH 已正确定义。如果没有正确加载 Hadoop 路径,可能会遇到 `hdfs command not found` 错误。可以通过编辑 `/etc/profile` 添加如下内容实现: ```bash export HADOOP_HOME=/path/to/hadoop export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin source /etc/profile ``` 验证是否生效可以运行以下命令测试: ```bash echo $HADOOP_HOME which hdfs ``` 上述步骤解决了因未找到 Hadoop 安装路径而导致的格式化失败问题[^3]。 --- ##### b. 编辑核心配置文件 两个重要的 XML 配置文件分别是 `core-site.xml` 和 `hdfs-site.xml`: - **core-site.xml**: 设置 NameNode 数据存储位置。 ```xml <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property> </configuration> ``` - **hdfs-site.xml**: 自定义副本数、共享日志地址等高级选项。 ```xml <configuration> <property> <name>dfs.replication</name> <value>3</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>/opt/data-hadoop/namenode</value> </property> <property> <name>dfs.namenode.shared.edits.dir</name> <value>qjournal://dem02:8485;dem03:8485;dem04:8485/mycluster</value> </property> </configuration> ``` 注意:如果 `dfs.namenode.shared.edits.dir` 中主机名拼写有误(如将 slave 写成 dem02),可能导致格式化失败。修正后再次尝试即可成功。 --- #### 3. **执行格式化命令** 完成以上准备后,在终端中切换至具有管理员权限的状态,并运行下列指令完成 NameNode 初始化工作: ```bash sudo bin/hdfs namenode -format ``` 若无特殊需求,默认情况下无需额外参数;但为了区分不同用途可附加自定义名称作为标记,例如 `-nonInteractive myClusterName`[^2]。 某些场景下由于先前残留临时文件干扰新实例建立过程,建议清理后再试: ```bash rm -rf /tmp/* rm -rf /path/to/QJEditsData/ ``` 这里提到 QJEditsData 文件夹是因为它可能是在多节点环境中产生的多余记录项之一[^4]。 另外需要注意的是,当 core-site.xml 存在语法错误比如标签闭合不当等情况也会引发异常终止现象(`java.io.IOException`)。此时应仔细核对每处细节直至完全匹配标准模板为止[^5]。 --- #### 4. **后续验证** 一旦顺利完成格式化进程,可通过检查目标磁盘分区是否存在相应子目录确认实际效果。接着启动整个服务链路观察状态变化情况: ```bash start-dfs.sh jps | grep NameNode ``` 正常状况下应该能看到类似下面这样的输出结果表明一切就绪待命: ``` 12345 NameNode ``` --- ### 注意事项总结 - 如果之前已做过多次格式化而当前又报错,请先彻底清除所有关联缓存区域再重头开始。 - 对于涉及敏感生产资料的操作务必提前做好充分备份以免造成不可逆损害。 - 正确填写各个组件间通信所需的具体 IP 地址而非泛指 localhost 可提高跨网段协作效率减少潜在冲突风险。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值