kudu集群:kudu_master、kudu_tserver服務及數據的遷移(根據官網總結)


 

是不是都需要一個聲明,來一個:

聲明:

本文只是總結本人本地模擬環境測試,並沒有經過嚴格的線上測試。請自己在本地嚴格測試之后慎重使用在生產環境!

 

kudu_master、kudu_tserver服務遷移時候會涉及數據的遷移,概括如下:

1、kudu_master部署機器

172.16.100.1 kudu_master1 Leader 
172.16.100.2 kudu_master2 Follower
172.16.100.3 kudu_master3 Follower

2、確認kudu集群健康狀態,通過ksck命令查看

./kudu cluster ksck kudu_master1,kudu_master2,kudu_master3


注釋:
kudu_master1,kudu_master2,kudu_master3:kudu_master服務所在機器的host
 
        
Version Summary
Version | Servers
-----------------+-------------------------
1.10.0-cdh6.3.1 | all 6 server(s) checked

Tablet Summary
Summary by table
Name | RF | Status | Total Tablets | Healthy | Recovering | Under-replicated | Unavailable
--------------------------+----+---------+---------------+---------+------------+------------------+-------------
impala::default.dd1 | 3 | HEALTHY | 1 | 1 | 0 | 0 | 0
impala::default.dd2 | 3 | HEALTHY | 1 | 1 | 0 | 0 | 0
impala::hxoffice_pri.dd3 | 3 | HEALTHY | 1 | 1 | 0 | 0 | 0

Tablet Replica Count Summary
Statistic | Replica Count
----------------+---------------
Minimum | 3
First Quartile | 3
Median | 3
Third Quartile | 3
Maximum | 3

Total Count Summary
| Total Count
----------------+-------------
Masters | 3
Tablet Servers | 3
Tables | 3
Tablets | 3
Replicas | 9

3、獲取kudu集群master機器的UUID

./kudu local_replica cmeta print_replica_uuids --fs_wal_dir=/data/kudu/master --fs_data_dirs=/data/kudu/master  00000000000000000000000000000000 2>/dev/null

命令執行結果:
0ad919b7c68049a3bcf46abc029da8f6 909d4c97d0b948c6902e40f6968a3b8b 739298ec62504f898a71d4f6b92f908e

注釋:
--fs_wal_dir=/data/kudu/master --fs_data_dirs=/data/kudu/master:該參數是kudu集群部署時候你指定的數據和日志路徑,具體可在master.gflagfile文件查看
00000000000000000000000000000000 :固定參數

 

4、在kudu的WEBUI界面確認自己需要遷移的master節點的UUID

 

 

 

5、遷移的機器的UUID

909d4c97d0b948c6902e40f6968a3b8b

 

 

6、在新增的kudu_master機器,把--fs_wal_dir=/data/kudu/master --fs_data_dirs=/data/kudu/master 這兩個路徑下的master目錄干掉,沒什么用

 

7、重新格式化--fs_wal_dir=/data/kudu/master --fs_data_dirs=/data/kudu/master 這個新增機器的數據目錄

./kudu fs format --fs_wal_dir=/data/kudu/master --fs_data_dirs=/data/kudu/master --uuid=909d4c97d0b948c6902e40f6968a3b8b

注釋:
--uuid:需要遷移的kudu_master節點機器的UUID,第5步,你已經確認你需要遷移的機器了
--fs_wal_dir=/data/kudu/master --fs_data_dirs=/data/kudu/master:這兩個路徑配置,上面已經說過了是數據和日志相關的路徑配置,新增機器的配置維持原樣

 

 

8、現在從正常的、存活的kudu_master節點復制一份完成數據到這個新增的機器上

./kudu local_replica copy_from_remote --fs_wal_dir=/data/kudu/master --fs_data_dirs=/data/kudu/master  00000000000000000000000000000000 hxb06:7051

注釋:
--fs_wal_dir=/data/kudu/master --fs_data_dirs=/data/kudu/master:數據和日志相關配置目錄,不要隨意修改,按照你自己之前的配置來
00000000000000000000000000000000:固定參數
hxb06:7051:正常的、存活的kudu_master節點,之前准備遷移的那一台kudu_master機器已經停掉,這一步執行最好選擇是kudu_master服務的LEADER角色

 

 

9、拷貝完之后,修改配置文件master.gflagfile、tserver.gflagfile

--master_addresses=172.16.100.1:7051,172.16.100.2:7051,172.16.100.4:7051(這一台是新增上來的機器)

 

 

10、每一台kudu_master節點執行,刷新當前kudu_master集群配置

./kudu local_replica cmeta rewrite_raft_config --fs_wal_dir=/data/kudu/master --fs_data_dirs=/data/kudu/master 00000000000000000000000000000000 909d4c97d0b948c6902e40f6968a3b8b:172.16.100.179:7051 0ad919b7c68049a3bcf46abc029da8f6:172.16.100.249:7051 739298ec62504f898a71d4f6b92f908e:172.16.101.230:7051

注釋:
--fs_wal_dir=/data/kudu/master --fs_data_dirs=/data/kudu/master:老生常談,這兩個路徑是你數據和日志相關路徑
00000000000000000000000000000000:固定參數
909d4c97d0b948c6902e40f6968a3b8b  kudu_master機器的UUID(這個UUID,你去WEBUI界面上看,現在活着的kudu_master的UUID是什么,千萬不要寫錯,kudu_master遷移完全依賴機器的UUID)

 

 

11、kudu_tserver服務和數據遷移

經查閱官網資料,kudu官網提供kudu cluster rebalance工具和自主恢復機制兩種方式進行kudu_tserver節點的永久移除,考慮到該工具使用牽扯到gcc編譯和版本要求,再者考慮到數據量並不是很大,故采用kudu集群自主遷移恢復機制進行kudu_tserver數據遷移,本地測試超過兩次,均未造成數據丟失,操作比較簡單

注釋:
如果你想試一下balance工具,參考官網地址:
https://kudu.apache.org/docs/administration.html#tablet_server_decommissioning
https://kudu.apache.org/docs/administration.html#ksck

 

 

12、我使用的是kudu集群自主遷移恢復機制

1. 停掉一台需要遷移的kudu_tserver節點,保證活着的kudu_tserver至少三台,因為我的副本數設置的是3,僅僅如此

2.根據自主恢復機制,停機超5分鍾后,該機器副本會自動遷移至其他活着的kudu_tserver節點

3. 重啟kudu集群各個kudu_master、kudu_tserver服務

4. 使用ksck命令檢查集群健康狀態是否正常,檢查kudu集群WEBUI界面是否已經移除掉遷移的kudu_tserver節點

 

 

至此,kudu_master、kudu_tserver服務及數據遷移完成,SOEASY!!!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM