linux - Hive命令行通过Cygwin select查询报错

标签 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

请注意,如果我运行相同的查询但选择全部,即不需要 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/

相关文章:

hadoop - Hive:创建表和分区依据

java - 运行 mapreduce 作业时出现 IOException

java - 从 Java 应用程序在 hadoop 2.2 (Yarn) 上启动 mapreduce 作业

hadoop - 在 Hadoop mapreduce 中,是否所有映射器都需要与所有缩减器进行通信?

python - 包含 2 个或更多 2 个字母元音序列的匹配单词

c - 在 C-Linux 中使用 tab 而不是 Enter 键获取输入

c++ - OpenMP C++ 程序可以用作 Hadoop 中的映射器/缩减器功能吗?

linux - 我可以使用 iptables --delete 命令删除多个匹配规则吗

linux - Bash 脚本(Linux)

java - mongo-hadoop-saveAsNewAPIHadoopFile()-旧文件夹未清理