Hadoop Metastore 不会初始化
Hadoop Metastore Will Not Initialize
序言:我是 hadoop / hive 的新手。已经安装了独立的 hadoop,现在正在尝试让 hive 工作。我不断收到关于初始化 Metastore 的错误,似乎无法弄清楚如何解决。 (hadoop 2.7.2 和配置单元 2.0)
HADOOP_HOME 和 HIVE_HOME 已设置
ubuntu15-laptop: ~ $>echo $HADOOP_HOME
/usr/hadoop/hadoop-2.7.2
ubuntu15-laptop: ~ $>echo $HIVE_HOME
/usr/hive
hdfs 正在运行
ubuntu15-laptop: ~ $>hadoop fs -ls /
Found 2 items
drwxrwxr-x - testuser supergroup 0 2016-04-13 21:37 /tmp
drwxrwxr-x - testuser supergroup 0 2016-04-13 21:38 /user
ubuntu15-laptop: ~ $>hadoop fs -ls /user
Found 1 items
drwxrwxr-x - testuser supergroup 0 2016-04-13 21:38 /user/hive
ubuntu15-laptop: ~ $>hadoop fs -ls /user/hive
Found 1 items
drwxrwxr-x - testuser supergroup 0 2016-04-13 21:38 /user/hive/warehouse
ubuntu15-laptop: ~ $>groups
testuser adm cdrom sudo dip plugdev lpadmin sambashare
配置单元不工作。说我需要初始化我的 Metastore
ubuntu15-laptop: ~ $>hive
Logging initialized using configuration in
jar:file:/usr/hive/lib/hive-common-2.0.0.jar!/hive-log4j2.properties
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. 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)
所以我尝试使用 postgres 对其进行初始化 - 但 schematool 尝试使用 derby
ubuntu15-laptop: ~ $>schematool -initSchema -dbType postgres
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.0.0
Initialization script hive-schema-2.0.0.postgres.sql
Error: Syntax error: Encountered "statement_timeout" at line 1, column 5.
(state=42X01,code=30000)
org.apache.hadoop.hive.metastore.HiveMetaException: Schema initialization
FAILED! Metastore state would be inconsistent !!
*** schemaTool failed ***
所以我更改 hive-site.xml 以使用 postgres 驱动程序等,但因为我不
安装了驱动程序,它失败了
ubuntu15-laptop: ~ $>cp /usr/hive/conf/hive-site.xml.templ /usr/hive/conf/hive-site.xml
ubuntu15-laptop: ~ $>schematool -initSchema -dbType postgres
Metastore connection URL: jdbc:postgresql://localhost:5432/hivedb
Metastore Connection Driver : org.postgresql.Driver
Metastore connection User: 123456
org.apache.hadoop.hive.metastore.HiveMetaException: Failed to load driver
*** schemaTool failed ***
所以我尝试使用 derby
首先再次将 hive-site.xml 移开,因此默认为 derby
ubuntu15-laptop: ~ $>mv /usr/hive/conf/hive-site.xml /usr/hive/conf/hive-site.xml.templ
然后我尝试用 derby 再次初始化,但它似乎已经是
根据错误 "Error: FUNCTION 'NUCLEUS_ASCII' already exists"
初始化
ubuntu15-laptop: ~ $>schematool -initSchema -dbType derby
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.0.0
Initialization script hive-schema-2.0.0.derby.sql
Error: FUNCTION 'NUCLEUS_ASCII' already exists. (state=X0Y68,code=30000)
org.apache.hadoop.hive.metastore.HiveMetaException: Schema initialization
FAILED! Metastore state would be inconsistent !!
*** schemaTool failed ***
我已经在这两天了。非常感谢任何帮助。
所以..
事情是这样的。
安装 hive 后,我做的第一件事是 运行 hive,它试图 create/initialize metastore_db,但显然没有成功。在最初的 运行 上,我得到了这个错误:
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. 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)
运行ning hive,即使它失败了,在我 运行 hive 的目录中创建了一个 metastore_db 目录:
ubuntu15-laptop: ~ $>ls -l |grep meta
drwxrwxr-x 5 testuser testuser 4096 Apr 14 12:44 metastore_db
所以当我尝试 运行ning
ubuntu15-laptop: ~ $>schematool -initSchema -dbType derby
元存储已经存在,但形式不完整。
太棒了,答案是:
在您 运行 第一次蜂巢之前,运行
schematool -initSchema -dbType derby
如果您已经 运行 hive 然后尝试 initSchema 但它失败了:
mv metastore_db metastore_db.tmp
重新 运行
schematool -initSchema -dbType derby
运行 再次蜂巢
**另请注意:如果您更改目录,将找不到上面创建的 metastore_db!我敢肯定这是有充分理由的,我还不知道,因为我今天真的是第一次尝试使用配置单元。啊哈这里是关于这个的信息:metastore_db created wherever I run Hive
序言:我是 hadoop / hive 的新手。已经安装了独立的 hadoop,现在正在尝试让 hive 工作。我不断收到关于初始化 Metastore 的错误,似乎无法弄清楚如何解决。 (hadoop 2.7.2 和配置单元 2.0)
HADOOP_HOME 和 HIVE_HOME 已设置
ubuntu15-laptop: ~ $>echo $HADOOP_HOME
/usr/hadoop/hadoop-2.7.2
ubuntu15-laptop: ~ $>echo $HIVE_HOME
/usr/hive
hdfs 正在运行
ubuntu15-laptop: ~ $>hadoop fs -ls /
Found 2 items
drwxrwxr-x - testuser supergroup 0 2016-04-13 21:37 /tmp
drwxrwxr-x - testuser supergroup 0 2016-04-13 21:38 /user
ubuntu15-laptop: ~ $>hadoop fs -ls /user
Found 1 items
drwxrwxr-x - testuser supergroup 0 2016-04-13 21:38 /user/hive
ubuntu15-laptop: ~ $>hadoop fs -ls /user/hive
Found 1 items
drwxrwxr-x - testuser supergroup 0 2016-04-13 21:38 /user/hive/warehouse
ubuntu15-laptop: ~ $>groups
testuser adm cdrom sudo dip plugdev lpadmin sambashare
配置单元不工作。说我需要初始化我的 Metastore
ubuntu15-laptop: ~ $>hive
Logging initialized using configuration in
jar:file:/usr/hive/lib/hive-common-2.0.0.jar!/hive-log4j2.properties
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. 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)
所以我尝试使用 postgres 对其进行初始化 - 但 schematool 尝试使用 derby
ubuntu15-laptop: ~ $>schematool -initSchema -dbType postgres
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.0.0
Initialization script hive-schema-2.0.0.postgres.sql
Error: Syntax error: Encountered "statement_timeout" at line 1, column 5.
(state=42X01,code=30000)
org.apache.hadoop.hive.metastore.HiveMetaException: Schema initialization
FAILED! Metastore state would be inconsistent !!
*** schemaTool failed ***
所以我更改 hive-site.xml 以使用 postgres 驱动程序等,但因为我不 安装了驱动程序,它失败了
ubuntu15-laptop: ~ $>cp /usr/hive/conf/hive-site.xml.templ /usr/hive/conf/hive-site.xml
ubuntu15-laptop: ~ $>schematool -initSchema -dbType postgres
Metastore connection URL: jdbc:postgresql://localhost:5432/hivedb
Metastore Connection Driver : org.postgresql.Driver
Metastore connection User: 123456
org.apache.hadoop.hive.metastore.HiveMetaException: Failed to load driver
*** schemaTool failed ***
所以我尝试使用 derby 首先再次将 hive-site.xml 移开,因此默认为 derby
ubuntu15-laptop: ~ $>mv /usr/hive/conf/hive-site.xml /usr/hive/conf/hive-site.xml.templ
然后我尝试用 derby 再次初始化,但它似乎已经是 根据错误 "Error: FUNCTION 'NUCLEUS_ASCII' already exists"
初始化ubuntu15-laptop: ~ $>schematool -initSchema -dbType derby
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.0.0
Initialization script hive-schema-2.0.0.derby.sql
Error: FUNCTION 'NUCLEUS_ASCII' already exists. (state=X0Y68,code=30000)
org.apache.hadoop.hive.metastore.HiveMetaException: Schema initialization
FAILED! Metastore state would be inconsistent !!
*** schemaTool failed ***
我已经在这两天了。非常感谢任何帮助。
所以..
事情是这样的。
安装 hive 后,我做的第一件事是 运行 hive,它试图 create/initialize metastore_db,但显然没有成功。在最初的 运行 上,我得到了这个错误:
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. 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)
运行ning hive,即使它失败了,在我 运行 hive 的目录中创建了一个 metastore_db 目录:
ubuntu15-laptop: ~ $>ls -l |grep meta
drwxrwxr-x 5 testuser testuser 4096 Apr 14 12:44 metastore_db
所以当我尝试 运行ning
ubuntu15-laptop: ~ $>schematool -initSchema -dbType derby
元存储已经存在,但形式不完整。
太棒了,答案是:
在您 运行 第一次蜂巢之前,运行
schematool -initSchema -dbType derby
如果您已经 运行 hive 然后尝试 initSchema 但它失败了:
mv metastore_db metastore_db.tmp
重新 运行
schematool -initSchema -dbType derby
运行 再次蜂巢
**另请注意:如果您更改目录,将找不到上面创建的 metastore_db!我敢肯定这是有充分理由的,我还不知道,因为我今天真的是第一次尝试使用配置单元。啊哈这里是关于这个的信息:metastore_db created wherever I run Hive