2016-10-14 2 views
3

파티션 (년, 월, 일)이있는 employee라는 외부 파티션 테이블이 있으며, 매일 새 파일이 들어 와서 특정 날짜 위치에 자리 잡으면 오늘 날짜로 걸립니다. 2016/10/13. 우리가 수동으로 위의 테이블 변경 명령을 실행하지 않기 때문에 우리가 명령 아래로하려고하면HDINSIGHT 하이브, MSCK REPAIR TABLE table_name throwing error

TABLE SCHEMA: 
create External table employee(EMPID Int,FirstName String,.....) 
partitioned by (year string,month string,day string) 
ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' LOCATION '/.../emp'; 

그래서 매일 우리는 그것을

ALTER TABLE employee ADD IF NOT EXISTS PARTITION (year=2016,month=10,day=14) LOCATION '/.../emp/2016/10/14'; 

으로 잘 작동 명령을 실행해야하지만, 오류 아래가 발생

hive> MSCK REPAIR TABLE employee; 
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask 

참고 :

hive> MSCK TABLE employee; //this show me that a partition has not added in the table 
OK 
Partitions not in metastore: employee:2016/10/14 
Time taken: 1.066 seconds, Fetched: 1 row(s) 
,536,

나는 이것으로 붙어서 도와주세요. 이런 유형의 상황에 대한 해결 방법이 있습니까?

+1

파티션 이름이 'year = 2016/month = 10/day = 13'과 같은 경우 내 문제의 해결 방법을 얻었습니다. 그러면 아래 명령을 사용하여 작동 중입니다 ... set hive.msck.path.validation = ignore; MSCK REPAIR TABLE table_name; – anand

답변

14

테이블 정적 파티션 이름이 'year = 2016/month = 10/day = 13'과 같다면 우리는 아래 명령을 사용할 수 있고 문제가 해결 방법을 찾았습니다.

set hive.msck.path.validation=ignore; 
MSCK REPAIR TABLE table_name;