hadoop+zookeeper 高可用

zookeeper 高可用

实验环境

共需要5台虚拟机server1-5。因为Zookeeper 集群至少三台,总节点数为奇数个。2.3.4为zookeeper的节点

  • rhel7.3
hostnameip
server1(NameNode)172.25.60.1
server2(JournalNode)172.25.60.2
server3 (JournalNode)172.25.60.3
server4(JournalNode)172.25.60.4
server5 (NameNode)172.25.60.5
  • 实验之前先将原来所有配置过的虚拟机上的服务关闭,并将环境清理干净搭
    在这里插入图片描述
    在这里插入图片描述

  • zookeeper在一个节点上下载zookeper并解压
    在这里插入图片描述

  • 在解压后的目录下添加节点信息
    在这里插入图片描述在这里插入图片描述

  • 各节点配置文件相同,并且需要在/tmp/zookeeper 目录中创建 myid 文件,写入一个唯一的数字,取值范围在 1-255
    在这里插入图片描述
    在这里插入图片描述在这里插入图片描述

  • 开启服务
    在这里插入图片描述

  • 并查看各节点状态(一个主节点(server4),两个从节点)
    在这里插入图片描述在这里插入图片描述
    在这里插入图片描述

  • 在一个从节点server2上进入命令行
    在这里插入图片描述在这里插入图片描述

  • 在server1上进行进行hadoop的配置详解
    在这里插入图片描述

  • 指定hdfs的namenode为master;指定zookeeper集群主机地址;指定 hdfs 的 nameservices 为 masters,和 core-site.xml 文件中的设置保持一致masters 下面有两个 namenode 节点,分别是 h1 (server1)和 h2(server5);指定 h1 节点的 rpc 通信地址;指定 h1 节点的 http 通信地址;指定 h2 节点的 rpc 通信地址;指定 h2 节点的 http 通信地址;指定 NameNode 元数据在 JournalNode 上的存放位置;指定 JournalNode 在本地磁盘存放数据的位置;开启 NameNode 失败自动切换;配置失败自动切换实现方式;配置隔离机制方法,每个机制占用一行;使用 sshfence 隔离机制时需要 ssh 免密码;配置 sshfence 隔离机制超时时间
    在这里插入图片描述在这里插入图片描述

  • 启动 hdfs 集群(按顺序启动)在三个 DN 上依次启动
    在这里插入图片描述在这里插入图片描述
    在这里插入图片描述

  • zookeeper 集群传递配置文件搭建高可用,先格式化HDFS 集群(如果格式化不成功,就多尝试几遍即可)
    在这里插入图片描述

  • Namenode 数据默认存放在/tmp,需要把数据拷贝到 h2上scp -r /tmp/hadoop-hadoop 172.25.60.5:/tmp
    在这里插入图片描述
    在这里插入图片描述

  • 格式化 zookeeper (只需在 h1 上执行即可)
    在这里插入图片描述

  • 启动 hdfs 集群(只需在 h1 上执行即可):sbin/start-dfs.sh
    在这里插入图片描述
    在这里插入图片描述

  • 浏览器测试显示1上是active,5是standby
    在这里插入图片描述在这里插入图片描述

  • 在server1上创建目录并上传文件
    在这里插入图片描述

  • 此时在浏览器上可以看到
    在这里插入图片描述

  • 停掉server1,server5的状态就变成了active
    在这里插入图片描述
    在这里插入图片描述

  • 也可以通过server2上的命令行查看状态
    在这里插入图片描述

  • 1虽然关了,但是上传的文件通过5还可以看到的
    在这里插入图片描述

  • 重新打开1.变成standby
    在这里插入图片描述
    在这里插入图片描述

yarn高可用

  • 编辑 mapred-site.xml 文件
<configuration>
<!-- 指定 yarn 为 MapReduce 的框架 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
  • 编辑 yarn-site.xml 文件
<configuration>
<!-- 配置可以在 nodemanager 上运行 mapreduce 程序 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 激活 RM 高可用 -->
<property>
<name>yarn.resourcemanager.ha.enabled</name>
<value>true</value>
</property><!-- 指定 RM 的集群 id -->
<property>
<name>yarn.resourcemanager.cluster-id</name>
<value>RM_CLUSTER</value>
</property>
<!-- 定义 RM 的节点-->
<property>
<name>yarn.resourcemanager.ha.rm-ids</name>
<value>rm1,rm2</value>
</property>
<!-- 指定 RM1 的地址 -->
<property>
<name>yarn.resourcemanager.hostname.rm1</name>
<value>172.25.60.1</value>
</property>
<!-- 指定 RM2 的地址 -->
<property>
<name>yarn.resourcemanager.hostname.rm2</name>
<value>172.25.60.5</value>
</property>
<!-- 激活 RM 自动恢复 -->
<property>
<name>yarn.resourcemanager.recovery.enabled</name>
<value>true</value>
</property>
<!-- 配置 RM 状态信息存储方式,有 MemStore 和 ZKStore-->
<property>
<name>yarn.resourcemanager.store.class</name>
<value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</
value>
</property>
<!-- 配置为 zookeeper 存储时,指定 zookeeper 集群的地址 -->
<property>
<name>yarn.resourcemanager.zk-address</name>
<value>172.25.60.2:2181,172.25.60.3:2181,172.25.60.4:2181</value>
</property>
</configuration>
  • 启动 yarn 服务 sbin/start-yarn.sh
    在这里插入图片描述

  • RM2 上需要手动启动 sbin/yarn-daemon.sh start resourcemanager
    最好是把 RM 与 NN 分离运行,这样可以更好的保证程序的运行性能。

  • 测试 yarn 故障切换

[hadoop@server1 hadoop]$ jps
5918 Jps
2163 NameNode
1739 DFSZKFailoverController
5127 ResourceManager
[hadoop@server1 hadoop]$ kill -9 51271
  • 浏览器输入172.25.60.1:8088(active),或者172.25.60.5:8088(standby)
    在这里插入图片描述

  • 进行故障切换检测

[hadoop@server1 hadoop]$ jps 
1606 NameNode
 2409 Jps 
 1900 DFSZKFailoverController 
 2335 ResourceManager 
 [hadoop@server1 hadoop]$ kill -9 2335 ##结束当前master进程 [hadoop@server1 hadoop]$ jps 
 1606 NameNode 
 2839 Jps 
 1900 DFSZKFailoverController
  • 浏览器输入172.25.60.5:8088,显示active
    在这里插入图片描述
  • 恢复server1的服务
[hadoop@server1 hadoop]$ pwd
/home/hadoop/hadoop
[hadoop@server1 hadoop]$ sbin/yarn-daemon.sh start resourcemanager
starting resourcemanager, logging to /home/hadoop/hadoop-2.7.3/logs/yarn-hadoop-resourcemanager-server1.out
[hadoop@server1 hadoop]$ jps
2897 ResourceManager
1606 NameNode
1900 DFSZKFailoverController
2926 Jps
  • 网页查看server1的状态为standby,作为备用节点
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值