前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Hadoop启动异常的处理--DataNode未启动

Hadoop启动异常的处理--DataNode未启动

原创
作者头像
软件架构师Michael
修改2022-04-21 11:02:13
3.3K0
修改2022-04-21 11:02:13
举报
文章被收录于专栏:软件工程师Michael

异常现象描述:

hadoop格式化后,我们需要启动hdfs。然而,有些时候启动hdfs并不是那么顺利,往往会出现DataNode未启动的现象。

启动hdfs后,执行jps命令查看,结果如下:

jps执行结果
jps执行结果

很显然,DataNode没有出现。作为存储数据的节点进程没有运行,肯定是有问题的。

网上的很多说法,给出的原因解释是:

当我们使用hadoop namenode -format格式化namenode时,会在namenode数据文件夹(这个文件夹为自己配置文件中dfs.name.dir的路径)中保存一个current/VERSION文件,记录clusterID,datanode中保存的current/VERSION文件中的clustreID的值是上一次格式化保存的clusterID,这样,datanode和namenode之间的ID不一致。

进入current文件夹后,发现完全不是这回事 ,这个clusterID根本就没法手动修改。(写这种博客的人根本没有实践过,完全是从别的地方拷贝过来的,为了写博客而写博客)

处理过程:

尝试了一种做法:

进入相应文件夹,删除hadoop格式化后生成的dfs文件夹,重新格式化,再次执行./start-dfs.sh后,仍然是上面的结果, DataNode 没有启动。

尝试过的第二种方法:

执行./stop-dfs.sh后,关闭hdfs,重新启动,结果跟上面一样,仍然是DataNode 没有启动。

再三折腾,删除掉存放数据的临时文件tmp,重新格式化Hadoop,格式化成功。

Hadoop格式化结果
Hadoop格式化结果

查看日志,发现有个明显的报错日志:

ssh: Could not resolve hostname localhost: nodename nor servname provided, or not known

看来跟本地host的配置有点关系。

执行 vi /etc/hosts:

127.0.0.1 hadoop000

手动添加一行 127.0.0.1 localhost

执行./hadoop namenode -format,重新格式化hadoop,格式化成功。

进入hadoop的sbin脚本目录,执行:./start-dfs.sh

结果如下:

jps查看结果
jps查看结果

NameNode和DataNode都已经正常启动了。

小结:

搭建环境是一件很费力但不一定有结果的事情,出现异常也在所难免。这个时候,需要冷静下来,查资料,想办法尝试解决。一旦发现网上给出的方案仍然没法解决,就要尝试新的办法。总之一点,就是要好事多磨。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
大数据
全栈大数据产品,面向海量数据场景,帮助您 “智理无数,心中有数”!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档