hadoop 04 一 HA高可用配置

断了今生、忘了曾经 提交于 2019-12-26 17:09:52


HA高可用配置

一、简述
-------------------

high availability,高可用.
两个名称节点,一个active(激活态),一个是standby(slave待命),slave节点维护足够多状态以便于容灾。
和客户端交互的active节点,standby不交互.
两个节点都和JN守护进程构成组的进行通信。
数据节点配置两个名称节点,分别报告各自的信息。
同一时刻只能有一个激活态名称节点。
脑裂:两个节点都是激活态。
为防止脑裂,JNs只允许同一时刻只有一个节点向其写数据。容灾发生时,成为active节点的namenode接管
向jn的写入工作。

 

二、硬件资源
--------------

名称节点:    硬件配置相同。
JN节点    :    轻量级进程,至少3个节点,允许挂掉的节点数 (n - 1) / 2.
不需要再运行辅助名称节点。

三、配置细节
---------------

0.centos001和centos006具有完全一致的配置,尤其是.ssh(免密登陆)

1.配置nameservice
[hdfs-site.xml]
<property>
<name>dfs.nameservices</name>
<value>mycluster</value>
</property>

2.dfs.ha.namenodes.[nameservice ID]
[hdfs-site.xml]
<!-- myucluster下的名称节点两个id -->
<property>
<name>dfs.ha.namenodes.mycluster</name>
<value>nn1,nn2</value>
</property>

3.dfs.namenode.rpc-address.[nameservice ID].[name node ID] 
[hdfs-site.xml]
配置每个nn的rpc地址。
<property>
<name>dfs.namenode.rpc-address.mycluster.nn1</name>
<value>centos001:8020</value>
</property>
<property>
<name>dfs.namenode.rpc-address.mycluster.nn2</name>
<value>centos006:8020</value>
</property>

4.dfs.namenode.http-address.[nameservice ID].[name node ID]
配置webui端口
[hdfs-site.xml]
<property>
<name>dfs.namenode.http-address.mycluster.nn1</name>
<value>centos001:50070</value>
</property>
<property>
<name>dfs.namenode.http-address.mycluster.nn2</name>
<value>centos006:50070</value>
</property>

5.dfs.namenode.shared.edits.dir
名称节点共享编辑目录.
[hdfs-site.xml]
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://centos002:8485;centos003:8485;centos004:8485/mycluster</value>
</property>

6.dfs.client.failover.proxy.provider.[nameservice ID]
java类,client使用它判断哪个节点是激活态。
[hdfs-site.xml]
<property>
<name>dfs.client.failover.proxy.provider.mycluster</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>

7.dfs.ha.fencing.methods
脚本列表或者java类,在容灾保护激活态的nn.
[hdfs-site.xml]
<property>
<name>dfs.ha.fencing.methods</name>
<value>sshfence</value>
</property>

<property>
<name>dfs.ha.fencing.ssh.private-key-files</name>
<value>/root/.ssh/id_rsa</value>
</property>

8.fs.defaultFS 
配置hdfs文件系统名称服务。
[core-site.xml]
<property>
<name>fs.defaultFS</name>
<value>hdfs://mycluster</value>
</property>

9.dfs.journalnode.edits.dir
配置JN存放edit的本地路径。
[hdfs-site.xml]
<property>
<name>dfs.journalnode.edits.dir</name>
<value>/data/journal</value>
</property>

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!