转载请注明出处:http://blog.csdn.net/dongdong9223/article/details/81285732
本文出自【我是干勾鱼的博客】
Ingredient:
Hadoop:hadoop-2.9.1.tar.gz(Apache Hadoop Releases Downloads, All previous releases of Hadoop are available from the Apache release archive site)
Java:Java SE Development Kit 8u162(Oracle Java Archive),Linux下安装JDK修改环境变量
就像解决Hadoop启动时,没有启动datanode中所说,有的时候会出现Hadoop启动时,没有启动datanode的情况。
其实在使用:
hadoop namenode -format
对namenode进行格式化时,会在namenode数据文件夹,也就是Master节点的:
etc/hadoop/hdfs-site.xml
配置文件中“dfs.namenode.name.dir”属性对应的值,笔者这里为:
file:///opt/hadoop/hadoop-2.9.1/tmp/dfs/name
这个路径下,保存一个current/VERSION文件,里面会记录clusterID。
同样Slave节点的:
etc/hadoop/hdfs-site.xml
配置文件中“dfs.datanode.data.dir”属性对应的值,笔者这里为:
file:///opt/hadoop/hadoop-2.9.1/tmp/dfs/data
这个路径下,也会保存current/VERSION文件,里面的clustreID的值是上一次格式化保存的clusterID。
如果datanode和namenode里面的这2个clusterID值不一致,就会造成启动时datanode没有被启动的问题。
解决办法就是删除所有节点下的dfs文件夹,dfs目录在:
${HADOOP_HOME}/tmp/
下,然后再重新格式化namenode,再次启动时就可以了。
参考: