Hadoop从入门到进阶 HDFS高可用集群 && Yarn高可用集群 搭建(四)

1 Hadoop 高可用概述

1)Active NameNode 和 Standby NameNode:两台 NameNode 形成互备,一台处于 Active 状态,为主 NameNode,另外一台处于 Standby 状态,为备 NameNode,只有主 NameNode 才能对外提供读写服务。
2)主备切换控制器 ZKFailoverController:ZKFailoverController 作为独立的进程运行,对 NameNode 的主备切换进行总体控制。ZKFailoverController 能及时检测到 NameNode 的健康状况,在主 NameNode 故障时借助 Zookeeper 实现自动的主备选举和切换,当然 NameNode 目前也支持不依赖于 Zookeeper 的手动主备切换。
3)Zookeeper 集群:为主备切换控制器提供主备选举支持。
4)JounalNode:用于Active NameNode,Standby NameNode同步数据,本身由一组JounnalNode结点组成,该组结点基数个,支持Paxos协议,保证高可用,是CDH5唯一支持的共享方式(相对于CDH4 促在NFS共享方式)
Hadoop从入门到进阶 HDFS高可用集群 && Yarn高可用集群 搭建(四)_第1张图片

2 高可用搭建

2.1 环境准备

#node1,node2免登陆其余节点
node1  jdk hadoop zookeeper  NameNode  zkfc  ResourceManager  
node2  jdk hadoop            NameNode  zkfc  ResourceManager  
node3  jdk hadoop            DataNode  NodeManager  JournalNode
node4  jdk hadoop            DataNode  NodeManager  JournalNode
node5  jdk hadoop            DataNode  NodeManager  JournalNode

2.2 安装单机节点zookeeper(比较easy安装步骤略)

Hadoop从入门到进阶 HDFS高可用集群 && Yarn高可用集群 搭建(四)_第2张图片

2.3 修改core-site.xml

cd /usr/local/hadoop-2.8.5/etc/hadoop
vim core-site.xml
<configuration>
         <!--namenode名称-->
         <property>
            <name>fs.defaultFS</name>
            <value>hdfs://nameservice/</value>
         </property>
        <!-- 指定zookeeper地址 -->
        <property>
             <name>ha.zookeeper.quorum</name>
             <value>node1:2181</value>
        </property>
</configuration>

2.4 修改hdfs-site.xml

vim hdfs-site.xml




        dfs.nameservices
        nameservice



        dfs.ha.namenodes.nameservice
        nn1,nn2



        dfs.namenode.rpc-address.nameservice.nn1
        node1:9000



        dfs.namenode.http-address.nameservice.nn1
        node1:50070



        dfs.namenode.rpc-address.nameservice.nn2
        node2:9000



        dfs.namenode.http-address.nameservice.nn2
        node2:50070



        dfs.namenode.name.dir
        /usr/local/data/namenode


        dfs.datanode.data.dir
        /usr/local/data/datanode



        dfs.namenode.shared.edits.dir
        qjournal://node3:8485;node4:8485;node5:8485/nameservice



        dfs.journalnode.edits.dir
        /usr/local/data/journaldata



        dfs.ha.automatic-failover.enabled
        true



        dfs.client.failover.proxy.provider.nameservice
        org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider



        dfs.ha.fencing.methods
        
        sshfence
        shell(/bin/true)
        



        dfs.ha.fencing.ssh.private-key-files
        /root/.ssh/id_rsa



        dfs.ha.fencing.ssh.connect-timeout
        30000



2.5 修改mapred-site.xml

vim mapred-site.xml
<configuration>
        <!--提交job时在yarn上计算-->
        <property>
          <name>mapreduce.framework.name</name>
          <value>yarn</value>
       </property>
</configuration>

2.6 修改yarn-site.xml

vim yarn-site.xml



        yarn.resourcemanager.ha.enabled
        true



        yarn.resourcemanager.cluster-id
        yrc



        yarn.resourcemanager.ha.rm-ids
        rm1,rm2



        yarn.resourcemanager.hostname.rm1
        node1


        yarn.resourcemanager.hostname.rm2
        node2



        yarn.resourcemanager.zk-address
        node1:2181


        yarn.nodemanager.aux-services
        mapreduce_shuffle


2.7 修改slaves

#node1
vim slaves

node3
node4
node5

2.8 把当前节点配置文件复制到其它节点上

#node1把配置文件复制到其它节点上
cd /usr/local/hadoop-2.8.5/etc
scp -r  ./hadoop node2:/usr/local/hadoop-2.8.5/etc
scp -r  ./hadoop node3:/usr/local/hadoop-2.8.5/etc
scp -r  ./hadoop node4:/usr/local/hadoop-2.8.5/etc
scp -r  ./hadoop node5:/usr/local/hadoop-2.8.5/etc

2.9 启动

1)启动zk
Hadoop从入门到进阶 HDFS高可用集群 && Yarn高可用集群 搭建(四)_第3张图片
2)启动journalnode

#必须先启动journalnode,node3 node4 node5。
cd /usr/local/hadoop-2.8.5/sbin
./hadoop-daemon.sh start journalnode
#查看
jps

Hadoop从入门到进阶 HDFS高可用集群 && Yarn高可用集群 搭建(四)_第4张图片
3)格式化namenode

#node1
cd /usr/local/hadoop-2.8.5/bin
./hadoop namenode -format
#为了保持node2和node1数据一致那么把namenode1的格式化数据复制过去
cd /usr/local/data
scp -r  namenode/ node2:/usr/local/data/

4)格式化zkfc

#node1
cd /usr/local/hadoop-2.8.5/bin
#格式化
./hdfs zkfc -formatZK

Hadoop从入门到进阶 HDFS高可用集群 && Yarn高可用集群 搭建(四)_第5张图片
Hadoop从入门到进阶 HDFS高可用集群 && Yarn高可用集群 搭建(四)_第6张图片
5)启动hdfs集群5)启动hdfs集群

#进入目录
cd  /usr/local/hadoop-2.8.5/sbin
#开启hdfs集群
./start-dfs.sh

Hadoop从入门到进阶 HDFS高可用集群 && Yarn高可用集群 搭建(四)_第7张图片
6)查看web界面

http://192.168.0.38:50070
http://192.168.0.39:50070

Hadoop从入门到进阶 HDFS高可用集群 && Yarn高可用集群 搭建(四)_第8张图片
Hadoop从入门到进阶 HDFS高可用集群 && Yarn高可用集群 搭建(四)_第9张图片
Hadoop从入门到进阶 HDFS高可用集群 && Yarn高可用集群 搭建(四)_第10张图片
7)启动yarn

#node1
cd  /usr/local/hadoop-2.8.5/sbin
./start-yarn.sh
#node2
cd  /usr/local/hadoop-2.8.5/sbin
./yarn-daemon.sh start resourcemanager

Hadoop从入门到进阶 HDFS高可用集群 && Yarn高可用集群 搭建(四)_第11张图片
8)关闭acitve机器
node2 jps 杀进程,node1变成了主节点
Hadoop从入门到进阶 HDFS高可用集群 && Yarn高可用集群 搭建(四)_第12张图片
Hadoop从入门到进阶 HDFS高可用集群 && Yarn高可用集群 搭建(四)_第13张图片
9)恢复node2

#恢复挂掉相关日志
cd /usr/local/hadoop-2.8.5/bin
./hadoop namenode -recover
cd /usr/local/hadoop-2.8.5/sbin
./hadoop-daemon.sh start namenode
#访问URL
http://192.168.0.38:50070/dfshealth.html#tab-overview

Hadoop从入门到进阶 HDFS高可用集群 && Yarn高可用集群 搭建(四)_第14张图片

你可能感兴趣的:(Hadoop)