数据分析如何用好高可用?Naming双活必须掌握!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据分析如何用好高可用?Naming双活必须掌握!相关的知识,希望对你有一定的参考价值。

在之前的文章中,我们有做过永洪对数据的加工和处理的方法和介绍,这次我们来学习一下永洪产品高可用的配置设计方案。

在使用永洪产品过程中,可能会遇到服务器断电、网络质量差、服务器宕机等突发问题,结果使集群中的节点失效,从而影响到永洪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 Server
在安装界面,通过选择“在此节点启用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集群节点配置中的第几个节点。
以上属性会存到以下两个文件里:

zookeeperconfzoo.cfg

zookeeperdatamyid

启动ZooKeeper Server
在安装的ZooKeeper Server的安装目录下,进入zookeeperin目录

Linux:运行zkServer.sh

Windows:运行zkServer.cmd

如果是ZooKeeper集群模式,在启动之后需要等待一小段时间(半分钟以内),让ZooKeeper集群内部完成领导者选举。

启动Naming Node
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节点安装版”。

数据分析遇到突发问题别慌!永洪BI高可用配置设计方案详解来了
勾选“使用命名节点的双活机制”:

输入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

启动ZooKeeper Server
Naming双活启动顺序

1、先启动Zookeeper,没有先后顺序;

2、当Zookeeper集群稳定后,先启动主N的Tomcat;

3、再启动其他节点的Tomcat,没有先后顺序。

在永洪安装路径下找到Zookeeper/bin目录

双击 zkServer.cmd启动

技术图片
启动Tomcat
在永洪安装路径找到tomcat/bin目录

双击startup.bat

技术图片
?小结:永洪高可用使用的技术是基于Zookeeper集群实现的,使用时要确保Zookeeper节点之间的通信,而且尽量采用奇数个节点的设计。以上就是我们对于Naming双活的介绍。

以上是关于数据分析如何用好高可用?Naming双活必须掌握!的主要内容,如果未能解决你的问题,请参考以下文章

Oracle 远程 RAC 打造双活数据中心 | 从容灾迈向双活案例分享

如何用python创建虚拟环境?掌握这些技术你才能真正的进步

python 爬虫爱好者必须掌握的知识点“ 协程爬虫”,看一下如何用 gevent 采集女生用头像

python 爬虫爱好者必须掌握的知识点“ 协程爬虫”,看一下如何用 gevent 采集女生用头像

#yyds干货盘点# python 爬虫爱好者必须掌握的知识点“ 协程爬虫”,看一下如何用 gevent 采集女生用头像

如何用mybatis进行分页?