版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/boling_cavalry/article/details/102764540
问题
三台机器组成的hadoop2.7集群中,重新初始化之后再次启动启动,发现以下问题:
- 在master节点,用hdfs命令上传文件报错There are 0 datanode(s) running and no node(s);
- 去DataNode节点执行jps命令,没有名为DataNode的进程;
解决
- 停止yarn和hdfs(我这里的hadoop部署在~目录下,请根据您自己的部署目录调整下面的命令):
~/hadoop-2.7.7/sbin/stop-yarn.sh
&& ~/hadoop-2.7.7/sbin/stop-dfs.sh
- 再次格式化namenode和hdfs:
~/hadoop-2.7.7/bin/hadoop namenode -format
&& ~/hadoop-2.7.7/bin/hdfs namenode -format
- 清理临时文件夹(这一步很重要):打开文件hadoop-2.7.7/etc/hadoop/core-site.xml,找到节点hadoop.tmp.dir,该节点的值是临时文件夹目录,我这里是/home/hadoop/work/tmp,因此执行以下命令,将临时文件夹清理干净,并且重建name和data目录:
rm -rf /home/hadoop/work/tmp/*
&& mkdir -p /home/hadoop/work/tmp/dfs/name
&& mkdir -p /home/hadoop/work/tmp/dfs/data
- 再次启动hdfs和yarn:
~/hadoop-2.7.7/sbin/start-dfs.sh
&& ~/hadoop-2.7.7/sbin/start-yarn.sh
- 在DataNode机器上执行jps命令,发现DataNode进程已经有了:
[hadoop@node1 logs]$ jps
9664 DataNode
9974 Jps
9784 NodeManager
- 用hdfs命令创建文件夹,上传文件,一切正常:
[hadoop@node0 ~]$ ~/hadoop-2.7.7/bin/hdfs dfs -mkdir /input
[hadoop@node0 ~]$ ~/hadoop-2.7.7/bin/hdfs dfs -put ~/GoneWiththeWind.txt /input
[hadoop@node0 ~]$ ~/hadoop-2.7.7/bin/hdfs dfs -ls /input
Found 1 items
-rw-r--r-- 3 hadoop supergroup 2372994 2019-10-27 11:44 /input/GoneWiththeWind.txt