首页 > 其他 > 详细

hadoop2.0 HA的主备自动切换

时间:2014-04-02 13:54:51      阅读:393      评论:0      收藏:0      [点我收藏+]

在《hadoop2.0 QJM方式的HA的配置》一文中介绍了HA的配置,是通过手工进行主备切换的。本文在这基础上,继续介绍HA的主备自动切换(automatic failover)的配置。自动切换是通过配置zookeeper来实现的,关于zookeeper的安装和配置,在这里不做介绍了,大家可以参考网上的资料。

1 准备

假定已经有一个zookeeper的集群,3台机器如下:

  • zookeeper1

  • zookeeper2

  • zookeeper3

2 配置

只涉及到core-site.xml和hdfs-site.xml两个配置文件,其他配置可以文件参考《hadoop2.0的安装和基本配置》一文。

2.1 core-site.xml

需要增加ha.zookeeper.quorum参数,加上zookeeper的服务地址

完整配置如下:

<configuration>
        <property>
                <name>fs.defaultFS</name>
                <value>hdfs://mycluster</value>
        </property>
        <property>
                <name>hadoop.tmp.dir</name>
                <value>/home/tmp/hadoop2.0</value>
        </property>
        <property>
                <name>ha.zookeeper.quorum</name>
                <value>zookeeper1:2181,zookeeper2:2181,zookeeper3:2181</value>
        </property>
</configuration>

2.2 hdfs-site.xml

<configuration>
        <property>
                <name>dfs.replication</name>
                <value>1</value>
        </property>
        <property>
                <name>dfs.namenode.name.dir</name>
                <value>/home/dfs/name</value>
        </property>
        <property>
                <name>dfs.datanode.data.dir</name>
                <value>/home/dfs/data</value>
        </property>
        <property>
                <name>dfs.permissions</name>
                <value>false</value>
        </property>
        <property>
                <name>dfs.nameservices</name>
                <value>mycluster</value>
        </property>
        <property>
                <name>dfs.ha.namenodes.mycluster</name>
                <value>nn1,nn2</value>
        </property>
        <property>
                <name>dfs.namenode.rpc-address.mycluster.nn1</name>
                <value>namenode1:8020</value>
        </property>
        <property>
                <name>dfs.namenode.rpc-address.mycluster.nn2</name>
                <value>namenode2:8020</value>
        </property>
        <property>
                <name>dfs.namenode.http-address.mycluster.nn1</name>
                <value>namenode1:50070</value>
        </property>
        <property>
                <name>dfs.namenode.http-address.mycluster.nn2</name>
                <value>namenode2:50070</value>
        </property>
        <property>
                <name>dfs.namenode.shared.edits.dir</name>
                <value>qjournal://journalnode1:8485;journalnode2:8485;journalnode3:8485/mycluster</value>
        </property>
        <property>
                <name>dfs.journalnode.edits.dir</name>
                <value>/home/dfs/journal</value>
        </property>
        <property>
                <name>dfs.client.failover.proxy.provider.mycluster</name>
                <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
        </property>
        <property>
                <name>dfs.ha.fencing.methods</name>
                <value>shell(/bin/true)</value>
        </property>
        <property>
                <name>dfs.ha.automatic-failover.enabled</name>
                <value>true</value>
        </property>
</configuration>
  • dfs.ha.automatic-failover.enabled

需要设置为true,启动自动切换。

  • dfs.ha.fencing.methods

这里我们把fencing方法设置为shell,一是为了方便测试,二是采用QJM方式的HA本身就有fencing功能,不需要用这个参数中的fencing功能,详解请参考《hadoop2.0 QJM方式的HA的配置》一文。你用sshfence的方法也是可以的,不过要注意ssh连接的问题和一些权限的问题。

3 在zookeeper中初始化

$HADOOP_HOME/bin/hdfs zkfc -formatZK

4 启动zkfc daemon进程

$HADOOP_HOME/sbin/hadoop-daemon.sh start zkfc

5 启动HDFS

可以参考《hadoop2.2.0 的安装和基本配置》和《hadoop2.0 QJM方式的HA的配置》这两篇文章。

在两个namenode都启动之后,会发现,其中一个namenode会自动切换成active状态,不需要手工切换。

6 测试

现在可以享受我们的胜利成果了。我们把active namenode停掉后,会看到standby namenode自动切换成active状态了。

本文出自 “大数据的自由天空” 博客,请务必保留此出处http://sstudent.blog.51cto.com/7252708/1388865

hadoop2.0 HA的主备自动切换,布布扣,bubuko.com

hadoop2.0 HA的主备自动切换

原文:http://sstudent.blog.51cto.com/7252708/1388865

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!