HDINSIGHT 配置单元,MSCK REPAIR TABLE table_name 抛出错误

HDINSIGHT hive, MSCK REPAIR TABLE table_name throwing error

我有一个外部分区 table 名为分区(年,月,日)的员工,每天都会有一个新文件出现在特定日期的位置,要求今天的日期是 2016/10 /13.

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';

但是一旦我们尝试使用下面的命令,因为我们不想手动执行上面的 alter table 命令,它会抛出以下错误

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)

请帮助我,因为我坚持这个。对于这种情况,我们有什么解决方法吗?

我有一个解决我的问题的解决方案,如果 table 静态分区名称类似于 'year=2016/month=10/day=13' 那么我们可以使用下面的命令并且它正在工作...

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