apache kudu multiple master
- 시나리오 : master가 하나만 존재하는 과정에서 master를 3개로 증설
- 작업 영향 : 마스터가 잠시 중단되어야 함.
- 버전 : apache kudu 1.17
- 사전작업 - 테이블생성
2. 마스터의 uuid를 확인하고 나머지 서버들의 uuid를 확인한다.
[root@kudu-master1 kudu]# kudu fs dump uuid --fs_wal_dir=/home/gold/data/kudu/master
4f1c106e9b554743ac364967cb5227b4
[root@kudu-master2 kudu]# kudu fs format --fs_wal_dir=/home/gold/data/kudu/master
53e12ba47c8c4ef386e8d6927093986e
[root@kudu-master3 kudu]# kudu fs format --fs_wal_dir=/home/gold/data/kudu/master
a45c1ff473f74827814c56a3834f0965
3. 마스터에서아래와 같이 레플리카 설정을 먹인다.
kudu local_replica cmeta rewrite_raft_config --fs_wal_dir=/home/gold/data/kudu/master 00000000000000000000000000000000 4f1c106e9b554743ac364967cb5227b4:kudu-master1:7051 53e12ba47c8c4ef386e8d6927093986e:kudu-master2:7051 a45c1ff473f74827814c56a3834f0965:kudu-master3:7051
4. 마스터를 다시 구동한다
systemctl restart kudu-master
5. 나머지 서버에서 아래와 같이 마스터 정보를 복사해온다.
kudu local_replica copy_from_remote --fs_wal_dir=/home/gold/data/kudu/master --fs_data_dirs=/home/gold/data/kudu/master 00000000000000000000000000000000 kudu-master1:7051
6. 나머지 서버들을 실행한다
systemctl start kudu-master
7. 테이블 리스트를 확인하고 기존 테이블을 alter 한다.
[kudu-master1:21050] default> ALTER TABLE test_table
SET TBLPROPERTIES
('kudu.master_addresses' = 'kudu-master1,kudu-master2,kudu-master3');
Query: ALTER TABLE test_table
SET TBLPROPERTIES
('kudu.master_addresses' = 'kudu-master1,kudu-master2,kudu-master3')
+----------------+
| summary |
+----------------+
| Updated table. |
+----------------+
Fetched 1 row(s) in 0.22s
8. 바뀐 정보를 확인한다.