基于docker的doris集群升级

1.下载新版本的Doris安装包

访问如下链接

https://cloud.baidu.com/doc/PALO/s/Ikivhcwb5

基于docker的doris集群升级

找到想使用的版本,然后下载,可以下载编译好的版本,也可以下载源码再次编译,如果下载的是编译好的版本,可以不参考编译过程,我下载0.13.15版本的

2.将下载好的源码分发到每台docker节点上。

基于docker的doris集群升级

本次是七个节点,其中,123为fe节点,234567为be节点

docker cp incubator-doris-DORIS-0.13.15-release.zip doris-node1:/opt

docker cp incubator-doris-DORIS-0.13.15-release.zip doris-node2:/opt

docker cp incubator-doris-DORIS-0.13.15-release.zip doris-node3:/opt

docker cp incubator-doris-DORIS-0.13.15-release.zip doris-node4:/opt

docker cp incubator-doris-DORIS-0.13.15-release.zip doris-node5:/opt

docker cp incubator-doris-DORIS-0.13.15-release.zip doris-node6:/opt

docker cp incubator-doris-DORIS-0.13.15-release.zip doris-node7:/opt

3.编译安装

用XShell的“发送键输入到所有会话”的功能,先在XShell中打开7个窗口

基于docker的doris集群升级

分别连接到7个docker节点上,每个窗口对应一台docker节点

docker exec -it doris-node1 bash

再选择“工具”->“发送键输入到所有会话”,会出现这个提示的时候,就可以了

基于docker的doris集群升级

执行命令,进行编译安装

① 解压

输入完命令,检查一下是否其他几个窗口也跟着动了

cd /opt unzip incubator-doris-DORIS-0.13.15-release.zip

② 编译安装

如果环境中没有安装MySQL的ODBC的话,就把WITH_MYSQL=1 去掉

cd incubator-doris-DORIS-0.13.15-release WITH_MYSQL=1 sh build.sh

需要耐心等待安装过程

编译过程中如果出现npm的问题,需要在环境中安装nodejs,并输入npm能打印nodejs的相关内容之后,再次执行

​​​​​​​WITH_MYSQL=1 sh build.sh

基于docker的doris集群升级

如果出现以上这个问题,是因为网慢(github),重新执行WITH_MYSQL=1 sh build.sh进行安装

基于docker的doris集群升级

4.升级准备工作

需要等到所有的节点都编译完成之后,再进行此步操作

① 删除新编译好的doris的fe和be的配置文件

rm -rf output/fe/conf/* rm -rf output/be/conf/*

② 拷贝之前编译好的配置文件和数据

 注意,现在需要停止对Doris集群进行操作

cp -r ../incubator-doris-master/output/fe/conf/* output/fe/conf

cp -r ../incubator-doris-master/output/be/conf/* output/be/conf

cp -r ../incubator-doris-master/output/fe/log output/fe

cp -r ../incubator-doris-master/output/be/log output/be

cp -r ../incubator-doris-master/output/fe/doris-meta output/fe

cp -r ../incubator-doris-master/output/be/storage output/be

因为有的节点只有fe或者be,所以并不是所有的路径都存在,路径不存在问题不用理会,只要保证有用的数据都拷贝好就可以了。

关闭“发送键输入到所有会话”功能,逐一检查数据是否都已经拷贝好

5.升级集群

升级集群应该先升级be节点,后升级fe节点,并采用逐一升级的方式

① 升级BE

先操作node2节点

退出原有be节点 (具体的路径以自己安装的路径为准)

/opt/incubator-doris-master/output/be/bin/stop_be.sh

启动新的be进程

/opt/incubator-doris-DORIS-0.13.15-release/output/be/bin/start_be.sh --daemon

用MySQL Client登录Doris集群,输入SQL语句,检查be是否正常

show proc "/backends";

基于docker的doris集群升级

发现新的be已经正常运行(alive=true),并且be的版本号已经升级为新的版本号

按照相同的方式,将34567的be节点都逐一更换为新版本的be

基于docker的doris集群升级

直至所有的be都已经升级完成

② 升级FE

升级fe之前需要做元数据的兼容性测试,以下是官网给出的测试方式,最好还是测一下再整

基于docker的doris集群升级

经过测试后,新的fe对元数据的兼容性没问题,

保证所有的be都已经升级完成之后,再升级fe

和升级be同样的方式,先关闭老fe的进程,再开启新fe的进程,我们升级,先升级非Master节点,最后再升级Master节点

关闭老fe进程

/opt/incubator-doris-master/output/fe/bin/stop_fe.sh

开启新的fe进程

/opt/incubator-doris-DORIS-0.13.15-release/output/fe/bin/start_fe.sh --daemon

逐一检查状态

最终检查状态

基于docker的doris集群升级

如果fe的升级过程中,某个节点出现如下问题

基于docker的doris集群升级

是因为在升级过程中,兼容性出现问题,或者是元数据发生变化造成新旧数据无法对应。只好将新的fe目录下的元数据信息删除,在进行启动了

rm -rf /opt/incubator-doris-DORIS-0.13.15-release/output/fe/doris-meta/

启动命令用helper方式启动

/opt/incubator-doris-DORIS-0.13.15-release/output/fe/bin/start_fe.sh --helper 192.168.124.11:9010 --daemon

 

上一篇:中空碳纳米球负载高活性Fe-Nx催化点位材料


下一篇:gulp及其插件的使用