[英]MSCK REPAIR TABLE <tablename> showing no error but not detecting any partitions
我是HIVE環境的新手。
我正在嘗試使用分區在配置單元中創建外部表。
我創建了一個外部表:
CREATE EXTERNAL TABLE test
(col1 INT, col2 BIGINT, col3 STRING, col4 STRING, col5 STRING, col6 STRING,
col7 BOOLEAN, col8 INT, col9 TIMESTAMP, col10 INT, col11 TIMESTAMP,
col12 STRING, col13 DOUBLE, col14 DOUBLE, col15 DOUBLE,
col16 DOUBLE,col17 BIGINT, col18 INT)
PARTITIONED BY (dataDate STRING)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE
tblproperties ("skip.header.line.count"="1");
表已成功創建。 然后我添加第一個分區:
ALTER TABLE test ADD IF NOT EXISTS
PARTITION(dataDate='20171014')
LOCATION '/user/test/Partition_Trial';
然后將分區寫入表中。
然后我嘗試使用添加下一個分區
MSCK REPAIR TABLE test;
沒有錯誤。
但是沒有讀取分區。
我期待MSCK功能能夠讀取其他分區。
我一直在閱讀其他人的類似問題,但它似乎與此問題不相似。
感謝您的任何幫助。
您的test
表在/user/test/
hdfs目錄中創建。
當我們運行msck修復表然后hive檢查是否有任何新分區添加到/user/test/
目錄但not all sub directories recursively
。
即所有分區都在/user/test/Partition_Trial
目錄下(在測試目錄內),這就是msck repair table
無法找到新添加的分區的原因。
解決此問題的選項:
使用ALTER TABLE test ADD IF NOT EXISTS PARTITION
添加所有分區ALTER TABLE test ADD IF NOT EXISTS PARTITION
。
(or)
將表位置更改為/user/test/Partition_Trial
(or)
保持表位置不變並將所有新分區添加到/user/test
目錄。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.