Hive命令行通过Cygwin选择查询错误

时间:2014-10-02 18:48:36

标签: linux hadoop mapreduce cygwin hive

我正在使用Hadoop 2.4.0 Hortonworks

我对Hadoop很新,目前正在使用Hue / Beeswax运行我的标准查询,但是,我现在需要开始创建基本的shell脚本来执行稍微复杂的查询。由于我在Win7机器上,我安装了Cygwin并使用SSH连接到Hadoop服务器。在尝试简单的测试查询时,我收到以下错误: -

hive -e "select actual_date from dm.date_dim limit 10"

AccessControlException: User blah cannot submit applications to queue root.default

根据某人的建议,我先尝试更改队列名称: -

set mapred.job.queuename=foo

注意,如果我运行相同的查询但是选择all,即不需要MapReduce作业,则查询成功: -

hive -e "select * from dm.date_dim limit 10"

我的IT部门和其他内部shell脚本开发人员对此(很多天)的响应非常缓慢,所以有什么建议我应该检查或尝试。我被告知,如果更改队列名称已经有效,那么我可以把它放在我的.hiverc文件中,我不确定它在哪里。

这是权限吗?我应该配置其他东西吗?

我很感激任何帮助,但要注意我最近才开始学习Linux,所以你可能需要愚蠢地回复任何问题。

1 个答案:

答案 0 :(得分:1)

您的组织必须指定一些队列才能将群集资源分配给多个团队。因此,如果您未指定作业队列,则除“select *”之外的任何查询都不会运行。因此,在运行您的配置单元查询时,只需添加此配置,您的查询就会运行:

hive -hiveconf mapred.job.queue.name=foo -e "select actual_date from dm.date_dim limit 10"