无法实例化org.apache.hadoop.hive.metastore.HiveMetaStoreClient

4
我刚刚安装了Hive和MySQL,并将mysqlconnector拷贝到hive_home/lib文件夹中。但是当我尝试在hive>提示符下运行show databases和create table命令时,出现以下错误:
create database saty;
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

我的hive_site.xml文件如下:

<property>    
  <name>javax.jdo.option.ConnectionURL</name>         
  <value>jdbc:mysql://localhost:3306/hadoop?CreateDatabaseIfNotExist=true</value>         
  <description>JDBC connect string for a JDBC metastore</description>
</property>

<property>
  <name>javax.jdo.option.ConnectionDriverName</name>
  <value>com.mysql.jdbc.Driver</value>
  <description>Driver class name for a JDBC metastore</description>
</property>

<property>
  <name>hive.metastore.warehouse.dir</name>
  <value>/user/hive/warehouse</value>
  <description>location of default database for the warehouse</description>
</property>

我在文件系统中没有名为/user/hive/warehouse的目录。

我使用mkdir命令创建了这些路径,重启后尝试仍然出现错误。

祝好, Satya

4个回答

2
尝试指定这两个属性:
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>username</value>
<description>Username to use against metastore database</description>
</property>

<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>password</value>
<description>Password to use against metastore database</description>
</property>

同样地,您的mysql登录用户名应该有访问JDBC连接字符串中指定的数据库的权限。可以使用以下命令来实现此目的。
GRANT ALL ON Databasename.* TO username@'%' IDENTIFIED BY 'password';

1

0

使用-hiveconf hive.root.logger=warn,console重新配置您的Hive,然后找到无法实例化Hive mate存储客户端的详细原因。

我遇到的问题是错误的MySQL配置,错误消息是“二进制日志记录不可能。消息:InnoDB中的事务级别'READ-COMMITTED'对于binlog模式'STATEMENT'不安全”。当我将binlog_format从“statement”更改为“binlog_format=mixed”时,Hive元数据存储客户端成功实例化。

希望它对您有用。


0

我曾经遇到过类似的问题,原因是selinux阻止了Postgres的正常运行。

我在/etc/rc3.d/S64postgresql的第一行插入了以下代码:

echo 0 > /selinux/enforce # 暂时禁用selinux

然后重新启动了带有hive metastore的节点。

所以,通常你可以检查两件事情:

  1. 检查metastore的数据库是否正常运行
  2. 属性中的用户名/密码是否正确

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接