您的位置:首页 > 运维架构

Hadoop 2.0 HA安装时碰到的问题

2013-11-14 11:49 218 查看
安装hadoop2.0 HA碰到的问题

1.zookeeper集群无法从 $HOME/zookeeper/bin下启动,后来从/opt/home/freeware/zookeeper-3.4.5-cdh4.2.1目录下启动成功

 怀疑还是zookeeper的conf文件设置或者zk_ENV.sh里面的设置有问题

2.hadoop从主节点无法format,提示invalid uri

原因:HADOOP_CONF_DIR目录设置有问题,在 $HOME/hadoop/etc/hadoop-env.sh中JAVA_HOME和$HADOOP_CONF_DIR设置有问题,粗心导致

3.HA启动问题:hadoop的namenode1和namenode2单独都可以启动,但是去检查状态或者hdfs dfsadmin -report的时候就会报错,然后两台机器的namenode进程就shutdown

原因:1)namenode1的masters应该只有 namenode1,namenode2的masters也应该只有namenode2

      2)日志从提示jouralnode的目录没有format,重新用 hdfs zkfc -format的时候出错,提示连接超时。需要把jouralnode进程启动之后再做zk format

4.HA的standby namenode启动不了报

java.io.IOException: Cannot start an HA namenode with name dirs that need recovery. Dir: Storage Directory /youpath/dfs/nn state: NOT_FORMATTED

需要把 active namenode的nn文件拷贝到standby namenode上面。

5.在子节点上namenode -bootstrapStandby失败

需要和第四个错误的解决方法一致,把主的nn文件copy过去 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   
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: