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>
来源:https://www.cnblogs.com/pinghengxing/p/12102825.html