Hadoop 将数据插入分区表时发生配置单元错误

Hadoop 将数据插入分区表时发生配置单元错误,hadoop,hive,Hadoop,Hive,我使用的是Hive0.12.0,我创建了一个分区表 然后我尝试将数据插入表: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])

我使用的是Hive0.12.0,我创建了一个分区表

然后我尝试将数据插入表:
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)

解决方案是什么?

您需要通过添加分区来预生成分区,或者使用动态分区

预生成分区:

ALTER TABLE table_name ADD PARTITION (partCol = 'value1') location 'loc1';
使用动态分区:

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

我刚刚收到另一个错误,检查路径异常失败:检查阶段出现文件系统错误这是另一个问题。请考虑向OP投票/接受这个答案。然后打开一个新的问题。谢谢。我将寻找你的新问题。