web-dev-qa-db-ja.com

HDINSIGHT Hive、MSCK REPAIR TABLEtable_nameスローエラー

パーティション(年、月、日)を持つemployeeという名前の外部パーティションテーブルがあり、毎日新しいファイルが来て、特定の日の場所に着席し、今日の日付は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)

私はこれに固執しているので私を助けてください。このタイプの状況に対する回避策はありますか?

6
anand

私の問題の回避策がありました。テーブルの静的パーティション名が「year = 2016/month = 10/day = 13」の場合、以下のコマンドを使用でき、機能しています...

set Hive.msck.path.validation=ignore;
MSCK REPAIR TABLE table_name;
29
anand