Hadoop2.0 federation与HA的配置

在上一篇文章《Hadoop2.0 federation的配置》(见 )中介绍了单独配置federation,本文继续介绍同时配置HA和federation。关于zookeeper的安装和配置,这里不做介绍,大家可以参考网上的资料。

1 准备 

假定已经有一个zookeeper集群,包含3个zookeeper节点:

zookeeper1

zookeeper2

zookeeper3

另外,还有4个namenode节点:

namenode1

namenode2

namenode3

namenode4

和3个journalnode节点:

journalnode1

journalnode2

journalnode3

其他机器角色本文中不涉及的可以参考《hadoop2.0的安装和基本配置》一文。

2 federation和HA的结构 

我们假定hadoop集群的clusterid是hellokitty,有2个namespace/name service,分别是“mycluster”和“yourcluster”,分别挂载在viewfs的“/my”和“/your”目录下。

“mycluster”和“yourcluster”都配置成HA。其中“mycluster”的两个主备namenode节点分别是namenode1和namenode2,NN_ID分别是“nn1”和“nn2”;“yourcluster”的两个主备namenode节点分别是namenode3和namenode4,NN_ID分别是的“nn1”和“nn2”。

如下图所示:

Hadoop2.0 federation与HA的配置

 

3 federation和HA的配置 

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

为了简单起见,我们先不配置HA的自动切换,后面再把HA的自动切换配置上。

3.1 core-site.xml 

<configuration>

<property>

<name>fs.defaultFS</name>

<value>viewfs:///</value>

</property>

<property>

<name>fs.viewfs.mounttable.default.link./my</name>

<value>hdfs://mycluster/</value>

</property>

<property>

<name>fs.viewfs.mounttable.default.link./your</name>

<value>hdfs://yourcluster/</value>

</property>

<property>

<name>hadoop.tmp.dir</name>

<value>/home/tmp/hadoop2.0</value>

</property>

</configuration>


3.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.datanode.edit.dir</name>

<value>/home/dfs/edit</value>

</property>

<property>

<name>dfs.permissions</name>

<value>false</value>

</property>

<property>

<name>dfs.nameservices</name>

<value>mycluster,yourcluster</value>

</property>

<property>

<name>dfs.ha.namenodes.mycluster</name>

<value>nn1,nn2</value>

</property>

<property>

<name>dfs.ha.namenodes.yourcluster</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.rpc-address.yourcluster.nn1</name>

<value>namenode1:8020</value>

</property>

<property>

<name>dfs.namenode.rpc-address.yourcluster.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.http-address.yourcluster.nn1</name>

<value>namenode1:50070</value>

</property>

<property>

<name>dfs.namenode.http-address.yourcluster.nn2</name>

<value>namenode2:50070</value>

</property>

<!--dfs.namenode.shared.edits.dir的配置在namenode1和namenode2上用以下这个-->

<property>

<name>dfs.namenode.shared.edits.dir</name>

<value>qjournal://journalnode1:8485;journalnode2:8485;journalnode3:8485/mycluster</value>

</property>

<!--dfs.namenode.shared.edits.dir的配置在namenode3和namenode4上用以下这个

<property>

<name>dfs.namenode.shared.edits.dir</name>

<value>qjournal://journalnode1:8485;journalnode2:8485;journalnode3:8485/yourcluster</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.client.failover.proxy.provider.yourcluster</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>

</configuration>

dfs.namenode.shared.edits.dir

这个参数要注意,在两组HA中的值是不一样的,即在“mycluster”(namenode1和namenode2)和是“yourcluster”(namenode3和namenode4)中是不同。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/2c67022970e1a9bc40d580da16cddb33.html