Hadoop问题解决-DataNode无法启动问题

1.环境的的基本介绍

  • Hadoop版本: hadoop-2.7.2
  • 系统版本:Centos

2.问题描述

按照正常的流程,先格式化文件系统(hadoop namenode -format),然后输入命令 sbin/start-dfs.sh ,会出现DataNode无法启动 ,而NameNode正常启动,如下图所示:

图1.问题描述

3.问题分析与解决

要分析问题,首先要从日志文件开始分析,输入以下命令查看日志文件:

cd logs/
cat hadoop-root-datanode-hadoop102.log #注意查看.log的文件,这是相关日志,而不是看.out文件 
图2.日志文件分析

 根据标注部分可以看出,Datanode的clusterID 和 Namenode的clusterID 不匹配,所以报错了,导致DataNode启动后再次挂掉。要解决该问题,先执行下面指令,然后重新格式化即刻生效!

rm -rf data/tmp/dfs/data/current/VERSION #集群中每个datanode节点的/dfs/data/current中的VERSION删除

问题分析:当我们执行文件系统格式化时,会在namenode数据文件夹,即配置文件中dfs.name.dir在本地系统的路径,中保存一个current/VERSION文件,记录namespaceID,标志了所有格式化的namenode版本。如果我们频繁的格式化namenode,那么datanode中保存(即dfs.data.dir在本地系统的路径)的current/VERSION文件只是你地第一次格式化时保存的namenode的ID,因此就会造成namenode和datanode之间的ID不一致。

温馨提示:格式化要慎重!!!!!

4.NameNode格式化需要注意的几个问题

  • 重新格式化意味着集群的数据会被全部删除,格式化前需考虑数据备份或转移问题
  • 先删除主节点(即namenode节点),Hadoop的临时存储目录tmp、namenode存储永久性元数据目录dfs/name、Hadoop系统日志文件目录log 中的内容 (注意是删除目录下的内容不是目录)
  • 删除所有数据节点(即datanode节点) ,Hadoop的临时存储目录tmp、namenode存储永久性元数据目录dfs/name、Hadoop系统日志文件目录log 中的内容
  • 格式化一个新的分布式文件系统

5.写在最后

本文是题主遇到该问题时,在网上收集了各种资料后,解决了该问题,觉得收获颇多。故再次将其展示与博客,希望能和大家共勉,一起去贡献出更精彩的博客!


题主只是一个入门的小学生,希望大家多多指教!如果该帖子确实能解决您的问题,望多多留言,谢谢!


 

  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值