2017-02-13 4 views
5

Ubuntu 16.04でHadoop 2.7.3、MySQL 5.7.17、Hive 2.1.1を実行しています。Hive 2.1.1 MetaException(メッセージ:バージョン情報がメタストアに見つかりません)

私は./hiveを実行すると、私は次の警告と例外を取得しておいてください。ここでは

SLF4J: Class path contains multiple SLF4J bindings. 
SLF4J: Found binding in [jar:file:/home/server/hive/lib/log4j-slf4j-impl-2.4.1.jar!/org/slf4j/impl/StaticLoggerBinder.class] 
SLF4J: Found binding in [jar:file:/home/server/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:/home/server/hive/lib/hive-common-2.1.1.jar!/hive-log4j2.properties Async: true 
Mon Feb 13 12:01:41 EST 2017 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification. 
Mon Feb 13 12:01:41 EST 2017 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification. 
Mon Feb 13 12:01:41 EST 2017 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification. 
Mon Feb 13 12:01:41 EST 2017 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification. 
Mon Feb 13 12:01:42 EST 2017 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification. 
Mon Feb 13 12:01:42 EST 2017 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification. 
Mon Feb 13 12:01:42 EST 2017 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification. 
Mon Feb 13 12:01:42 EST 2017 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification. 
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:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:498) 
    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:62) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423) 
    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:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:498) 
    at org.apache.hadoop.hive.metastore.RawStoreProxy.invoke(RawStoreProxy.java:101) 
    at com.sun.proxy.$Proxy21.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 

私は、エラーを修正するためには、私のハイブ-site.xmlの

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?> 
<configuration> 

    <property> 
     <name>javax.jdo.option.ConnectionURL</name> 
     <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value> 
    </property> 


    <property> 
     <name>javax.jdo.option.ConnectionDriverName</name> 
     <value>com.mysql.jdbc.Driver</value> 
    </property> 

    <property> 
     <name>javax.jdo.option.ConnectionUserName</name> 
     <value>hive</value> 
    </property> 

    <property> 
     <name>javax.jdo.option.ConnectionPassword</name> 
     <value>password</value> 
    </property> 

</configuration> 

です試みたのはHive Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClientUnable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClientです。しかし、私はまだ同じ例外を受けています。

私はHadoopとHiveの初心者ですが、どうすれば例外を修正できますか? ありがとう!

答えて

9

MySQLには、メタストアに必要なテーブルがありません。手動でテーブルを作成し、ハイブメタストアを再起動します。

MySQL用のスキーマファイルは、$HIVE_HOME/scripts/metastore/upgrade/mysql/のパスで入手できます。

cd $HIVE_HOME/scripts/metastore/upgrade/mysql/ 

< Login into MySQL > 

mysql> drop database IF EXISTS hive; 
mysql> create database hive; 
mysql> use hive; 
mysql> source hive-schema-2.1.1.mysql.sql; 

ハイパーメタストアを再起動します。

+0

おかげで、それが動作します!それらの警告を排除する方法も知っていますか? –

+1

これはMySQLからのものです。接続文字列を 'jdbc:mysql:// localhost:3306/hive?createDatabaseIfNotExist = trueue&useSSL = false'に置き換えるか、' true'に設定してSSL証明書を提供してください。 – franklinsijo

+0

useSSL = falseは、警告の問題を解決します。どうもありがとう! –

0

がハイブデータベースアップグレードするハイブが提供するツールがあります:

./bin/schematool -dbType derby -upgradeSchemaFrom 2.1.0 

自己ベスト

0
franklinsijo
I faced similar issue when i was setting up HIVE 2.3.1 for the first time. 
I am using postgres database as a metastore. 

Then i had to set the below property to false. 

    <property> 
    <name>hive.metastore.schema.verification</name> 
    <value>false</value> 
    <description> 
     Enforce metastore schema version consistency. 
     True: Verify that version information stored in is compatible with one from Hive jars. Also disable automatic 
      schema migration attempt. Users are required to manually migrate schema after Hive upgrade which ensures 
      proper metastore schema migration. (Default) 
     False: Warn if the version information stored in metastore doesn't match with one from in Hive jars. 
    </description> 
    </property> 
+0

hive-site.xmlでhive.metastore.schema.verificationプロパティをfalseに設定します。 –

関連する問題