Doris 可以很方便的擴容和縮容 FE、BE、Broker 實例。
FE 擴容和縮容
可以通過將 FE 擴容至 3 個以上節點來實現 FE 的高可用。
1)使用 MySQL 登錄客戶端后,可以使用 sql 命令查看 FE 狀態,目前就一臺 FE
mysql -h hadoop1 -P 9030 -uroot -p
SHOW PROC '/frontends';
也可以通過頁面訪問進行監控,訪問 8030,賬戶為 root,密碼默認為空不用填寫。
2)增加 FE 節點
FE 分為 Leader,Follower 和 Observer 三種角色。 默認一個集群,只能有一個 Leader,可以有多個 Follower 和 Observer。其中 Leader 和 Follower 組成一個 Paxos 選擇組,如果Leader 宕機,則剩下的 Follower 會自動選出新的 Leader,保證寫入高可用。Observer 同步Leader 的數據,但是不參加選舉。
如果只部署一個 FE,則 FE 默認就是 Leader。在此基礎上,可以添加若干 Follower 和Observer。
ALTER SYSTEM ADD FOLLOWER "hadoop2:9010";
ALTER SYSTEM ADD OBSERVER "hadoop3:9010";
3)配置及啟動 Follower 和 Observer
第一次啟動時,啟動命令需要添加參--helper leader 主機:edit_log_port:
(1)分發 FE,修改 FE 的配置
scp -r /opt/module/apache-doris-0.15.0/fe hadoop2:/opt/module/
apache-doris-0.15.0
scp -r /opt/module/apache-doris-0.15.0/fe hadoop3:/opt/module/
apache-doris-0.15.0
(2)在 hadoop2 啟動 Follower
/opt/module/apache-doris-0.15.0/fe/bin/start_fe.sh --helper hadoop1:9010 --daemon
(3)在 hadoop3 啟動 Observer
/opt/module/apache-doris-0.15.0/fe/bin/start_fe.sh --helper hadoop1:9010 --daemon
4)查看運行狀態
使用 mysql-client 連接到任一已啟動的 FE。
SHOW PROC '/frontends';
5)刪除 FE 節點命令
ALTER SYSTEM DROP FOLLOWER[OBSERVER] "fe_host:edit_log_port";
注意:刪除 Follower FE 時,確保最終剩余的 Follower(包括 Leader)節點為奇數。
BE 擴容和縮容
1)增加 BE 節點
在 MySQL 客戶端,通過 ALTER SYSTEM ADD BACKEND 命令增加 BE 節點。
2)DROP 方式刪除 BE 節點(不推薦)
ALTER SYSTEM DROP BACKEND "be_host:be_heartbeat_service_port";
注意:DROP BACKEND 會直接刪除該 BE,并且其上的數據將不能再恢復!!!所以我們強烈不推薦使用 DROP BACKEND 這種方式刪除 BE 節點。當你使用這個語句時,會有對應的防誤操作提示。
3)DECOMMISSION 方式刪除 BE 節點(推薦)
ALTER SYSTEM DECOMMISSION BACKEND "be_host:be_heartbeat_service_port";
該命令用于安全刪除 BE 節點。命令下發后,Doris 會嘗試將該 BE 上的數據向其他 BE 節點遷移,當所有數據都遷移完成后,Doris 會自動刪除該節點。
該命令是一個異步操作。執行后,可以通過 SHOW PROC '/backends'; 看到該 BE 節點的 isDecommission 狀態為 true。表示該節點正在進行下線。
該命令不一定執行成功。比如剩余 BE 存儲空間不足以容納下線 BE 上的數據,或者剩余機器數量不滿足最小副本數時,該命令都無法完成,并且 BE 會一直處于isDecommission 為 true 的狀態。
DECOMMISSION 的進度,可以通過 SHOW PROC '/backends'; 中的 TabletNum 查 看,如果正在進行,TabletNum 將不斷減少。
該操作可以通過如下命令取消:
CANCEL DECOMMISSION BACKEND "be_host:be_heartbeat_service_port";
取消后,該 BE 上的數據將維持當前剩余的數據量。后續 Doris 重新進行負載均衡。
Broker 擴容縮容
Broker 實例的數量沒有硬性要求。通常每臺物理機部署一個即可。Broker 的添加和刪除可以通過以下命令完成:
ALTER SYSTEM ADD BROKER broker_name "broker_host:broker_ipc_port";ALTER SYSTEM DROP BROKER broker_name "broker_host:broker_ipc_port";ALTER SYSTEM DROP ALL BROKER broker_name;
Broker 是無狀態的進程,可以隨意啟停。當然,停止后,正在其上運行的作業會失敗,重試即可。