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

2022-04-21 11:02:13 浏览数 (1)

异常现象描述:

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都已经正常启动了。

小结:

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

0 人点赞