我刚刚安装了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命令创建了这些路径。并在重启后重试..关于仍然得到错误..
你好,萨蒂亚
发布于 2014-01-03 21:25:59
尝试指定这两个属性
<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-07-22 21:39:00
答案位于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-03-18 18:30:48
我也遇到过类似的问题,在我的例子中,原因是selinux导致Postgres无法正常运行。
我在/etc/rc3.d/S64postgresql的第一行插入了以下行-
echo 0> / selinux /enforce #临时禁用selinux
并重新启动了带有hive转移节点的节点。
所以通常你可以检查两件事:
https://stackoverflow.com/questions/20889204
复制相似问题