1

按照 Hive apache wiki 上的说明一步一步安装 Hive 后,我调用了 hive shell 并输入“CREATE TABLE pokes (foo INT, bar STRING);”,然后出现以下错误,日志也包括在内。

我是 Hive 新手,有什么建议或意见吗?非常感谢!我发现通过谷歌网络提出的问题,但没有找到解决方案。

我在 Mac 上对 Hadoop 使用单机模式。

hive> CREATE TABLE poke (foo INT, bar STRING); 失败:元数据错误:javax.jdo.JDOFatalInternalException:捕获到意外异常。NestedThrowables:java.lang.reflect.InvocationTargetException FAILED:执行错误,从 org.apache.hadoop.hive.ql.exec.DDLTask 返回代码 1

日志文件:

上次登录时间:Tue Jun 14 00:27:51 on ttys001
Zhiyong-Xies-MacBook-Pro:~ hadoop$ cat /tmp/*/hive.log
2011-06-14 00:31:54,834 错误 metastore.HiveMetaStore (HiveMetaStore.java:executeWithRetry(334)) - JDO 数据存储错误。1000 毫秒后重试 Metastore 命令(尝试 1 次,共 1 次)
2011-06-14 00:31:56,012 错误 exec.DDLTask (SessionState.java:printError(374)) - 失败:元数据错误:javax.jdo.JDOFatalInternalException:捕获到意外异常。
嵌套的Throwables:
java.lang.reflect.InvocationTargetException
org.apache.hadoop.hive.ql.metadata.HiveException:javax.jdo.JDOFatalInternalException:捕获到意外异常。
嵌套的Throwables:
java.lang.reflect.InvocationTargetException
     在 org.apache.hadoop.hive.ql.metadata.Hive.createTable(Hive.java:491)
     在 org.apache.hadoop.hive.ql.exec.DDLTask.createTable(DDLTask.java:3233)
     在 org.apache.hadoop.hive.ql.exec.DDLTask.execute(DDLTask.java:221)
     在 org.apache.hadoop.hive.ql.exec.Task.executeTask(Task.java:132)
     在 org.apache.hadoop.hive.ql.exec.TaskRunner.runSequential(TaskRunner.java:57)
     在 org.apache.hadoop.hive.ql.Driver.launchTask(Driver.java:1238)
     在 org.apache.hadoop.hive.ql.Driver.execute(Driver.java:1050)
     在 org.apache.hadoop.hive.ql.Driver.run(Driver.java:885)
     在 org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:224)
     在 org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:358)
     在 org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:593)
     在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
     在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
     在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
     在 java.lang.reflect.Method.invoke(Method.java:597)
     在 org.apache.hadoop.util.RunJar.main(RunJar.java:156)
原因:javax.jdo.JDOFatalInternalException:捕获到意外异常。
嵌套的Throwables:
java.lang.reflect.InvocationTargetException
     在 javax.jdo.JDOHelper.invokeGetPersistenceManagerFactoryOnImplementation(JDOHelper.java:1186)
     在 javax.jdo.JDOHelper.getPersistenceManagerFactory(JDOHelper.java:803)
     在 javax.jdo.JDOHelper.getPersistenceManagerFactory(JDOHelper.java:698)
     在 org.apache.hadoop.hive.metastore.ObjectStore.getPMF(ObjectStore.java:237)
     在 org.apache.hadoop.hive.metastore.ObjectStore.getPersistenceManager(ObjectStore.java:266)
     在 org.apache.hadoop.hive.metastore.ObjectStore.initialize(ObjectStore.java:199)
     在 org.apache.hadoop.hive.metastore.ObjectStore.setConf(ObjectStore.java:174)
     在 org.apache.hadoop.util.ReflectionUtils.setConf(ReflectionUtils.java:62)
     在 org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:117)
     在 org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.getMS(HiveMetaStore.java:369)
     在 org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.executeWithRetry(HiveMetaStore.java:321)
     在 org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.createDefaultDB(HiveMetaStore.java:466)
     在 org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.init(HiveMetaStore.java:240)
     在 org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.(HiveMetaStore.java:203)
     在 org.apache.hadoop.hive.metastore.HiveMetaStoreClient.(HiveMetaStoreClient.java:107)
     在 org.apache.hadoop.hive.ql.metadata.Hive.createMetaStoreClient(Hive.java:2010)
     在 org.apache.hadoop.hive.ql.metadata.Hive.getMSC(Hive.java:2020)
     在 org.apache.hadoop.hive.ql.metadata.Hive.createTable(Hive.java:485)
     ... 15 更多
引起:java.lang.reflect.InvocationTargetException
     在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
     在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
     在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
     在 java.lang.reflect.Method.invoke(Method.java:597)
     在 javax.jdo.JDOHelper$16.run(JDOHelper.java:1958)
     在 java.security.AccessController.doPrivileged(本机方法)
     在 javax.jdo.JDOHelper.invoke(JDOHelper.java:1953)
     在 javax.jdo.JDOHelper.invokeGetPersistenceManagerFactoryOnImplementation(JDOHelper.java:1159)
     ... 32 更多
引起:java.lang.NullPointerException
     在 org.datanucleus.plugin.NonManagedPluginRegistry.registerBundle(NonManagedPluginRegistry.java:443)
     在 org.datanucleus.plugin.NonManagedPluginRegistry.registerBundle(NonManagedPluginRegistry.java:355)
     在 org.datanucleus.plugin.NonManagedPluginRegistry.registerExtensions(NonManagedPluginRegistry.java:215)
     在 org.datanucleus.plugin.NonManagedPluginRegistry.registerExtensionPoints(NonManagedPluginRegistry.java:156)
     在 org.datanucleus.plugin.PluginManager.registerExtensionPoints(PluginManager.java:82)
     在 org.datanucleus.OMFContext.(OMFContext.java:156)
     在 org.datanucleus.OMFContext.(OMFContext.java:137)
     在 org.datanucleus.ObjectManagerFactoryImpl.initialiseOMFContext(ObjectManagerFactoryImpl.java:132)
     在 org.datanucleus.jdo.JDOPersistenceManagerFactory.initialiseProperties(JDOPersistenceManagerFactory.java:363)
     在 org.datanucleus.jdo.JDOPersistenceManagerFactory.(JDOPersistenceManagerFactory.java:307)
     在 org.datanucleus.jdo.JDOPersistenceManagerFactory.createPersistenceManagerFactory(JDOPersistenceManagerFactory.java:255)
     在 org.datanucleus.jdo.JDOPersistenceManagerFactory.getPersistenceManagerFactory(JDOPersistenceManagerFactory.java:182)
     ... 40 更多

2011-06-14 00:31:56,014 错误 ql.Driver (SessionState.java:printError(374)) - 失败:执行错误,从 org.apache.hadoop.hive.ql.exec.DDLTask 返回代码 1
4

2 回答 2

1

http://getsatisfaction.com/cloudera/topics/hive_error_error_in_metadata_javax_jdo_jdofatalinternalexception

删除 $HADOOP_HOME/build 目录就像一个魅力。

于 2011-08-30T13:44:21.040 回答
0

删除目录 $HADOOP_HOME/build(实际上只是重命名它)也适用于 hive-0.9.0 和 hadoop-1.0.4。

于 2013-05-07T14:09:01.840 回答