2014-05-14 109 views
-1

我使用Hive 0.12.0並創建了分區表。將數據插入分區表時出現Hive錯誤

然後我嘗試將數據插入到表:LOAD DATA LOCAL INPATH 'path/data' insert into table test partition (idx=1)

但後來我得到以下錯誤:

ERROR metastore.RetryingHMSHandler (RetryingHMSHandler.java:invoke(134)) - NoSuchObjectException(message:partition values=[1]) 
     at org.apache.hadoop.hive.metastore.ObjectStore.getPartitionWithAuth(ObjectStore.java:1427) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:606) 
     at org.apache.hadoop.hive.metastore.RetryingRawStore.invoke(RetryingRawStore.java:111) 
     at com.sun.proxy.$Proxy4.getPartitionWithAuth(Unknown Source) 
     at org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.get_partition_with_auth(HiveMetaStore.java:2025) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:606) 
     at org.apache.hadoop.hive.metastore.RetryingHMSHandler.invoke(RetryingHMSHandler.java:102) 
     at com.sun.proxy.$Proxy5.get_partition_with_auth(Unknown Source) 
     at org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$Processor$get_partition_with_auth.getResult(ThriftHiveMetastore.java:6924) 
     at org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$Processor$get_partition_with_auth.getResult(ThriftHiveMetastore.java:6908) 
     at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:39) 
     at org.apache.hadoop.hive.metastore.TUGIBasedProcessor.process(TUGIBasedProcessor.java:104) 
     at org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:206) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
     at java.lang.Thread.run(Thread.java:745) 

什麼是這個解決方案?

回答

1

您需要預先通過添加分區來生成分區或使用動態分區。

預生成分區:

ALTER TABLE table_name ADD PARTITION (partCol = 'value1') location 'loc1'; 

使用動態分區:

Dynamic partitions

+0

我剛拿到不同的錯誤,失敗,出現異常checkPaths:在檢查階段 – user3617199

+0

文件系統的錯誤,那是另外一個問題。請考慮向OP提出/接受此答案。然後打開一個新問題。 – javadba

+0

謝謝。我會尋找你的新問題。 – javadba

相關問題