【问题标题】:Hive queries not working when passing .hql file using -f hive option使用 -f hive 选项传递 .hql 文件时,Hive 查询不起作用
【发布时间】:2014-07-25 23:33:25
【问题描述】:

我遇到了一个有线问题,我到处搜索,但似乎无法得到答案。我在单个节点上运行 cloudera 4.6,并将本地 mysql db 用于 hive 元存储数据库。我有许多带有数据的配置单元表,我可以使用 Apache HUE Hive UI 进行查询。我也可以间歇性地从命令行运行查询,得到一个

失败:元数据错误:java.lang.RuntimeException:无法实例化 org.apache.hadoop.hive.metastore.HiveMetaStoreClient FAILED:执行错误,从 org.apache.hadoop.hive.ql.exec.DDLTask 返回代码 1

大约一半的时间。每当我尝试像下面那样将 .hql 传递给 hive 时,我每次都会遇到上述错误。

hive -f test.hql 

每当我通过 oozie 工作流程与 HIVE 交互时,我也会看到此错误。我最初有一个 postgresql 本地元存储数据库,它有类似的错误。

下面是我的 hive-site.xml。任何有助于摆脱此错误的帮助将不胜感激。

enter code here

<xml>
<?xml version="1.0" encoding="UTF-8"?>

<!--Autogenerated by Cloudera CM on 2014-07-25T21:18:21.918Z-->
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/metastore?useUnicode=true&amp;characterEncoding=UTF-  8</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>hive</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>notmypassword</value>
</property>
<property>
<name>hive.metastore.local</name>
<value>true</value>
</property>
<property>
<name>datanucleus.autoCreateSchema</name>
<value>false</value>
</property>
<property>
<name>datanucleus.metadata.validate</name>
<value>false</value>
</property>
<property>
<name>datanucleus.fixedDatastore</name>
<value>true</value>
</property>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/data/user/hive/warehouse</value>
</property>
<property>
<name>hive.warehouse.subdir.inherit.perms</name>
<value>true</value>
</property>
<property>
<name>mapred.reduce.tasks</name>
<value>-1</value>
</property>
<property>
<name>hive.exec.reducers.bytes.per.reducer</name>
<value>1073741824</value>
</property>
<property>
<name>hive.exec.reducers.max</name>
<value>999</value>
</property>
<property>
<name>hive.metastore.execute.setugi</name>
<value>true</value>
</property>
<property>
<name>hive.support.concurrency</name>
<value>true</value>
</property>
<property>
<name>hive.zookeeper.quorum</name>
<value>els-f14847</value>
</property>
<property>
<name>hive.zookeeper.client.port</name>
<value>2181</value>
</property>
<property>
<name>hive.zookeeper.namespace</name>
<value>hive_zookeeper_namespace_hive1</value>
</property>
<property>
<name>hive.metastore.server.min.threads</name>
<value>200</value>
</property>
<property>
<name>hive.metastore.server.max.threads</name>
<value>100000</value>
</property>
<property>
<name>datanucleus.autoStartMechanism</name>
<value>SchemaTable</value>
</property>
</configuration>
</xml>

【问题讨论】:

  • 你可以使用 hive shell 从 hive 查询吗?
  • 是的,但只有大约一半的时间。另一半我失败了:元数据错误:错误。

标签: hadoop hive hue cloudera-manager


【解决方案1】:

您没有关于 DDLTask 错误的更多信息吗?在 Hue 中,它应该出现在日志选项卡的中间。

当您缺少一些底层 HDFS 权限时,通常 DDL 会失败。你在你的脚本中做一些 ALTER/CREATE 表吗?它的内容是什么?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-27
    • 2012-09-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多