2015-07-11 55 views
0

我在CENT OS的同一台服务器上安装了hadoop,hiveMySQL。我还设置了MySQL和用户ID - 配置单元可以通过使用以下步骤访问数据库。配置单元中的元数据中的错误

mysql> CREATE DATABASE metastore; 
mysql> USE metastore; 

mysql> SOURCE $HIVE_HOME/scripts/metastore/upgrade/mysql/hive-schema-0.10.0.mysql.sql; 

mysql> CREATE USER 'hiveuser'@'%' IDENTIFIED BY 'hivepassword'; 

mysql> GRANT all on *.* to 'hiveuser'@localhost identified by 'hivepassword'; 

mysql> flush privileges; 

我的蜂房site.xml文件属性如下:

<property> 
<name>javax.jdo.option.ConnectionURL</name> 
<value>jdbc:mysql://localhost/metastorecreateDatabaseIfNotExist=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>hiveuser</value> 
<description>user name for connecting to mysql server</description>  
</property> 

<property> 
<name>javax.jdo.option.ConnectionPassword</name> 
<value>hivepassword</value> 
<description>password for connecting to mysql server</description> 
</property> 

<property> 
<name>hive.metastore.warehouse.dir</name> 
<value>/user/hive/warehouse</value> 
<description> warehouse </description> 
</property> 

当我给节目表命令hive shell我收到以下错误内:

hive> show tables; FAILED: Error in metadata: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.metastore.HiveMetaStoreClient FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask

我搜索了所有在互联网上,但无法找到解决我的问题。有人能指导我吗,我在这里错过了什么?

+1

我觉得这个问题更适合dba.stackexchange.com。 –

回答

0
1. First just check your hadoop daemons. All are up or not. 

2. Else restart your hadoop cluster once. 

3. Have you copied the jar (mysql-connector-java.***) into Hive's lib dir? 

4. Which mysql version you are using. If it is very old then : 

    mysql>alter database metastore_Db character set latin1; 

I think step 1 and 2 will solve your problem. 
+0

我已经多次完成了前两个步骤,但没有用。是的,我已经完成了第三步。 Mysql版本是5.1.69。你想让我为这个版本做第四步吗?谢谢! – Sathyaraj

+0

您可以检查jpox.properties中的javax.jdo.option.ConnectionDriverName,javax.jdo.option.ConnectionURL,javax.jdo.option.ConnectionUserName和javax.jdo.option.ConnectionPassword的值吗? –

+0

还要在配置单元控制台中启动show databases/tables之前,首先检查mysql数据库/表是否可以在另一个控制台上访问。 –