服務好的網(wǎng)站建設聯(lián)系人市場營銷策略有哪4種
????????當手動刪除HDFS 分區(qū)數(shù)據(jù)時,但是并沒有清理?Hive 中的分區(qū)元數(shù)據(jù),刪除操作無法自動更新hive分區(qū)表元數(shù)據(jù)。也就是從hdfs中刪除大量分區(qū)數(shù)據(jù),并沒有執(zhí)行如下命令:
????????alter table drop partition commad
? ? ? ? 從hive 3.0.0開始可以使用MSCK的方法發(fā)現(xiàn)新分區(qū)或刪除丟失的分區(qū);
????????MSCK [REPAIR] TABLE table_name [ADD/DROP/SYNC PARTITIONS]
這種方式是在HIVE-17824中實現(xiàn)的。
? ? ? ? 若手動刪除?HDFS 上多個分區(qū)文件夾,且快速刷新分區(qū),則需要在存在external
表執(zhí)行如下操作:
-
刪除表(
DROP?TABLE?table_name
) -
重新創(chuàng)建表(
CREATE?EXTERNAL?TABLE?table_name?...
) -
修復它(
MSCK REPAIR?TABLE?table_name
)
如果分區(qū)數(shù)量較多,需要執(zhí)行的時間很長。另外一種解決方案是對每個已刪除的分區(qū)文件夾使用ALTER?TABLE?DROP?PARTITION (...)
,但如果刪除了多個分區(qū),這可能會很乏味。
????????用戶可用修復表option選項運行metastore檢查命令:
MSCK [REPAIR] TABLE table_name [ADD/DROP/SYNC PARTITIONS];
????????對于不存在元數(shù)據(jù)的分區(qū),會更新到Hive metastore。
1.MSC命令的默認選項是“ADD PARTITIONS”。通過這個選項,它會將所有HDFS上存在但不存在metastore的分區(qū)添加到metastore中。
2.DROP PARTITIONS選項將從metastore中刪除已經(jīng)從HDFS中刪除的分區(qū)信息。
3.SYNC PARTITIONS選項相當于同時調用ADD和DROP PARTITIONS。
????????詳情請參閱HIVE-874和HIVE-17824。當有大量未跟蹤的分區(qū)時,運行MSCK REPAIR TABLE批處理避免OOME(內(nèi)存不足錯誤)。通過為屬性hive.msck.repair.batch.size提供配置的批大小,它可以在內(nèi)部的批中運行。屬性的默認值是0,這意味著它將一次執(zhí)行所有分區(qū)。
不帶REPAIR選項的MSCK命令可用于查找元數(shù)據(jù)mismatch metastore的詳細信息。