2017-01-12 7 views
1

Я успешно установил Java, Hadoop MySQL. Я получаю эту ошибку во время работы с улей. Я получил ошибку разрешения файла, перед которой исправлено, установив папку metastore_db в папку hive в режим разрешений 777. Как я могу решить эту проблему.Не удалось создать экземпляр org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient (Ubuntu)

SLF4J: Class path contains multiple SLF4J bindings. 
SLF4J: Found binding in [jar:file:/usr/lib/hive/lib/log4j-slf4j-impl-2.4.1.jar!/org/slf4j/impl/StaticLoggerBinder.class] 
SLF4J: Found binding in [jar:file:/usr/lib/hadoop/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class] 
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation. 
SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory] 

Logging initialized using configuration in jar:file:/usr/lib/hive/lib/hive-common-2.1.1.jar!/hive-log4j2.properties Async: true 
Exception in thread "main" java.lang.RuntimeException: org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient 
    at org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:591) 
    at org.apache.hadoop.hive.ql.session.SessionState.beginStart(SessionState.java:531) 
    at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:705) 
    at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:641) 
    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.util.RunJar.run(RunJar.java:221) 
    at org.apache.hadoop.util.RunJar.main(RunJar.java:136) 
Caused by: org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient 
    at org.apache.hadoop.hive.ql.metadata.Hive.registerAllFunctionsOnce(Hive.java:226) 
    at org.apache.hadoop.hive.ql.metadata.Hive.<init>(Hive.java:366) 
    at org.apache.hadoop.hive.ql.metadata.Hive.create(Hive.java:310) 
    at org.apache.hadoop.hive.ql.metadata.Hive.getInternal(Hive.java:290) 
    at org.apache.hadoop.hive.ql.metadata.Hive.get(Hive.java:266) 
    at org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:558) 
    ... 9 more 
Caused by: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient 
    at org.apache.hadoop.hive.metastore.MetaStoreUtils.newInstance(MetaStoreUtils.java:1654) 
    at org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.<init>(RetryingMetaStoreClient.java:80) 
    at org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.getProxy(RetryingMetaStoreClient.java:130) 
    at org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.getProxy(RetryingMetaStoreClient.java:101) 
    at org.apache.hadoop.hive.ql.metadata.Hive.createMetaStoreClient(Hive.java:3367) 
    at org.apache.hadoop.hive.ql.metadata.Hive.getMSC(Hive.java:3406) 
    at org.apache.hadoop.hive.ql.metadata.Hive.getMSC(Hive.java:3386) 
    at org.apache.hadoop.hive.ql.metadata.Hive.getAllFunctions(Hive.java:3640) 
    at org.apache.hadoop.hive.ql.metadata.Hive.reloadFunctions(Hive.java:236) 
    at org.apache.hadoop.hive.ql.metadata.Hive.registerAllFunctionsOnce(Hive.java:221) 
    ... 14 more 
Caused by: java.lang.reflect.InvocationTargetException 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:526) 
    at org.apache.hadoop.hive.metastore.MetaStoreUtils.newInstance(MetaStoreUtils.java:1652) 
    ... 23 more 
Caused by: MetaException(message:Version information not found in metastore.) 
    at org.apache.hadoop.hive.metastore.ObjectStore.checkSchema(ObjectStore.java:7753) 
    at org.apache.hadoop.hive.metastore.ObjectStore.verifySchema(ObjectStore.java:7731) 
    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.RawStoreProxy.invoke(RawStoreProxy.java:101) 
    at com.sun.proxy.$Proxy20.verifySchema(Unknown Source) 
    at org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.getMS(HiveMetaStore.java:565) 
    at org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.createDefaultDB(HiveMetaStore.java:626) 
    at org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.init(HiveMetaStore.java:416) 
    at org.apache.hadoop.hive.metastore.RetryingHMSHandler.<init>(RetryingHMSHandler.java:78) 
    at org.apache.hadoop.hive.metastore.RetryingHMSHandler.getProxy(RetryingHMSHandler.java:84) 
    at org.apache.hadoop.hive.metastore.HiveMetaStore.newRetryingHMSHandler(HiveMetaStore.java:6490) 
    at org.apache.hadoop.hive.metastore.HiveMetaStoreClient.<init>(HiveMetaStoreClient.java:238) 
    at org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient.<init>(SessionHiveMetaStoreClient.java:70) 
    ... 28 more 

Я пробовал даже перемещать файлы db.lck и dbex.lck. Это не сработало. Я перезапустил Hadoop и машину несколько раз после того, как изменения не сработали. Помогите ! Спасибо заранее.

улья site.xml

<configuration>  <property> 
     <name>javax.jdo.option.ConnectionURL</name> 
     <value>jdbc:mysql://localhost/metastore?createDatabaseIfNotExist=true</value> 
     <description>metadata is stored in a MySQL server</description> </property> 

    <property> 
     <name>javax.jdo.option.ConnectionDriverName</name> 
     <value>com.mysql.jdbc.Driver</value> 
     <description>MySQL JDBC driver class</description> </property> 

    <property> 
     <name>javax.jdo.option.ConnectionUserName</name> 
     <value>root</value> 
     <description>USER NAME</description> </property> 

    <property> 
     <name>javax.jdo.option.ConnectionPassword</name> 
     <value>root</value> 
     <description>PASSWORD ***</description> </property> </configuration> 
+0

Вы можете обновить свой вопрос с помощью 'hive-site.xml' – franklinsijo

+1

Я добавил карту сайта, пожалуйста, проигнорируйте форматирование. – Shahabaz

+0

Это называется 'hive-sitemap.xml'? Если да, переименуйте его в 'hive-site.xml'. Hive не распознает эти свойства и, таким образом, запускает метастор улья во встроенном режиме с помощью 'derby'. – franklinsijo

ответ

1

Из свойства, она будет создавать только базу данных, но не схемы. Попробуйте создать схему, необходимую для метастара улья в MySQL.

cd $HIVE_HOME/scripts/metastore/upgrade/mysql/ 
< login to mysql > 
mysql> use metastore; 
mysql> source hive-schema-<your_version>.mysql.sql; 

Затем перезапустите процесс метаобработки куста.

+0

Но я никогда не начинал процесс метастара, как мне это сделать? – Shahabaz

+0

Если вы используете MySQL, вам нужно запустить его отдельно. 'hive -service metastore', вы можете запустить этот процесс в фоновом режиме, nohup-hive -service metastore &' – franklinsijo

+0

После загрузки схемы куста я начал службу метастара, его запуск и запуск (я больше не мог использовать этот терминал , Вот как работает этот сервер, я полагаю) , тогда я попробовал команду hive получить еще одну ошибку, на этот раз hadoop отказался от своего соединения Вызвано: java.net.ConnectException: Позвонить с ubuntu/127.0.1.1 на localhost : 9000 не удалось удалить соединение: java.net.ConnectException: соединение отклонено; Для получения дополнительной информации см .: – Shahabaz

1

Для меня я получил эту ошибку, когда не начинал улей внутри $ HIVE_HOME.