(二)Hadoop高可用HA搭建

一.集群规划

 

Master

Slave1

Slave2

Slave3

IP

192.168.2.131

192.168.2.132

192.168.2.133

192.168.2.134

namenode

datanode

resourcemanager

nodemanager

zookeeper

journalnode

zkfc

二.搭建Hadoop(HA)

 在已完成此配置的基础上执行以下。tar包链接https://pan.baidu.com/s/1hwLPI0eUwkpGmP5ROqM6Lw 提取码: k7m3

# tar -zxvf hadoop-2.7.7.tar.gz -C /usr/local/  解压到对应的安装目录
# mv /usr/local/hadoop-2.7.7 /usr/local/Hadoop
# vim ~/.bashrc  添加环境变量
export HADOOP_HOME=/usl/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
# source ~/.bashrc  生效环境变量
# cd /usr/local/hadoop/etc/hadoop/  转至配置文件
# vim hadoop-env.sh  配置1添加                                    【官网配置】
export JAVA_HOME= /usr/java/jdk1.8.0_221
# vim slaves  配置2
master
slave1
slave2
slave3
# vim core-site.xml  配置3


        fs.defaultFS
        hdfs://myha01/



        hadoop.tmp.dir
        /usr/local/hadoop/data/hadoopdata/



        ha.zookeeper.quorum
        master:2181,slave1:2181,slave2:2181



        ha.zookeeper.session-timeout.ms
        1000
        ms

# cp mapred-site.xml.template mapred-site.xml && vim mapred-site.xml  配置4


        mapreduce.framework.name
        yarn



        mapreduce.jobhistory.address
        master:10020



        mapreduce.jobhistory.webapp.address
        master:19888

# vim hdfs-site.xml  配置5


        dfs.replication
        2



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


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



        dfs.webhdfs.enabled
        true



        dfs.nameservices
        myha01



        dfs.ha.namenodes.myha01
        nn1,nn2



        dfs.namenode.rpc-address.myha01.nn1
        master:9000



        dfs.namenode.http-address.myha01.nn1
        master:50070



        dfs.namenode.rpc-address.myha01.nn2
        slave1:9000



        dfs.namenode.http-address.myha01.nn2
        slave1:50070



        dfs.namenode.shared.edits.dir    qjournal://master:8485;slave1:8485;slave2:8485/myha01



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



        dfs.ha.automatic-failover.enabled
        true



        dfs.client.failover.proxy.provider.myha01     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


        ha.failover-controller.cli-check.rpc-timeout.ms
        60000

# vim yarn-site.xml  配置6


        yarn.resourcemanager.ha.enabled
        true



        yarn.resourcemanager.cluster-id
        yrc



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



        yarn.resourcemanager.hostname.rm1
        slave2


        yarn.resourcemanager.hostname.rm2
        slave3



        yarn.resourcemanager.zk-address
        master:2181,slave1:2181,slave2:2181


        yarn.nodemanager.aux-services
        mapreduce_shuffle


        yarn.log-aggregation-enable
        true


        yarn.log-aggregation.retain-seconds
        86400



        yarn.resourcemanager.recovery.enabled
        true



        yarn.resourcemanager.store.class
org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore

三.配置→启动→验证→测试

3.1配置
# scp -r /usr/local/hadoop root@slave1:/usr/local/  分发至slave1~3结点(这里演示一台)
# scp ~/.bashrc root@slave1:/root/  分发环境至slave1~3结点(这里演示一台)
# source ~/.bashrc  生效环境(四台)
# zkServer.sh start  启动zookeeper(master、slave1、slave2)
# zkServer.sh status  查看角色
# hadoop-daemon.sh start journalnode 启动进程journalnode (master\slave1\slave2)
# jps 查看进程
(二)Hadoop高可用HA搭建_第1张图片
# hadoop namenode -format  格式化namenode节点(这里选master)
(二)Hadoop高可用HA搭建_第2张图片
此时在 core-site.xml 配置的临时目录中生成一些集群的信息,把他拷贝的第二个 namenode 相同目录下。记住:两个 namenode 节点该目录中的数据结构是一致的!
hadoop.tmp.dir
/usr/local/hadoop/data/hadoopdata/   // 拷贝地址
# hadoop namenode -bootstrapStandby  拷贝或在另一个namenode (slave2)上执行
(二)Hadoop高可用HA搭建_第3张图片
上面原因是: master的namenode(格式化未启动所以连接不上) → 开启 → 在执行即可。
下面把master节点上生成的元数据 给复制到slave1上。
# scp -r /usr/local/hadoop/data/hadoopdata root@slave1:/usr/local/hadoop/data/  
# hdfs zkfc -formatZK  格式化zkfc(只能在nameonde节点进行)(master,slave1)
(二)Hadoop高可用HA搭建_第4张图片
3.2启动
# start-dfs.sh  启动集群(master)
# start-yarn.sh  最好在YARN的主节点上执行,(在配置文件中设置yarn主节点在slave2)

    
        yarn.resourcemanager.hostname.rm1
        slave2
    
# yarn-daemon.sh start resourcemanager 启动另resourcemanager必须手动启动(slave3)
# jps 查看进程
(二)Hadoop高可用HA搭建_第5张图片
进程架构图
(二)Hadoop高可用HA搭建_第6张图片
3.3浏览器验证
a)验证1
http://192.168.2.131:50070  访问web 页面查看(master) namenode状态
(二)Hadoop高可用HA搭建_第7张图片
Master(standby状态)
b)验证2
http://192.168.2.132:50070  访问web 页面查看(slave1) namenode状态
(二)Hadoop高可用HA搭建_第8张图片
Slave1(active状态)
c)验证3
http://192.168.2.133:8088   查看yarn节点(slave2)启动情况
(二)Hadoop高可用HA搭建_第9张图片
d)验证4
查看各主节点的状态
HDFS: 
# hdfs haadmin -getServiceState nn1 
# hdfs haadmin -getServiceState nn2
YARN: 
# yarn rmadmin -getServiceState rm1 
# yarn rmadmin -getServiceState rm2
(二)Hadoop高可用HA搭建_第10张图片
启动 mapreduce 任务历史服务器
# mr-jobhistory-daemon.sh start historyserver
(二)Hadoop高可用HA搭建_第11张图片
按照配置文件配置的历史服务器的 web 访问地址去访问: http://192.168.2.131:19888
http://192.168.2.131:19888 
(二)Hadoop高可用HA搭建_第12张图片
3.4测试
a) 干掉 active namenode看看集群有什么变化。
(二)Hadoop高可用HA搭建_第13张图片
查看(Slave1)web有没有从standby切换成active
(二)Hadoop高可用HA搭建_第14张图片
# hadoop-daemon.sh start namenode  为提起namenode服务命令(初次搭建备节点不需要提起)
更多测试请参考连接:  https://blog.csdn.net/qq_41851454/article/details/79666066
HA高可用搭建就搭好了

 

你可能感兴趣的:((二)Hadoop高可用HA搭建)