百度了好久,照网上那些方法来的
有时候slave1和3在线,有时候2和3,后来发现是因为1是2的克隆,克隆的快照是启动过集群的,在VERION中可以看到1和2的VERSION里的blockpoolID是相同的都是ip是slave2的ip
此处截了master的name下的VESION
寻找解决方法时检查hadoop配置文件,发现配置文件有问题
hdfs-site.xml的代码:
<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///data/hadoop/hdfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///data/hadoop/hdfs/data</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:50090</value>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
</configuration>
因为我的core-site.xml文件中hadoop.tmp.dir路径是var/log/hadoop/tmp,所以我把四个节点的tmp下的内容也就是dfs删掉了,然后在master下启动集群,正常了
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:8020</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/var/log/hadoop/tmp</value>
</property>
</configuration>
启动成功后再查看/var/log/.../tmp下发现几个节点VERSION里的clusterID和master的name里的一样
访问9870