Hadoop大数据平台(下)hdfs高可用、Yarn高可用、hbase高可用

本文详细介绍了Hadoop高可用的实现,包括HDFS的Zoomkeeper集群部署、NameNode高可用,YARN的ResourceManager高可用部署与测试,以及HBase的分布式部署和故障切换。通过这些步骤,确保了Hadoop生态系统中的关键组件在出现故障时能快速恢复服务。
摘要由CSDN通过智能技术生成

目录

一、Hadoop高可用

      1、zoomkeeper集群部署

      2、hdfs高可用 

二、Yarn高可用

      1、RM高可用部署

      2、RM高可用测试  

三、Hbase高可用

      1、Hbase 分布式部署

      2、测试

一、Hadoop高可用

在典型的 HA 集群中,通常有两台不同的机器充当 NN。在任何时间,只有一台机器处于 Active 状态;另一台机器是处于 Standby 状态。Active NN 负责集群中所有客户端的操作;而 Standby NN 主要用于备用,它主要维持足够的状态,如果必要,可以提供快速的故障恢复。
为了让 Standby NN 的状态和 Active NN 保持同步,即元数据保持一致,它们都将会和JournalNodes 守护进程通信。当 Active NN 执行任何有关命名空间的修改,它需要持久化到一半以上的 JournalNodes 上(通过 edits log 持久化存储),而 Standby NN 负责观察 edits log的变化,它能够读取从 JNs 中读取 edits 信息,并更新其内部的命名空间。一旦 Active NN 出现故障,Standby NN 将会保证从 JNs 中读出了全部的 Edits,然后切换成 Active 状态。Standby NN 读取全部的 edits 可确保发生故障转移之前,是和 Active NN 拥有完全同步的命名空间状态。

为了提供快速的故障恢复,Standby NN 也需要保存集群中各个文件块的存储位置。为了实现这个,集群中所有的 Database 将配置好 Active NN 和 Standby NN 的位置,并向它们发送块文件所在的位置及心跳,如下图所示: 

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAbHk2NjA0MDI=,size_20,color_FFFFFF,t_70,g_se,x_16
在任何时候,集群中只有一个NN处于Active 状态是极其重要的。否则,在两个Active NN
的状态下 NameSpace 状态将会出现分歧,这将会导致数据的丢失及其它不正确的结果。为
了保证这种情况不会发生,在任何时间,JNs 只允许一个 NN 充当 writer。在故障恢复期
间,将要变成 Active 状态的 NN 将取得 writer 的角色,并阻止另外一个 NN 继续处于 Active
状态。

两个NameNode为了数据同步,会通过一组称作JournalNodes的独立进程进行相互通信。当active状态的NameNode的命名空间有任何修改时,会告知大部分的JournalNodes进程。standby状态的NameNode有能力读取JNs中的变更信息,并且一直监控edit log的变化,把变化应用于自己的命名空间。standby可以确保在集群出错时,命名空间状态已经完全同步了 

1、zoomkeeper集群部署

由于一个HDFS集群由一个NameNode节点和多个DataNode节点组成,一旦NameNode节点宕机,那么HDFS将不能进行文件的上传与下载。
Hadoop依赖Zookeeper实现HDFS集群的高可用,由状态为Active的NameNode节点对外提供服务,而状态为StandBy的NameNode节点则负责数据的同步,一旦状态为Active的NameNode节点宕机,则状态为StandBy的NameNode节点将会切换为Active状态对外提供服务。

需要五台虚拟机:两个主节点做高可用server13、server15(2G内存),其余是DN(如果电脑内存不足 1.5G内存也可以)
真实主机再开启一台虚拟机server5

 

server13停止所有运行的节点watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAbHk2NjA0MDI=,size_20,color_FFFFFF,t_70,g_se,x_16

所有节点删除/tmp目录下的所有数据,清理hadoop watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAbHk2NjA0MDI=,size_20,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAbHk2NjA0MDI=,size_20,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAbHk2NjA0MDI=,size_20,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAbHk2NjA0MDI=,size_20,color_FFFFFF,t_70,g_se,x_16

server15安装nfswatermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAbHk2NjA0MDI=,size_20,color_FFFFFF,t_70,g_se,x_16 

server15添加hadoop用户,挂载nfs中server13分享的/home/hadoop目录到本地的/home/hadoop目录,然后切换到hadoop用户进行测试 watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAbHk2NjA0MDI=,size_20,color_FFFFFF,t_70,g_se,x_16

server13查看对server15免密成功watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAbHk2NjA0MDI=,size_20,color_FFFFFF,t_70,g_se,x_16

真实主机将zookeeper包发送到server11的/home/hadoop目录下watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAbHk2NjA0MDI=,size_20,color_FFFFFF,t_70,g_se,x_16 

解压zookeeper安装包watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAbHk2NjA0MDI=,size_20,color_FFFFFF,t_70,g_se,x_16 

切换到zookeeper目录   进入conf目录下   复制zoo_sample.cfg文件为zoo.cfg   

因为是nfs文件系统所以其他节点的内容也同步修改了watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAbHk2NjA0MDI=,size_20,color_FFFFFF,t_70,g_se,x_16 

在/tmp/下创建zookeeper目录 编辑zoo.cfg文件watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAbHk2NjA0MDI=,size_20,color_FFFFFF,t_70,g_se,x_16

指定数据目录为/tmp/zookeeper 指定server11在zk集群中节点编号为1  依次类推server12的编号为2  server14的编号为3

2888端口用来同步数据    3888端口用来选举leaderwatermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAbHk2NjA0MDI=,size_20,color_FFFFFF,t_70,g_se,x_16 

server11将自己的编号1输入到zookeeper/myid内watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAbHk2NjA0MDI=,size_20,color_FFFFFF,t_70,g_se,x_16

server12和14同样创建zookeeper目录并将自己的编号输入到zookeeper/myid内watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAbHk2NjA0MDI=,size_20,color_FFFFFF,t_70,g_se,x_16watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAbHk2NjA0MDI=,size_20,color_FFFFFF,t_70,g_se,x_16watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAbHk2NjA0MDI=,size_20,color_FFFFFF,t_70,g_se,x_16 

server11开启zkServer watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAbHk2NjA0MDI=,size_20,color_FFFFFF,t_70,g_se,x_16

server11查看自己的zk集群状态,显示follower 

jps查看开启了QuorumPeerMain进程

QuorumPeerMain是zookeeper集群的启动类,用来加载配置启动QuorumPeer线程的。Quorum是定额的意思,Peer是对等的意思。Quorum表示zookeeper启动后,服务数量就确定了。zookeeper是基于paxos算法实现的,paxos是一个唯一的分布式集群一致性算法,在zookeeper中,被演绎为集群分布式协调可持续服务。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAbHk2NjA0MDI=,size_20,color_FFFFFF,t_70,g_se,x_16

同样server12 14开启zkServer 并查看自己的ZK集群状态 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值