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

无法实例化org.apache.hadoop.hive.metastore.HiveMetaStoreClient,hive,metastore,Hive,Metastore,我刚刚安装了hive和mysql。。 并将mysqlconnector复制到hive_home/lib文件夹 但当我尝试在配置单元>提示符中显示数据库和创建表时,会出现如下错误: create database saty; FAILED: Error in metadata: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.metastore.HiveMetaStoreClient FAILED:

我刚刚安装了hive和mysql。。 并将mysqlconnector复制到hive_home/lib文件夹

但当我尝试在配置单元>提示符中显示数据库和创建表时,会出现如下错误:

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>

javax.jdo.option.ConnectionURL
jdbc:mysql://localhost:3306/hadoop?CreateDatabaseIfNotExist=true         
JDBC元存储的JDBC连接字符串
javax.jdo.option.ConnectionDriverName
com.mysql.jdbc.Driver
JDBC元存储的驱动程序类名
hive.metastore.warehouse.dir
/用户/配置单元/仓库
仓库的默认数据库的位置
我的文件系统中没有名为/user/hive/warehouse的目录

我用mkdir命令创建了这些路径。。并在重新启动后尝试。。 还是会出错

问候,,
satya

尝试指定这两个属性

<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>

我也有类似的问题,我的案例中的原因是selinux,它阻止了Postgres的正常运行

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

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

并使用配置单元元存储重新启动节点

因此,通常可以检查两件事:

  • 检查元存储的数据库是否正常运行
  • 属性中的用户/密码是否正确

  • 使用-hiveconf hive.root.logger=warn,console重新配置配置单元,然后查找无法实例化配置单元伙伴存储客户端的详细原因

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

    希望它对您有用。

    答案位于

    要禁止模式检查并允许元存储隐式修改模式,需要在hive-site.xml中将hive.metastore.schema.verification配置属性设置为false

    GRANT ALL ON Databasename.* TO username@'%' IDENTIFIED BY 'password';