在之前的文章中,我们有做过永洪对数据的加工和处理的方法和介绍,这次我们来学习一下永洪产品高可用的配置设计方案。 在使用永洪产品过程中,可能会遇到服务器断电、网络质量差、服务器宕机等突发问题,结果使集群中的节点失效,从而影响到永洪BI的正常使用,导致无法正常的查看、分析数据,为了解决如此问题,永洪也完善并支持服务的高可用场景。 永洪如何实现产品的高可用呢,答案是Naming双活,也就是部署两个N节点,通过ZooKeeper实现集群的高可用性。对于不了解永洪集群环境节点类型的小伙伴可以查看之前的讲解(一文读懂大数据量组合数据集在永洪的应用实例)。 ➤在讲解Naming双活之前呢,还是需要先学习一下ZooKeeper的相关知识。 首先讲解一下什么是 ZooKeeper Server: 启动Naming双活,需要安装部署ZooKeeper Server。 ZooKeeper的部署分为单机模式和集群模式,集群模式是指在多个节点上启动ZooKeeper Server。一般考虑在三台机器上部署ZooKeeper Server。 除了Server 这个角色以外,还有这样的一类角色ZooKeeper Client:在这里,Client指的是MPP集市中的节点。 ZooKeeper Client连接到ZooKeeper Server,通过心跳保持连接。 ➤那么Naming双活的工作原理是如何进行的呢? 1、ZooKeeper Client连接到ZooKeeper Server MPP集市启动时,首先Naming Node连接到ZooKeeper Server,并初始化领导者选举,然后Backup Node和其它Nodes(Map/Reduce/Client)连接到ZooKeeper Server。如果有多个Backup Node,则有First Backup Node,First Backup Node会和Naming Node同步meta文件,其他Backup Nodes处于待命状态。 2、Naming Node宕机时 First Backup Node会成为新的Naming Node(该过程需要半分钟至几分钟完成),其他节点将被通知更换新的Naming Node,对配置文件进行自动修改。 如果要将之前的Naming Node再重新加入到集市,将作为Backup Node加入集市;并修改global_bi.properties中的dc.node.naming为此时Naming Node的ip+offset。 3、Backup Node宕机时 如果是First Backup Node宕机,则剩余的Backup Nodes选举出新的First Backup Node,继续和Naming Node同步。 ➤了解了zookeeper的工作原理之后,我们开始学习如何安装并启动Naming双活的功能。 1、 规划ZooKeeper集群环境 MPP集市节点的规划:几台Naming Node,哪些作为备份Naming Node,集市中的节点都有哪些,怎么搭建,需要提前规划,然后将所有节点和ZooKeeper Server连接。 ZooKeeper集群节点规划:ZooKeeper Server装在哪些机器上,需要提前规划好。 ZooKeeper集群节点和MPP集市节点可以部署到同一台机器,安装包里已经包含ZooKeeper内容,所以,如果一台机器既想装MPP集市节点,又想装ZooKeeper Server,只需同时勾上集市节点类型和ZooKeeper服务就可以了。 2、安装、配置和启动 在安装过程中,每个节点需要勾上“使用命名节点的双活机制”,并配置ZooKeeper的连接地址,形式为:IP1:Host1,IP2:Host2,IP3:Host3。装了几个ZooKeeper Server(一般为基数个),就将几个的IP:Host写上。 IP:ZooKeeper Server机器IP。 Host:ZooKeeper Server的端口号。
安装完毕后,所有节点的global_bi.properties都会加上: dc.use.backup=true zk.conn.hosts=#hosts - Naming Node和Backup Naming Node
如果安装Naming Node,则不需要选择“备份节点”; 如果安装Backup Naming Node,则需要选择“命名节点安装版”和“备份节点”,如下图,勾选了“备份节点”,会在bi.properties中加入属性:dc.backup=false。
在安装界面,通过选择“在此节点启用ZooKeeper服务”来安装ZooKeeper Server。
点击“下一步“,出现“设置ZooKeeper配置信息”界面来设置ZooKeeper Server的信息。
- ZooKeeper 端口: 正在安装的这个ZooKeeper Server的端口号。用于ZooKeeper Client(C/N/M/R节点)和ZooKeeper Server之间通讯。
- Data目录:存储快照文件Snapshot 的目录。
- 日志目录:ZooKeeper日志输出目录。
- 集群节点配置:用于ZooKeeper Server之间的通信。装了几个ZooKeeper Server(一般为基数个),就将几个的IP:Host1:Host2写上。
- IP:ZooKeeper Server机器IP。
- Host1:通信端口。
- Host2:选举通信端口。
- 集群节点编号:指定正在安装的ZooKeeper Server是ZooKeeper集群节点配置中的第几个节点。
以上属性会存到以下两个文件里: zookeeper\conf\zoo.cfg zookeeper\data\myid 在安装的ZooKeeper Server的安装目录下,进入zookeeper\bin目录 Linux:运行zkServer.sh Windows:运行zkServer.cmd 如果是ZooKeeper集群模式,在启动之后需要等待一小段时间(半分钟以内),让ZooKeeper集群内部完成领导者选举。 Linux:tomcat/bin/startup.sh Windows: tomcat/bin/startup.bat 此步骤与上述内容一致 ➤接着我们拿一个实际案例进行实践。 1、规划一个启用了Naming双活的集市环境
本机(Windows,IP:192.168.1.238)安装4个集市节点,CR、M、N、N_Backup(N节点的备份)。 其中CR、M和N节点上安装ZooKeeper Server。 2、安装过程 安装CR: 选择数据集市->MPP集市->选择“客户端节点安装版”和“Reduce节点安装版”。
勾选“使用命名节点的双活机制”; 输入ZooKeeper连接地址: 192.168.1.238:2181,192.168.1.238:2182,192.168.1.238:2183 安装Zookeeper Server:
注:ZooKeeper端口:2181,集群节点编号:1 安装N: 选择数据集市->MPP集市->选择“命名节点安装版”,不勾选“备份节点”。
勾选“使用命名节点的双活机制”: 输入ZooKeeper连接地址,同CR。 安装Zookeeper Server,同CR,ZooKeeper端口:2182,集群节点编号:2。
安装N(备份): 选择数据集市->MPP集市->选择“命名节点安装版”,勾选“备份节点”。
勾选“使用命名节点的双活机制”: 输入ZooKeeper连接地址,同CR。 不安装Zookeeper Server。
安装M: 选择数据集市->MPP集市->选择“Map节点安装版”。
勾选“使用命名节点的双活机制”: 输入ZooKeeper连接地址,同CR。 安装ZooKeeper Server,同CR,ZooKeeper端口:2183,集群节点编号:3。
在同一台机器上启动多个节点需要配置端口偏移,所以,在启动之前,在CR、N(备份)和M的bi.properties里分别配置: dc.port.offset=1 dc.port.offset=2 dc.port.offset=3 Naming双活启动顺序 1、先启动Zookeeper,没有先后顺序; 2、当Zookeeper集群稳定后,先启动主N的Tomcat; 3、再启动其他节点的Tomcat,没有先后顺序。 在永洪安装路径下找到Zookeeper/bin目录 双击 zkServer.cmd启动
在永洪安装路径找到tomcat/bin目录 双击startup.bat
➤小结:永洪高可用使用的技术是基于Zookeeper集群实现的,使用时要确保Zookeeper节点之间的通信,而且尽量采用奇数个节点的设计。以上就是我们对于Naming双活的介绍。
|