①關閉hadoop集羣
②hdfs namenode -format
③啓動hadoop集羣
那如果我只是删除了name文件夹然后进行上述的初始化了,那么datanode就会起不来,会碰到下面这样的报错:
$HADOOP_HOME/logs
hadoop-appleyuchi-datanode-Desktop.log:-05-22 09:59:15,641 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: Initialization failed for Block pool <registering> (Datanode Uuid e19cb4f5-b2d1-4b1e-89f5-1c83393cc371) service to Desktop/192.168.0.103:9000. Exiting.
如果集群节点数量太多的话,注意不要使用scp文件到各个节点替换的方式,因为会覆盖其他参数。
解决方案是:
集群中的每个节点的data node文件夹中的VERSION文件中的clusterID都要修改成和下面的
/home/appleyuchi/dfs/name/current/VERSION的clusterID一致。
不要去删除datanode然后初始化,因为那样的话,数据就都没了。
#--------------zookeeper和hbase初始化---------------------------
①启动zookeeper时会发现log中有报错:
java.io.IOException: ZooKeeperServer not running
删除集群中每个节点/home/appleyuchi/dfs/zookeeper(每个节点这里的名字都不同)/data/version-2下面的所有文件
②再次启动报错:
java.io.IOException: No snapshot found, but there are log entries. Something is broken!
删除集群中每个节点/home/appleyuchi/dfs/zookeeper(每个节点这里的名字都不同)/log/version-2下面的所有文件
③再次启动后输入hbase hbck报错:
KeeperErrorCode = NoNode for /hbase/hbaseid
$ZOOKEEPER/bin/zkCli.sh
deleteall /hbase
确保集群中每个zookeeper的启动节点正常,然后再启动hbase(切记!)