본문 바로가기

msck4

[hive] MSCK is missing partition columns under location. 오류 해결 방법 EMR에서 하이브의 테이블에 MSCK 명령을 이용해서 테이블을 재구성할 때 다음의 오류가 발생하는 경우가 있습니다. Caused by: org.apache.hadoop.hive.ql.metadata.HiveException: MSCK is missing partition columns under s3://bucket_name/directory_location 원인 이 오류는 지정한 버켓의 폴더가 없어서 발생하는 오류입니다. S3의 특성상 디렉토리만 생성되면 파일시스템에 따라서 $folder$ 가 생성되면서 이 특수 파일이 옮겨지는 과정에서 누락되면 이 오류가 발생합니다. 해결방법 이 오류는 디렉토리를 만들어서 해결할 수도 있고, 아래의 설정을 이용해서 오류가 있는 폴더는 무시하고 처리할 수 있도록 설정할.. 2019. 12. 4.
[hive] Error in getting fields from serde.Invalid Field null 오류 수정 방법 하이브에서 파티션의 정보를 확인할 때 다음의 오류가 발생하는 경우가 있습니다. hive> desc formatted TABLE_NAME partition(partition1='A'); FAILED: Excution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. Error in getting fields from serde.Invalid Field null 원인 이 오류는 확인 하려고 하는 파티션의 정보를 부족하게 제공해서 발생합니다. 위의 예제의 경우 partition1과 partition2 두 개의 파티션을 가진 테이블에서 정보를 하나만 제공하여 오류가 발생하였습니다. 해결방법 아래와 같이 테이블의 파티션에 관련된 모.. 2019. 12. 4.
[hive] MSCK REPAIR 처리중 Caused by: MetaException(message:Expected 2 components, got 1) 처리 MSCK REPAIR는 하이브에서 테이블의 파티션을 일괄 생성할 때 사용하는 명령어 입니다. 테이블의 로케이션의 하위 디렉토리를 검색하여 파티션 정보와 일치하는 디렉토리를 자동으로 파티션으로 추가해주는데 파티션 정보와 다른 디렉토리가 존재하면 아래의 오류가 발생합니다. 2개의 파티션 데이터가 있는 구조인데 한개만 있다고 오류가 발생하였습니다. Caused by: MetaException(message:Expected 2 components, got 1) 이 오류를 해결하는 방법은 두가지가 있습니다. 첫번째는 디렉토리를 정리하여 파티션 구조에 맞는 디렉토리와 파일만 놓아두는 것입니다. 두번째는 다음의 옵션값을 이용하는 방법이 있습니다. set hive.msck.path.validation=ignore; 이.. 2019. 4. 1.
[hive][error] msck repair table 처리시 오류 수정 하이브에서 EXTERNAL 설정으로 생성한 테이블에 디렉토리에 파일을 추가하고 테이블의 파티션 추가를 위해서 "repair table" 명령을 사용하여 처리할 수 있다. 그런데 Hive 1.3 버전 이상에서는 파티션에 허용되지 않는 문자가 있는 디렉토리에 한해서 예외를 반환할 수도 있다. 이럴 때는 다음의 설정을 추가하고 호출하면 된다. set hive.msck.path.validation=ignore;MSCK REPAIR TABLE table_name; 스택오버플로우 - http://stackoverflow.com/questions/40043986/hdinsight-hive-msck-repair-table-table-name-throwing-error하이브문서(Recover Partition 참조) -.. 2016. 12. 20.