FE 恢复
异常日志
查看 fe.out 会有以下报错,此时 fe 进程是无法启动的,操作前注意备份所有 fe 的元数据并停止上游读写动作!
java.io.IOException: the self host 192.168.31.78 does not equal to the host in ROLE file 192.168.31.81. You need set 'priority_network' in fe.conf to match the host 192.168.31.81at org.apache.doris.catalog.Env.getClusterIdAndRole(Env.java:968)at org.apache.doris.catalog.Env.initialize(Env.java:858)at org.apache.doris.PaloFe.start(PaloFe.java:138)at org.apache.doris.PaloFe.main(PaloFe.java:73)
获取当前 IP
ip addr
1: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000link/ether 00:15:5d:d0:86:b1 brd ff:ff:ff:ff:ff:ffinet 192.168.31.78/24 brd 192.168.31.255 scope global eth0valid_lft forever preferred_lft foreverinet6 fe80::215:5dff:fed0:86b1/64 scope linkvalid_lft forever preferred_lft forever
重置 IP 信息
重置 IP 信息后还是会报如上异常
修改 fe.conf 的 priority_networks
# 修改fe.conf的priority_networks
priority_networks = 192.168.0.0/16
# 或者
priority_networks = 192.168.31.78/16
重置元数据记录
重置元数据记录后fe进程虽然能够启动,但是不可用
注释掉 fe 元数据中之前记录的老 IP
# 注释掉fe元数据中之前记录的老ip
vim doris-meta/image/ROLE
# name=192.168.31.81_9010
role=FOLLOWER
元数据模式恢复
在 fe.conf 中新增 metadata_failure_recovery=true 启用恢复模式重启 fe
# 在fe.conf中新增metadata_failure_recovery=true启用恢复模式重启fe
vim fe.conf
metadata_failure_recovery=true
重置 fe 集群节点
虽然使用元数据恢复模式fe目前能够启动,但是还没完全恢复,因为当前fe元数据中记录的集群节点中并没有刚刚修改的ip节点
# 在 mysql 客户端或者 web ui 的 Playground 执行如下 sql 更新 fe 元数据中记录的 fe 节点
# 移除老ip节点
ALTER SYSTEM DROP FOLLOWER "192.168.31.81:9010";# 新增新ip节点
ALTER SYSTEM ADD FOLLOWER "192.168.31.78:9010";
关闭元数据模式重启 fe
# 在 fe.conf 中注释 metadata_failure_recovery=true 关闭恢复模式重启 fe
vim fe.conf
# metadata_failure_recovery=true
BE 恢复
获取当前ip
ip addr
1: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000link/ether 00:15:5d:d0:86:b1 brd ff:ff:ff:ff:ff:ffinet 192.168.31.136/24 brd 192.168.31.255 scope global eth0valid_lft forever preferred_lft foreverinet6 fe80::215:5dff:fed0:86b1/64 scope linkvalid_lft forever preferred_lft forever
重置ip信息
# 修改 be.conf 的 priority_networks
priority_networks = 192.168.0.0/16
# 或者
priority_networks = 192.168.31.136/16
重置 be 集群节点
虽然当前be已经能够启动,但是还没完全恢复,因为当前 fe 元数据中记录的 be 集群节点中并没有刚刚修改的 be 节点
# 在mysql客户端或者web ui的Playground执行如下sql更新fe元数据中记录的be节点
# 移除老ip节点
ALTER SYSTEM DROPP FOLLOWER "192.168.31.81:9010";
ALTER SYSTEM DROPP FOLLOWER "192.168.31.72:9010";
ALTER SYSTEM DROPP FOLLOWER "192.168.31.133:9010";# 新增新ip节点
ALTER SYSTEM ADD FOLLOWER "192.168.31.78:9010";
ALTER SYSTEM ADD FOLLOWER "192.168.31.71:9010";
ALTER SYSTEM ADD FOLLOWER "192.168.31.136:9010";
重启 FE 和 BE 所有节点
至此完成 doris 集群 IP 变更流程。