原因: 之前不懂犯了个低级错误,导致datanode只能启动一个;很是奇怪;
一:之前多次将namenode格式化,导致namenode和datanode的clusterID不一致无法启动datanode
二:把datanode内的dn和nn文件内的VESSION删除,导致在java连接是输入流时只能启动一个datanode
解决方法:
一:clusterID在/usr/local/hadoop/hdfs/name/current目录下;解决方案:修改Shadoop1 和 Shadoop2 的data/current目录 下的VERSION文件,将clusterID修改一致即可
首先在home目录下建立一个hadoop_tmp目录
sudo mkdir ~/hadoop_tmp
然后修改hadoop/conf目录里面的core-site.xml文件,加入以下节点:
<property>
<name>hadoop.tmp.dir</name>
<value>/home/chjzh/hadoop_tmp</value>
<description>A base for other temporary directories.</description>
</property>
注意:我的用户是chjzh所以目录是/home/chjzh/hadoop_tmp
OK了,重新格式化Namenode
hadoop namenode -format
然后启动hadoop
start-all.sh
二:删除hadoop的东西重新安装 重新配置