永洪产品目前使用最广泛的架构部署方式是mpp部署,但是mpp部署有节点角色区分、部署繁琐,并且需要依赖Zookeeper实现naming双活。

基于此,从9.2.1版本开始推出了VooltDB,VooltDB是采用Multi-Master多主架构,集群中的每个节点角色对等,从客户端访问任意一个节点都能得到相同的效果。

并且这种多主的架构有许多优势,例如对等的角色使系统架构变得更加简单,不用再区分naming节点、map节点和reduce节点,天然规避了单点故障的问题,较容易实现多数据中心、异地灾备的场景。

同时,VooltDB集群实现了数据自动备份,当一个VooltDB节点宕掉后,不会影响数据的计算结果,增删节点后,也会自动处理数据均衡。

VooltDB部署支持单机部署和集群部署,Windows上只支持VooltDB单机,Linux/Mac/Arm/Freedsd上不仅支持VooltDB单机,也支持VooltDB集群。当购买了带有VooltDB权限的license后,管理系统中就会出现VooltDB管理模块。VooltDB管理模块包含Zookeeper安装、节点管理和数据迁移三大部分。

Zookeeper安装

对于VooltDB单机,不需要部署Zookeeper。如果要使用VooltDB集群,则需要提前部署一套可用的Zookeeper集群,用于实现VooltDB之间副本协调和数据同步。建议部署奇数个Zookeeper节点,并且每个节点部署在不同的服务器上。

在【VooltDB管理->Zookeeper安装】页面,点击“新增”按钮,添加Zookeeper节点并安装,如下图所示:

vorona安装问题(干货VooltDB部署与数据迁移)(1)

配置项说明:

【节点IP】填写想要安装ZooKeeper节点的服务器IP或域名。

【用户】安装ZooKeeper节点的服务器的用户名。

【密码】安装ZooKeeper节点的服务器的用户密码。

【安装路径】安装Zookeeper到服务器的路径。路径不允许包含空格,如果路径已存在,则必须为空目录。如果不存在,会创建此路径。

【数据路径】存放ZooKeeper数据的路径。路径不允许包含空格,如果路径已存在,则必须为空目录。如果不存在,会创建此路径。

【日志路径】存放Zookeeper事务日志的路径。路径不允许包含空格,如果路径已存在,则必须为空目录。如果不存在,会创建此路径。

【测试连接】填写完节点IP、用户名、密码、安装路径、数据路径和日志路径之后,可以点击测试连接按钮,测试是否可以成功连接服务器,如果填写信息正确,将显示测试成功。

【JAVAHOME】安装ZooKeeper节点的服务器中已安装的java目录。如果服务器上已配置了java环境,点击测试连接后会自动填充java目录。

【内存】分配给ZooKeeper节点的最大内存空间。

【客户端端口】对外访问的端口。

【Leader选取端口】选举Leader的通信端口。

【数据同步端口】Zookeeper集群内数据同步的通信端口。

【确定】填写全部信息之后,点击确定,保存节点信息,并关闭对话框。如果服务器信息填写错误,会在对话框上展示相应的错误提示。

【取消】点击取消按钮,关闭对话框,不保存已填写的信息。

添加完所有Zookeeper节点后,点击“全部安装”,系统将会自动安装Zookeeper并且启动Zookeeper。安装成功后状态栏中也会提示安装成功,如下图所示:

vorona安装问题(干货VooltDB部署与数据迁移)(2)

注意:Zookeeper安装成功后,不可变更和修改节点信息,只能先卸载再增加、修改或删除节点。

节点管理

节点管理

通过Zookeeper安装页面安装Zookeeper后,可以点击Zookeeper配置中的“获取”自动填充已安装的Zookeeper信息。如果不是通过页面安装的Zookeeper,需要在文本框中输入全部Zookeeper集群信息,每个Zookeeper节点之间用“,”相连,每个节点的格式为“IP:port”或者“域名:port”。如果是VooltDB单机部署,则不需要填写Zookeeper配置。如下图所示:

vorona安装问题(干货VooltDB部署与数据迁移)(3)

在【VooltDB管理->节点管理->节点管理】页面,点击“新增”按钮,添加VooltDB节点并安装,如下图所示:

vorona安装问题(干货VooltDB部署与数据迁移)(4)

配置项说明:

【节点IP】填写想要安装的VooltDB节点的服务器IP或域名。

【集群选项】选择该节点属于主集群还是备集群。需要购买RemoteBackup权限的license才能使用此功能。未购买此功能时,默认添加主集群。

【用户】安装VooltDB节点的服务器的用户名。

【密码】安装VooltDB节点的服务器的用户密码。

【安装路径】安装VooltDB节点到服务器的路径。安装路径不允许包含空格,如果路径已存在,则必须为空目录。如果不存在,会自动创建该路径。

【测试连接】填写完节点IP、用户名、密码和安装路径之后,可以点击测试连接按钮测试是否可以成功连接服务器,如果填写信息正确,将显示测试成功。

【内存】分配给VooltDB的最大内存空间。点击测试连接后将根据当前服务器剩余的内存自动填写,也可以根据实际规划手动修改。如果是集群部署,单个节点会安装2个实例,内存是均分给两个实例的。

【许可证】VooltDB节点安装和运行需要的License,可按照商务流程申请。

【tcp_port】配置VooltDB节点进行tcp通讯的端口。

【interserver_http_port】配置VooltDB节点之间交换数据的端口。

【http_port】配置VooltDB节点进行http通讯的端口。

【确定】填写完全部信息之后,点击确定保存节点信息,并关闭对话框,如果服务器信息填写错误,会在对话框上展示相应的错误提示。

【取消】点击取消按钮,关闭窗口,不保存已填写的信息。

添加完所有VooltDB节点后,点击“全部安装”,系统将会自动安装VooltDB并且启动VooltDB。安装成功后状态栏中也会提示安装成功,如下图所示:

vorona安装问题(干货VooltDB部署与数据迁移)(5)

安装完VooltDB后,可以增加或删除VooltDB节点,然后点击“变更”按钮,对集群进行扩容或缩容。扩容或缩容成功后,状态栏中会提示变更成功,如下图所示:

vorona安装问题(干货VooltDB部署与数据迁移)(6)

节点状态

对于VooltDB集群,每个节点会安装两个实例。安装完VooltDB后,在节点状态页面可以看到已经安装的各个VooltDB节点的状态,并且可以对各个实例进行管理,如重启节点、停止节点、启动节点,如下图所示:

vorona安装问题(干货VooltDB部署与数据迁移)(7)

集群切换

如果需要使用VooltDB的灾备功能,即进行主备集群切换,需要购买RemoteBackup权限的license。购买后,节点管理页面就会出现集群切换功能,如下图所示:

vorona安装问题(干货VooltDB部署与数据迁移)(8)

添加备集群的方式和前文中添加主集群的方式一样,只是在【集群选项】中选择备集群,最多可以添加两套备集群。备集群的节点数必须和主集群的节点数一致。安装备集群后,主集群上的集市数据会自动备份到备集群上。当工作集群为备集群时,只能查看数据,不能进行入集市、修改或变更VooltDB集群等操作。

数据迁移

如果之前使用的是MPP集群,想切换到VooltDB,对于已经入集市的数据可以通过数据迁移将其导入到VooltDB中。但数据迁移到VooltDB后,不支持从VooltDB迁移回MPP。数据迁移的方式有两种,一种是通过数据迁移页面迁移数据,另一种是通过定制jar 自定义任务迁移数据。如果是同版本从MPP切换到VooltDB,或者以前使用的低版本MPP,新装了一套高版本VooltDB,需要将低版本MPP的数据迁移到新版VooltDB环境,可以使用数据迁移页面进行数据迁移。如果当前使用的版本是8.5.*、8.6.*或8.8.*,需要直接升级到9.2.*以上版本使用VooltDB,可以使用定制jar 自定义任务进行数据迁移。

页面数据迁移

在【VooltDB管理->数据迁移】页面,会展示MPP中已有集市文件夹的详细信息,如下图所示:

vorona安装问题(干货VooltDB部署与数据迁移)(9)

页面各项说明:

【MPP数据集市文件夹】存在于MPP中的集市文件夹名称。

【迁移版本】文件夹最后一次入MPP的时间。

【状态】当前文件夹的状态,可有:未迁移、迁移中、迁移成功、迁移失败四种。

【操作】可以对当前集市文件夹进行的操作,分别为:开始迁移和停止。

【开始迁移】开始迁移有两个按钮,分别为每个集市文件夹后面单独的开始迁移和页面最上方的开始迁移。其中点击单个集市文件夹的开始迁移,只会对所选的集市文件夹进行迁移操作,如果点击页面最上方的开始迁移,则系统会自动依次对所有的集市文件夹进行迁移。

【停止迁移】如果没有任务在迁移中,页面最上方的停止迁移按钮将会置灰显示。如果当前有迁移任务进行中,按钮会高亮显示,点击后将会停止当前所有迁移操作。

【停止】单个集市文件夹开始迁移后,文件夹后方的开始迁移按钮将会变成“停止”,点击停止按钮后,将会停止迁移当前任务。

可以根据自身需要在此页面进行数据迁移,迁移任务也可以多次进行。如果迁移失败或者数据有重新入集市的情况,只需要针对有变化的集市文件夹再次进行迁移操作即可。

同版本数据迁移

如当前使用的9.2的MPP,需要直接切换成VooltDB。数据迁移步骤如下:

1

根据MPP集群部署规划VooltDB集群。比如MPP集群是(C、C、N、MR、MR)5个节点,则2个C节点保留,并在其中一个C上按2.1节中的步骤安装相同MR节点数量的VooltDB节点,则VooltDB集群由(C、C、N、MR、MR)变成了(C、C、VooltDB、VooltDB)。

2

进入9.2MPP集群所有C节点的“调度任务”页面,停掉每个节点上的作业服务,如下图所示:

vorona安装问题(干货VooltDB部署与数据迁移)(10)

3

确保之前的集群节点(C、C、N、MR、MR)和两个新的VooltDB节点都启动。

4

进入【管理系统->VooltDB管理->数据迁移】页面,点击页面右上角的开始迁移按钮进行迁移。

5

当所有集市文件夹都迁移完成后,停掉MPP集群,在C节点的bi.properties中将cloud.use.vooltdb属性从false切换成true,重启C节点,从而切换为VooltDB集群,则可以开始使用VooltDB集群。

低版本数据迁移

如目前使用的8.7的MPP,需要升级到9.2,且9.2已按节点管理中的步骤重新安装了C和VooltDB节点的集群。数据迁移步骤如下:

1

进入8.7MPP集群所有C节点的“调度任务”页面,停掉每个节点上的作业服务。

2

数据备份。数据备份的内容和步骤和MPP版本升级一致,需要注意每个节点的数据都需要备份,文件系统需要备份bihome和Yonghong/cloud目录,数据库系统需要先将数据库内容同步到本地文件系统后,再备份bihome和Yonghong/cloud目录。

3

替换老集群的jar包。8.7MPP集群的所有节点,停止服务,备份Yonghong/product中原有jar包,然后替换9.2版本的api.jar、product.jar、thirds.jar。

4

将9.2环境的C节点接入8.7环境的MPP集群。先在新安装的9.2的C节点中,新增或修改bi.propertise和global_bi.properties中的如下配置项:

bi.properties配置:

cloud.use.vooltdb=false(不用VooltDB,切回MPP)

dc.global.path=XXX/Yonghong/bihome/global_bi.properties(XXX为产品安装目录,整个目录需要指向新安装节点的global_bi.properties文件)

global_bi.properties配置:

dc.node.naming=XXX(XXX为8.7集群环境N节点的IP,如果是Naming双活,请填写主N的IP)

dc.io.local=false

然后启动8.7版本MPP集群,需要逐台节点检查是否正常启动,可以在C节点的“监控预警->系统监控概览”中查看是否每台节点都是alive,如果不是,请检查没有alive的节点,确保每台服务器都是alive。

最后启动9.2新安装的C节点,查看节点是否成功接入老集群,如果在【管理系统->VooltDB管理->数据迁移】页面显示了老集群中的集市文件夹信息,则接入成功。如果没有数据,请检查前序步骤是否操作正确。并进入管理系统->VooltDB管理->节点管理->节点状态,查看VooltDB节点的状态,确保所有VooltDB节点全部启动。

5

MPP集市数据迁移到VooltDB。进入9.2新安装的节点C,打开【管理系统->VooltDB管理->数据迁移】页面,点击右上角的“开始迁移”按钮,所有集市文件状态均显示“迁移成功”后,表示迁移完成。

6

使用9.2的VooltDB集群。完成上述步骤后,MPP数据迁移到VooltDB的工作已经完成。此时可以停掉老的集群,修改9.2C节点的bi.properties文件,设置cloud.use.vooltdb=true,重启服务即可。

定制jar迁移

如当前使用的8.6的MPP(cnmr、cmr),需要升级到9.2.4使用VooltDB。数据迁移步骤如下:

1

先根据2.1的介绍及自身需要部署9.2.4版本的VooltDB(此处以部署C、vooltdb单机为例),然后将8.6 cnmr节点bihome下的资源拷贝到9.2.4版本C节点的同级目录下(数据库系统需要将存储到数据库的bihome先从数据库同步到文件系统,再拷贝到9.2.4的bihome下)。如果拷贝了bi.properties文件,需要编辑bi.properties文件,将dc.fs.physical.path=、dc.fs.naming.paths=、dc.fs.sub.path=属性删除,并添加cloud.use.vooltdb=true属性。然后进入8.6集群的所有C节点的调度任务,停止调度服务。

2

获取对应版本的migration-task.jar放到老版本MPP集群所有节点的product路径下。

3

将9.2.4的C节点bihome下的vooltdb.config文件放到老版本MPP中C节点的bihome下,可以只放到某个C节点下,重启服务(此处可以将9.2.4上C节点Yonghong/bihome下的vooltdb.config文件放到8.6的cnmr节点的bihome下)。

4

在8.6放置了vooltdb.config文件的节点新建“自定义任务”类型的作业,操作类中填写“g5.sched.jobs.MigrateToVooltDBTask”,默认为全量迁移,如果想单独迁移某个集市文件夹,则点击参数后的收集按钮,在参数folder中填写集市文件夹的路径,则对该文件夹进行迁移。不支持同时迁移多个文件夹。如下图所示

vorona安装问题(干货VooltDB部署与数据迁移)(11)

5

保存并执行作业,开始进行数据迁移,作业执行完成后,迁移完成。此时可停用MPP集群,使用新的VooltDB集群。

,