Kudu 호스트명 변경 후 기존 테이블을 갱신하지 못하는 증상이 나타난다.
기존 호스트명을 참조하는 테이블이 남아 있었다. 해당 환경에서는 kudu table reload_metadata 명령을 사용할 수 없어 이름 해석 복구와 CTAS를 우회 방법으로 사용했다.
/etc/hosts에 기존 호스트명을 등록해 통신을 복구한다. 필요한 테이블은 CTAS로 새 테이블에 복사하고 새 호스트명의 tablet이 생성되는지 확인한다.
명령 예시는 문서 작성 시 보강한 것이며 대상 시스템에서 실행 검증하지 않았다.
SHOW CREATE TABLE과 master/tablet server 목록을 기록한다. 이전 이름이 새 주소로 해석되도록 DNS 또는 /etc/hosts를 임시 복구한다.SHOW CREATE TABLE <db>.<old_table>;
CREATE TABLE <db>.<new_table>
PRIMARY KEY (<primary_key>)
PARTITION BY HASH (<primary_key>) PARTITIONS <partition_count>
STORED AS KUDU
AS SELECT * FROM <db>.<old_table>;
SELECT COUNT(*) FROM <db>.<old_table>;
SELECT COUNT(*) FROM <db>.<new_table>;
kudu cluster ksck <masters>와 tablet 목록으로 새 hostname의 배치를 확인한 뒤 애플리케이션 참조를 전환한다.새 테이블 읽기·쓰기, 데이터 정합성 및 기존 hostname 의존성 해소를 확인한다.