
在解决这个问题的过程中,我又是积累了不少经验。。。
首先让我搞了很久的问题是,书上说进程全部启动的命令是/bin/start-all.sh,但是当我执行的时候显示command not found。后来才知道这个命令到了sbin文件中,应该是版本的原因。我装的是hadoop2.9。
所以正确的启动命令是:sbin/start-all.sh
但是当我执行完这个命令之后发现唯独DataNode未启动。
原因就是NameNode的clusterID和DataNode的不一致,所以未能启动。之所以会这样,是因为我们执行了多次hdfs namenode -format命令,导致NameNode的clusterID改变而DataNode却没变。
解决步骤:
1 停止所有进程:sbin/stop-all.sh
2 将namenode的clusterID复制到datanode的clusterID
3启动所有进程 /sbin/start-all.sh
4 检验
( [注] 有时clusterID相同但是数据节点依旧无法启动,此时可以查看一下data和name文件夹的权限,有时候会因为权限问题而无法启动)
在web页面也可以看到数据了。