栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Hadoop-HA集群安装部署

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Hadoop-HA集群安装部署

HA高可用集群安装部署

1 运行环境 1.1 软件环境

三个节点及以上
OS:64位RHEL5及以上或者64位CentOS7.0及以上
JVM:预装64位JDK 1.8及以上版本

1.2 浏览器要求

Firefox 39.0.0版本及以上或者Google Chrome 54.0.2840.8版本及以上。

2 安装准备 2.1 准备虚拟机

准备三个节点的虚拟机

2.2 修改主机名

在各个节点执行以下操作来修改主机名,使集群下的主机有格式一个统一的主机名,以便后续的操作和维护。
修改主机名(便于后续操作)

hostnamectl set-hostname ‘ha001’
hostnamectl set-hostname ‘ha002’
hostnamectl set-hostname ‘ha003’

修改玩后重启生效

192.168.20.111 ha001 作为namenode的active节点
192.168.20.112 ha002 作为namenode的standby节点
192.168.20.113 ha003 作为datanode节点

修改host映射

vi /etc/hosts

添加集群映射

192.168.20.111 ha001
192.168.20.112 ha002
192.168.20.113 ha003

2.3 关闭防火墙

systemctl stop firewalld
systemctl disable firewalld

2.4 配置时间同步

yum –y install ntpdate

ntpdate pool.ntp.org

2.5 配置免密登录

先删除原来配置的免密(三台)

rm -rf /root/.ssh

重新配置免密登录

ssh-keygen

ssh-copy-id ha001

ssh-copy-id ha002

ssh-copy-id ha003

记得给自己和其它两台都要同时发

2.6 安装JDK

参照本专栏前面的Hadoop详细集群搭建一文(记得配置环境变量)

3 安装其它组件 3.1 安装Zookeeper

参照本专栏前面的Zookeeper实战技能一文
之前已经安装的记得修改/usr/local/zookeeper-3.4.6/conf/下的zoo.cfg文件:
(因为主机名修改,映射也要修改)

然后启动Zookeeper
在ha001、ha002、ha003下都要执行

cd /usr/local/zookeeper-3.4.6/

bin/zkServer.sh start

bin/zkServer.sh status


出现lead,fllower,fllower为正常
注意:先把Hadoop集群正常模式配置一遍,先正常启动后,在
去配制高可用

3.2 安装高可用Hadoop

Hadoop部分的配置分为两部分HDFS和YARN

3.2.1 HDFS

1.修改配置文件
修改core-site.xml

vi core-site.xml

修改为以下内容:



  
    fs.defaultFS
    hdfs://beh
    false
  

  
    hadoop.tmp.dir
    /usr/local/hadoop-2.7.3/tmp
    false
  

  
    ha.zookeeper.quorum
    ha001:2181,ha002:2181,ha003:2181
    false
  

修改hdfs-site.xml

vi hdfs-site.xml

修改为以下内容:



  
    dfs.nameservices
    beh
    false
  

  
    dfs.ha.namenodes.beh
    nn1,nn2
    false
  

  
    dfs.namenode.rpc-address.beh.nn1
    ha001:9000
    false
  

  
    dfs.namenode.http-address.beh.nn1
    ha001:50070
    false
  

  
    dfs.namenode.rpc-address.beh.nn2
    ha002:9000
    false
  

  
    dfs.namenode.http-address.beh.nn2
    ha002:50070
    false
  
  

    dfs.namenode.shared.edits.dir   qjournal://ha001:8485;ha002:8485;ha003:8485/beh
    false
  


    dfs.journalnode.edits.dir
    /usr/local/hadoop-2.7.3/journalData
    false
  

  
    dfs.ha.automatic-failover.enabled.beh
    true
    false
  

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

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

    false
  

  
    dfs.ha.fencing.ssh.private-key-files
    /usr/local/.ssh/id_rsa
    true
  

  
    dfs.replication
    3
    false
  

修改slaves

vi slaves

修改为以下内容:

ha003

3.2.2 YARN

修改mapred-site.xml

vi mapred-site.xml

修改为以下内容:



    mapreduce.framework.name
    yarn


修改yarn-site.xml

vi yarn-site.xml

修改为以下内容:



    yarn.nodemanager.aux-services
    mapreduce_shuffle




    yarn.resourcemanager.ha.enabled
    true




yarn.resourcemanager.ha.automatic-failover.enabled
    true




    yarn.resourcemanager.cluster-id
    beh




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


 

  yarn.resourcemanager.hostname.rm1
  ha001


  yarn.resourcemanager.hostname.rm2
 ha002


       
yarn.resourcemanager.webapp.address.rm1
 ha001:8088

        
yarn.resourcemanager.webapp.address.rm2
ha002:8088




yarn.resourcemanager.zk-address
ha001:2181,ha002:2181,ha003:2181


修改环境变量

vi hadoop-env.sh

vi yarn-env.sh

修改为以下内容:

export JAVA_HOME=/usr/local/jdk1.8.0_102

3.2.3 分发配置文件

scp -r /usr/local/hadoop-2.7.3 ha002:/usr/local

scp -r /usr/local/hadoop-2.7.3 ha003:/usr/local

注:将以上配置复制到所有节点

3.2.4启动HDFS

第一步:删除原来的元数据跟真实数据(在三台同时进行)

rm -rf /usr/local/hadoop-2.7.3/data

第二步:zookeeper重新启动(ha001、ha002、ha003三台全操作)

cd /usr/local/zookeeper-3.4.6/
bin/zkServer.sh start
bin/zkServer.sh status

出现leader,fllower,fllower为正常

第三部:主节点上启动整个集群 (只在 ha001操作)

start-all.sh

第四步:先启动QJM,(ha001、ha002、ha003三台全操作)

hadoop-daemon.sh start journalnode

第五步:格式化zookeeper,在ha01上执行(只执行一次)

hdfs zkfc -formatZK

第六步:对ha01节点进行格式化和启动启动namenode(进程名:NameNode)

hdfs namenode -format (只执行一次)
hadoop-daemon.sh start namenode


第七步:对ha02节点进行格式化和启动

hdfs namenode -bootstrapStandby (只执行一次)
hadoop-daemon.sh start namenode

第八步:启动zookeeper的监控节点(再01和02上执行)

hadoop-daemon.sh start zkfc


第九步:启动datanode (在ha03启动)

hadoop-daemon.sh start datanode


最后去验证HDFS高可用集群:
打开浏览器,访问 ha001:50070 以及 ha002:50070,你将会看到两个namenode一个是active而另一个是standby
然后kill掉其中active的namenode进程,另一个standby的naemnode将会自动转换为active状态
192.168.20.111:50070

192.168.20.112:50070

然后我们把active状态的ha001结束,看它是否自动用ha002顶替位置

ha001宕机!!!

但ha002成功上位,变为active!!!

此时说明高可用集群搭建成功!!!

文末附上该高可用集群的启动命令与停止命令(也可以根据这些命令整合编写一脚本):

启动高可用集群
zkServer.sh start (ha001、ha002、ha003执行)
hadoop-daemon.sh start journalnode (ha001、ha002、ha003执行)
hadoop-daemon.sh start namenode (ha001、ha002执行)
hadoop-daemon.sh start zkfc (ha001、ha002执行)
hadoop-daemon.sh start datanode (ha003执行)
start-yarn.sh (ha001执行)
yarn-daemon.sh start resourcemanager (ha002执行)

停止高可用集群
zkServer.sh stop (ha001、ha002、ha003执行)
hadoop-daemon.sh stop journalnode (ha001、ha002、ha003执行)
hadoop-daemon.sh stop namenode (ha001、ha002执行)
hadoop-daemon.sh stop zkfc (ha001、ha002执行)
hadoop-daemon.sh stop datanode (ha003执行)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/827664.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号