Cloudera CDH/CDP 및 Hadoop EcoSystem, Semantic IoT등의 개발/운영 기술을 정리합니다. gooper@gooper.com로 문의 주세요.
create문장으로 kudu table을 변경후 alter table로 table명을 변경하면 impala metastore에 저장된 테이블 명만 변경되고 hive.table_params에 된 kudu정보중 param_key='kudu.table_name'으로 param_value컬럼에 저장된 값은 바뀌지 않는다.
이 값을 변경하기 위해서는 먼저 kudu table 명을 변경후에 hive.table_params테이블의 kudu table 정보를 update해 주어야 한다.
예를 들어 test_db.table_table_tmp을 create한 후 test_db.table_table로 변경하는 방법은 다음과 같다.
1. kudu table rename
sudo -u kudu kinit -kt /var/lib/keytab/kudu.keytab kudu
sudo -u kudu kudu table rename_table master1.gooper.com:7051,master2.gooper.com:7051,master3.gooper.com:7051 impala::test_db.table_table_tmp impala::test_db.table_table
2. hive metastore정보 변경
update hive.table_params set param_value='impala::test_db.table_table' where param_key='kudu.table_name' and param_value like 'impala::test_db.table_table_tmp';
3. invalidate metadata문을 수행하여 변경 사항을 반영할 수 있게 해준다.
invalidate metadata est_db.table_table;