我正在使用 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
请注意,如果我运行相同的查询但选择全部,即不需要 MapReduce 作业,则查询会成功:-
hive -e "select * from dm.date_dim limit 10"
我的 IT 部门和其他内部 shell 脚本开发人员对此的响应非常缓慢(很多天),所以您可以建议我检查或尝试什么吗?有人告诉我,如果更改队列名称有效,那么我可以将其放入我的 .hiverc 文件中,但我不确定它在哪里。
这是权限问题吗?我应该配置其他东西吗?
如果有任何帮助,我将不胜感激,但请注意,我最近才开始学习 Linux,因此您可能需要简化任何回复。
最佳答案
您的组织必须指定一些队列来将集群资源分配给多个团队。因此,如果您不指定作业队列,则除“select *”之外的任何查询都不会运行。因此,在运行您的配置单元查询时,只需添加此配置,您的查询就会运行:
hive -hiveconf mapred.job.queue.name=foo -e "select actual_date from dm.date_dim limit 10"
关于linux - Hive命令行通过Cygwin select查询报错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26167518/