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 變更流程。