http://www.cloudera.com/content/cloudera-content/cloudera-docs/CDH4/latest/CDH4-Release-Notes/cdh4ki_topic_2_2.htm
6.如果datanode上的dfs.datanode.data.dir目录不一致,datanode log报ERROR datanode.DataNode: Exception in BPOfferService for Block pool
比如datanode1有两个目录/data2/hdfsdata/dfs1/dn和/opt/home/hdfsdata/dfs1/dn。那么如果datanode2上只有/opt/home/hdfsdata/dfs1/dn的话,会报错
ERROR datanode.DataNode: Exception in BPOfferService for Block pool BP-1985271245-10.199.95.36-1384008172524 (storage id DS-165629880-10.199.95.32-59010-1384009892403) service to namenode1/10.199.95.30:8020
但是datanode进程不会被kill掉,从hdfs dfsadmin -report中看,这个datanode的可用dfs为0%。
怀疑就是datanode之间的data dir不一致造成,目前都设为一致就不会报上面的错误了。
整理的hadoop HA启动步骤
1)在NameNode的一个节点上执行初始化到ZK的HA状态信息的命令
hdfs zkfc -formatZK
2)安装和启动JournalNode
hdfs jouralnode
3)格式化并启动主NameNode
hdfs namenode -format
hdfs namenode start
4)启动备份namenode
hdfs namenode -bootstrapStandby
hdfs namenode start
5)配置自动故障转移:在NameNode节点上安装和运行ZKFC
hdfs zkfc
6)各个datanode启动
hdfs datanode start
7)MRv1的配置
a) ./hadoop mrzkfc –formatZK --在zookeeper节点上建立znode
b) 在每台jobtracker节点上执行以下命令
./hadoop jobtrackerha
./hadoop mrzkfc
c)在datanode上执行
./hadoop tasktracker