hadoop安装成功时应该有五个进程,但是最近打开hadoop之后jps一下查看进程时却发现其中的Datanode无法启动,其他4个都已经成功打开。这个问题一般是由于两次或两次以上的格式化NameNode造成的,有两种方法可以解决,第一种方法是删除DataNode的所有资料(及将集群中每个datanode的/hdfs/data/current中的VERSION删掉,然后执行hadoop namenode -format重启集群,错误消失。<推荐>);第二种方法是修改每个DataNode的namespaceID(位于/hdfs/data/current/VERSION文件中)<优先>或修改NameNode的namespaceID(位于/hdfs/name/current/VERSION文件中),使其一致。
1.到hadoop目录中。
cd /usr/local/hadoop
2.查看hadoop文件夹
ls
看到如下文件夹:
bin hdfs input libexec logs output sbin workspace
etc include lib LICENSE.txt NOTICE.txt README.txt share
3.进入hdfs中并查看
root@ubuntu:/usr/local/hadoop# cd hdfs
root@ubuntu:/usr/local/hadoop/hdfs# ls
看到如下文件夹:
data name
4.我们要做的就是把这两个文件夹中的VERSION文件删除
root@ubuntu:/usr/local/hadoop/hdfs/data# cd current/
root@ubuntu:/usr/local/hadoop/hdfs/data/current# ls
BP-95478995-127.0.1.1-1418629962731 VERSION
root@ubuntu:/usr/local/hadoop/hdfs/data/current# rm -rf VERSION
root@ubuntu:/usr/local/hadoop/hdfs/data/current# ls
BP-95478995-127.0.1.1-1418629962731
5.再对name文件夹进行相同的操作
6.再次到hadoop目录下执行清空
bin/hadoop namenode -format
7.重新启动hadoop就可以看到Datanode了