4

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

但是当我尝试在 hive> 提示中显示数据库和创建表命令时,出现如下错误:

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 命令创建了这些路径..并在重新启动后尝试..但仍然收到错误..

问候,萨蒂亚

4

4 回答 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';
于 2014-01-03T13:25:58.947 回答
1

答案位于http://www.cloudera.com/content/cloudera-content/cloudera-docs/CDH5/5.0/CDH5-Installation-Guide/cdh5ig_hive_schema_tool.html

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

于 2014-07-22T13:39:00.427 回答
0

使用 -hiveconf hive.root.logger=warn,console 重新配置您的配置单元,而不是找到您无法实例化配置单元伙伴商店客户端的详细原因。

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

希望它对你有用。

于 2014-04-28T12:02:17.507 回答
0

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

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

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

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

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

  1. 检查 Metastore 的 DB 是否正常运行
  2. 属性中的用户/密码是否正确
于 2014-03-18T10:30:47.893 回答