您的位置:首页 > 其它

Hive metastore database is not initialized. Please use schematool(...) to create the schema.

2016-07-14 09:02 435 查看


一:问题:Exception in thread “main” java.lang.RuntimeException: Hive metastore database is not initialized. Please use schematool (e.g. ./schematool -initSchema -dbType …) to create the schema.

异常操作如下:

[root@master lib]# hive

SLF4J: Class path contains multiple SLF4J bindings.

SLF4J: Found binding in [jar:file:/usr/home/apache-hive-2.1.0-bin/lib/log4j-slf4j-impl-2.4.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]

SLF4J: Found binding in [jar:file:/usr/home/hadoop-2.5.2/share/hadoop/common/lib/slf4j-log4j12-1.7.5.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/home/apache-hive-2.1.0-bin/lib/hive-common-2.1.0.jar!/hive-log4j2.properties Async: true

Exception in thread "main" java.lang.RuntimeException: org.apache.hadoop.hive.ql.metadata.HiveException: org.apache.hadoop.hive.ql.metadata.HiveException: MetaException(message:Hive metastore database is not initialized.Please
use schematool (e.g. ./schematool -initSchema -dbType ...) to create the schema. If needed, don't forget to include the option to auto-create the underlying database in your JDBC connection string (e.g. ?createDatabaseIfNotExist=true for mysql))

        at org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:578)

        at org.apache.hadoop.hive.ql.session.SessionState.beginStart(SessionState.java:518)

        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:601)

        at org.apache.hadoop.util.RunJar.main(RunJar.java:212)

Caused by: org.apache.hadoop.hive.ql.metadata.HiveException: org.apache.hadoop.hive.ql.metadata.HiveException: MetaException(message:Hive metastore database is not initialized. Please use schematool (e.g. ./schematool -initSchema -dbType ...) to create the
schema. If needed, don't forget to include the option to auto-create the underlying database in your JDBC connection string (e.g. ?createDatabaseIfNotExist=true for mysql))

        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:545)

        ... 8 more

Caused by: org.apache.hadoop.hive.ql.metadata.HiveException: MetaException(message:Hive metastore database is not initialized. Please use schematool (e.g. ./schematool -initSchema -dbType ...) to create the schema. If needed, don't forget to include the option
to auto-create the underlying database in your JDBC connection string (e.g. ?createDatabaseIfNotExist=true for mysql))

        at org.apache.hadoop.hive.ql.metadata.Hive.getAllFunctions(Hive.java:3593)

        at org.apache.hadoop.hive.ql.metadata.Hive.reloadFunctions(Hive.java:236)

        at org.apache.hadoop.hive.ql.metadata.Hive.registerAllFunctionsOnce(Hive.java:221)

        ... 13 more

Caused by: MetaException(message:Hive metastore database is not initialized. Please use schematool (e.g. ./schematool -initSchema -dbType ...) to create the schema. If needed, don't forget to include the option to auto-create the underlying database in your
JDBC connection string (e.g. ?createDatabaseIfNotExist=true for mysql))

        at org.apache.hadoop.hive.ql.metadata.Hive.getMSC(Hive.java:3364)

        at org.apache.hadoop.hive.ql.metadata.Hive.getMSC(Hive.java:3336)

        at org.apache.hadoop.hive.ql.metadata.Hive.getAllFunctions(Hive.java:3590)

        ... 15 more

二:原因:由于没有初始化元数据库; 

三:解决方法: 

命令行输入:
./schematool -initSchema -dbType derby
 

输入完这句之后可能会报如下错: 
Error: FUNCTION ‘NUCLEUS_ASCII’ already exists. (state=X0Y68,code=30000) 

原因:这可能是因为你的metastore_db文件夹已经存在; 

解决办法:将当前文件夹下的metastor_db文件夹删除,重新输入指令:
./schematool -initSchema -dbType derby
即可;

操作如下:

[root@master bin]# ./schematool -initSchema -dbType derby

SLF4J: Class path contains multiple SLF4J bindings.

SLF4J: Found binding in [jar:file:/usr/home/apache-hive-2.1.0-bin/lib/log4j-slf4j-impl-2.4.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]

SLF4J: Found binding in [jar:file:/usr/home/hadoop-2.5.2/share/hadoop/common/lib/slf4j-log4j12-1.7.5.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]

Metastore connection URL:        jdbc:derby:;databaseName=metastore_db;create=true

Metastore Connection Driver :    org.apache.derby.jdbc.EmbeddedDriver

Metastore connection User:       APP

Starting metastore schema initialization to 2.1.0

Initialization script hive-schema-2.1.0.derby.sql

Initialization script completed

schemaTool completed

QQ技术交流群:513848061 欢迎你的加入!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: