目录
一、Hadoop高可用
1、zoomkeeper集群部署
2、hdfs高可用
二、Yarn高可用
1、RM高可用部署
2、RM高可用测试
三、Hbase高可用
1、Hbase 分布式部署
2、测试
一、Hadoop高可用
为了提供快速的故障恢复,Standby NN 也需要保存集群中各个文件块的存储位置。为了实现这个,集群中所有的 Database 将配置好 Active NN 和 Standby NN 的位置,并向它们发送块文件所在的位置及心跳,如下图所示:
![watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAbHk2NjA0MDI=,size_20,color_FFFFFF,t_70,g_se,x_16](https://i-blog.csdnimg.cn/blog_migrate/5e64e18de1503fb0755742b1fd6cab1b.png)
两个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停止所有运行的节点
所有节点删除/tmp目录下的所有数据,清理hadoop
server15安装nfs
server15添加hadoop用户,挂载nfs中server13分享的/home/hadoop
目录到本地的/home/hadoop
目录,然后切换到hadoop用户进行测试
server13查看对server15免密成功
真实主机将zookeeper包发送到server11的/home/hadoop目录下
解压zookeeper安装包
切换到zookeeper目录 进入conf目录下 复制zoo_sample.cfg文件为zoo.cfg
因为是nfs文件系统所以其他节点的内容也同步修改了
在/tmp/下创建zookeeper目录 编辑zoo.cfg文件
指定数据目录为/tmp/zookeeper 指定server11在zk集群中节点编号为1 依次类推server12的编号为2 server14的编号为3
2888端口用来同步数据 3888端口用来选举leader
server11将自己的编号1输入到zookeeper/myid内
server12和14同样创建zookeeper目录并将自己的编号输入到zookeeper/myid内
server11开启zkServer
server11查看自己的zk集群状态,显示follower
jps查看开启了QuorumPeerMain进程
QuorumPeerMain是zookeeper集群的启动类,用来加载配置启动QuorumPeer线程的。Quorum是定额的意思,Peer是对等的意思。Quorum表示zookeeper启动后,服务数量就确定了。zookeeper是基于paxos算法实现的,paxos是一个唯一的分布式集群一致性算法,在zookeeper中,被演绎为集群分布式协调可持续服务。
同样server12 14开启zkServer 并查看自己的ZK集群状态