Skip to main content

集群升级

查看cpu架构

cat /proc/cpuinfo | grep avx2

关闭副本迁移

关闭副本均衡逻辑。关闭后,不会再触发普通表副本的均衡操作。

admin set frontend config("disable_balance" = "true");

关闭 colocation 表的副本均衡逻辑。关闭后,不会再触发 colocation 表的副本重分布操作。

admin set frontend config("disable_colocate_balance" = "true");

关闭副本调度逻辑。关闭后,所有已产生的副本修复和均衡任务不会再被调度。

admin set frontend config("disable_tablet_scheduler" = "true");

备份fe的元数据

备份fe/doris-meta

在 fe.conf 文件中配置的元数据进行备份。

meta_dir = /apache-doris-fe-1.2.0-bin-x86_64/doris-meta

备份元数据,直接cp就行了。

cp -R  doris-meta doris-meta.bak

下载对应的安装包

wget https://mirrors.tuna.tsinghua.edu.cn/apache/doris/1.2/1.2.4.1-rc01/apache-doris-be-1.2.4.1-bin-x86_64.tar.xz
wget https://mirrors.tuna.tsinghua.edu.cn/apache/doris/1.2/1.2.4.1-rc01/apache-doris-fe-1.2.4.1-bin-x86_64.tar.xz
wget https://mirrors.tuna.tsinghua.edu.cn/apache/doris/1.2/1.2.4.1-rc01/apache-doris-dependencies-1.2.4.1-bin-x86_64.tar.xz

滚动升级be

  1. 停止be节点。
sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl status
sudo supervisorctl start <process_name> sudo supervisorctl start doris_be
sudo supervisorctl stop <process_name> sudo supervisorctl stop doris_be
sudo supervisorctl restart <process_name> sudo supervisorctl restart doris_be
  1. 用mv 替换掉旧的doris be的bin和lib目录。
mv /home/bigdata/module/apache-doris-be-1.2.0-bin-x86_64/bin /home/bigdata/module/apache-doris-be-1.2.0-bin-x86_64/bin.bak
mv /home/bigdata/module/apache-doris-be-1.2.0-bin-x86_64/lib /home/bigdata/module/apache-doris-be-1.2.0-bin-x86_64/lib.bak
cp -R /home/bigdata/module/apache-doris-be-1.2.0-bin-x86_64/apache-doris-2.0.1.1-bin-x64/be/bin/* /home/bigdata/module/apache-doris-be-1.2.0-bin-x86_64/bin

cp -R /home/bigdata/module/apache-doris-be-1.2.0-bin-x86_64/apache-doris-2.0.1.1-bin-x64/be/lib/* /home/bigdata/module/apache-doris-be-1.2.0-bin-x86_64/lib

修改配置文件

vi /home/bigdata/module/apache-doris-be-1.2.0-bin-x86_64/bin/start_be.sh
ulimit -n 524288
nohup ${LIMIT:+${LIMIT}} "${DORIS_HOME}/lib/doris_be" "$@" >>"${LOG_DIR}/be.out" 2>&1 </dev/null &
修改成nohup ${LIMIT:+${LIMIT}} "${DORIS_HOME}/lib/doris_be" "$@" >>"${LOG_DIR}/be.out" 2>&1 </dev/null,也就是去掉了&
wq保存退出
  1. 重启doris。
sudo ./start_be.sh

查看日志文件

tail -f be.INFO

如果上面的操作没有什么问题了,那么就可以用下面的自启动了。

sudo supervisorctl start doris_be

如果没有启动 :

sudo vi /etc/supervisord.d/doris_be.ini
  1. show backends; 看是否正常。正常则依次启动对应的be。

注意:如果升级以后发现sst文件找不到的错误,可以删除对应的be重新加入,利用副本机制恢复。

升级fe

注意:先升级 fowller 在升级 master

不然会报错

RROR 1105 (HY000): ForwardToMasterException, msg: org.apache.doris.qe.MasterOpExecutor$ForwardToMasterException: forward to master FE TNetworkAddress(hostname:10.240.8.117, port:8091), statement id: 124 : failed, cause: EOF

元数据恢复 2.0

这里如果只有一个节点的时候才使用,正常的步骤从 1 开始。

sudo ./start_fe.sh --metadata_failure_recovery --console
  1. 停止fe节点。
sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl status
sudo supervisorctl start <process_name> sudo supervisorctl start dorisfe
sudo supervisorctl stop <process_name> sudo supervisorctl stop dorisfe
sudo supervisorctl restart <process_name> sudo supervisorctl restart dorisfe
  1. 删除 bin lib 目录下的数据(记得备份下元数据)。
cp -R doris-meta doris-meta.bak
mv bin bin.bak
mv lib lib.bak
  1. 把下载好的新的bin 和lib替换到旧的 bin 和lib。
mv lib /home/bigdata/module/apache-doris-fe-1.2.0-bin-x86_64

mv bin /home/bigdata/module/apache-doris-fe-1.2.0-bin-x86_64

修改配置文件

vim /home/bigdata/module/apache-doris-fe-1.2.0-bin-x86_64/bin/start_fe.sh
ulimit -n 524288

# 下面是自启动supervisorctl的时候需要去掉&
nohup ${LIMIT:+${LIMIT}} "${DORIS_HOME}/lib/doris_be" "$@" >>"${LOG_DIR}/be.out" 2>&1 </dev/null &
修改成nohup ${LIMIT:+${LIMIT}} "${DORIS_HOME}/lib/doris_be" "$@" >>"${LOG_DIR}/be.out" 2>&1 </dev/null,也就是去掉了&
wq保存退出
  1. 启动fe。

先看下是否启动正常。

sudo ./start_fe.sh

普通启动。

sudo ./start_fe.sh --daemon

自动拉起启动

sudo supervisorctl start dorisfe
  1. show frontends;看是否正常。

把副本迁移打开

关闭副本均衡逻辑。关闭后,不会再触发普通表副本的均衡操作。

admin set frontend config("disable_balance" = "false");

关闭 colocation 表的副本均衡逻辑。关闭后,不会再触发 colocation 表的副本重分布操作。

admin set frontend config("disable_colocate_balance" = "false");

关闭副本调度逻辑。关闭后,所有已产生的副本修复和均衡任务不会再被调度。

admin set frontend config("disable_tablet_scheduler" = "false");

附录

新加节点操作

#在sql命令行执行
ALTER SYSTEM DROP FOLLOWER "100.200.0.36:9010";
ALTER SYSTEM ADD FOLLOWER "100.200.0.36:9010";

#要加入的节点,10.200.8.117是master节点,加入的节点的端口一定要和集群所有的端口相同
./bin/start_fe.sh --helper 100.200.8.117:9010 --daemon

dump 元数据

curl 127.0.0.1:8030/dump