1.下载新版本的Doris安装包
访问如下链接
https://cloud.baidu.com/doc/PALO/s/Ikivhcwb5
找到想使用的版本,然后下载,可以下载编译好的版本,也可以下载源码再次编译,如果下载的是编译好的版本,可以不参考编译过程,我下载0.13.15版本的
2.将下载好的源码分发到每台docker节点上。
本次是七个节点,其中,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个窗口
分别连接到7个docker节点上,每个窗口对应一台docker节点
docker exec -it doris-node1 bash
再选择“工具”->“发送键输入到所有会话”,会出现这个提示的时候,就可以了
执行命令,进行编译安装
① 解压
输入完命令,检查一下是否其他几个窗口也跟着动了
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
如果出现以上这个问题,是因为网慢(github),重新执行WITH_MYSQL=1 sh build.sh进行安装
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";
发现新的be已经正常运行(alive=true),并且be的版本号已经升级为新的版本号
按照相同的方式,将34567的be节点都逐一更换为新版本的be
直至所有的be都已经升级完成
② 升级FE
升级fe之前需要做元数据的兼容性测试,以下是官网给出的测试方式,最好还是测一下再整
经过测试后,新的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
逐一检查状态
最终检查状态
如果fe的升级过程中,某个节点出现如下问题
是因为在升级过程中,兼容性出现问题,或者是元数据发生变化造成新旧数据无法对应。只好将新的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