Hive не работает при установке

Я получаю следующую ошибку в Hive при выполнении любой команды.

hive> show tables;
FAILED: Error in metadata: javax.jdo.JDOFatalInternalException: Unexpected exception caught.
NestedThrowables:
java.lang.reflect.InvocationTargetException
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask

Это есть в файле hive.log.

2011-07-27 19:10:57,526 ERROR exec.DDLTask (SessionState.java:printError(343)) - FAILED: Error in metadata: javax.jdo.JDOFatalInternalException: Unexpected exception caught.
NestedThrowables:
java.lang.reflect.InvocationTargetException
org.apache.hadoop.hive.ql.metadata.HiveException: javax.jdo.JDOFatalInternalException: Unexpected exception caught.
NestedThrowables:
java.lang.reflect.InvocationTargetException
        at org.apache.hadoop.hive.ql.metadata.Hive.getDatabase(Hive.java:1028)
        at org.apache.hadoop.hive.ql.metadata.Hive.databaseExists(Hive.java:1013)
        at org.apache.hadoop.hive.ql.exec.DDLTask.showTables(DDLTask.java:1691)
        at org.apache.hadoop.hive.ql.exec.DDLTask.execute(DDLTask.java:289)
        at org.apache.hadoop.hive.ql.exec.Task.executeTask(Task.java:130)
        at org.apache.hadoop.hive.ql.exec.TaskRunner.runSequential(TaskRunner.java:57)
        at org.apache.hadoop.hive.ql.Driver.launchTask(Driver.java:1063)
        at org.apache.hadoop.hive.ql.Driver.execute(Driver.java:900)
        at org.apache.hadoop.hive.ql.Driver.run(Driver.java:748)
        at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:164)
        at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:241)
        at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:456)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.hadoop.util.RunJar.main(RunJar.java:156)
Caused by: javax.jdo.JDOFatalInternalException: Unexpected exception caught.
NestedThrowables:
java.lang.reflect.InvocationTargetException
        at javax.jdo.JDOHelper.invokeGetPersistenceManagerFactoryOnImplementation(JDOHelper.java:1186)
        at javax.jdo.JDOHelper.getPersistenceManagerFactory(JDOHelper.java:803)
        at javax.jdo.JDOHelper.getPersistenceManagerFactory(JDOHelper.java:698)
        at org.apache.hadoop.hive.metastore.ObjectStore.getPMF(ObjectStore.java:234)
        at org.apache.hadoop.hive.metastore.ObjectStore.getPersistenceManager(ObjectStore.java:261)
        at org.apache.hadoop.hive.metastore.ObjectStore.initialize(ObjectStore.java:196)
        at org.apache.hadoop.hive.metastore.ObjectStore.setConf(ObjectStore.java:171)
        at org.apache.hadoop.util.ReflectionUtils.setConf(ReflectionUtils.java:62)
        at org.datanucleus.jdo.JDOPersistenceManagerFactory.createPersistenceManagerFactory(JDOPersistenceManagerFactory.java:255)
        at org.datanucleus.jdo.JDOPersistenceManagerFactory.getPersistenceManagerFactory(JDOPersistenceManagerFactory.java:182)
        ... 41 more

Очевидно, проблема с базой метаданных, но ошибка довольно тупая, а в руководстве по установке ничего не сказано о настройке базы метаданных.


person schmmd    schedule 28.07.2011    source источник
comment
Не забудьте указать версию Hive и Hadoop, которую вы используете.   -  person wlk    schedule 28.07.2011
comment
хауп-0.20.203.0 и улей-0.7.1   -  person schmmd    schedule 28.07.2011
comment
Вы обновляете предыдущую версию Hive?   -  person wlk    schedule 28.07.2011
comment
У меня была такая же проблема с ульем 0.9.0. Я последовал решению Wojtek по загрузке коннектора mysql с mysql.com/downloads/connector/j и скопировать банку в каталог lib улья. Это исправило это для меня.   -  person sanjog    schedule 03.04.2013


Ответы (2)


У меня возникла та же проблема.
Чтобы решить эту проблему, загрузите этот файл: https://www.mysql.com/downloads/connector/j/, разархивируйте его, скопируйте jar изнутри в папку: /usr/lib/hive/lib (может быть по-другому в вашем случае - здесь находятся библиотеки hive)

person wlk    schedule 28.07.2011
comment
Разве HIVE не должен по умолчанию использовать базу данных дерби? - person schmmd; 28.07.2011
comment
Для хранилища метаданных Hive вы можете использовать MySQL или любую базу данных с поддержкой JDBC. У меня была эта проблема с MySQL, поэтому я предположил, что это ваш случай. - person wlk; 28.07.2011
comment
Я ничего не настраивал в серверной части и получаю эту ошибку. Я ожидаю, что он будет использовать базу данных по умолчанию, которая является базой данных дерби. - person schmmd; 28.07.2011
comment
Эта идея устранила почти идентичную проблему, с которой я столкнулся. FAILED: ошибка в метаданных: javax.jdo.JDOFatalInternalException: ошибка при создании фабрики транзакционных соединений NestedThrowables: java.lang.reflect.InvocationTargetException FAILED: ошибка выполнения, код возврата 1 из org.apache.hadoop.hive.ql.exec.DDLTask Решено с помощью sudo ln -s /usr/share/java/mysql-5.1.10.jar /usr/lib/hive/lib/ (использует существующие файлы libmysql-java). - person IBBoard; 03.02.2012

Я нашел ответ здесь:

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

"Шириш Редди: удалите $HADOOP_HOME/build, и все должно быть в порядке. Ответ скопирован у Женга"

Как ни странно, после удаления $HADOOP_HOME/build проблема исчезла.

person schmmd    schedule 28.07.2011
comment
Что значит удалить? удалить настоящую папку? - person G3M; 22.10.2015