Cloudera CDH/CDP 및 Hadoop EcoSystem, Semantic IoT등의 개발/운영 기술을 정리합니다. gooper@gooper.com로 문의 주세요.
hive [CDP7.1.7, Hive Replication]Hive Replication진행중 "The following columns have types incompatible with the existing columns in their respective positions " 오류
CDP의 Hive Replication]Hive Replication기능을 이용하여 source의 hive db를 destination으로 복제를 수행중 이전에는 잘 수행되던것이 "The following columns have types incompatible with the existing columns in their respective positions " 오류가 발생하면서 실패하는 경우가 있다.
이는 특정 컬럼의 type이 처음 table이 만들어지고 나서 변경이 되었고 이것이 replication과정에서 호환되지 않는 type이서 Hive에서 오류를 발생시켰기 때문이다.
즉, 소스 클러스터에 변경 사항이 있는 경우(예를 들어 한 열의 데이터 유형이 변경된 테이블을 삭제하고 다시 생성하거나 추가 열을 추가하는 경우) 복제는 소스 클러스터와 대상 클러스터의 열 간의 비호환성을 감지하여 오류를 표시합니다.
이때는 target cluster의 Hive Configuration > Hive Service Advanced Configuration Snippet (Safety Valve) for hive-site.xml에 다음을 설정후 Hive를 restart후 실패한 Hive Replication을 재수행 하면 해결된다.
특히, Hive Replication schedule의 옵션에 "Force Overwrite"를 활성화 해도 이 오류는 발생한다.
*설정값 (CDP에서는 default가 true임)
hive.metastore.disallow.incompatible.col.type.changes=false