Pig v0.15中设置队列名称:执行脚本遇YARN队列拒绝异常
解决Pig脚本执行时YARN队列拒绝的问题
我之前也碰到过一模一样的报错,确实是因为没有为MapReduce任务指定正确的YARN队列名称导致的,给你几个实用的解决方法:
执行脚本时通过命令行参数指定
直接在启动Pig脚本的命令里添加队列参数,格式如下:pig -Dmapreduce.job.queuename=你的队列名称 your_pig_script.pig比如你的队列叫
analytics_queue,就写成:pig -Dmapreduce.job.queuename=analytics_queue my_data_process.pig在Pig脚本内部配置队列
如果你希望脚本本身自带队列配置,不用每次执行都加参数,可以在脚本的最开头添加一行SET命令:SET mapreduce.job.queuename '你的队列名称'; -- 下面是你的Pig脚本逻辑 A = LOAD 'input_data' USING PigStorage(','); -- ... 其他脚本内容修改Pig全局配置文件(持久生效)
如果你所有的Pig任务都需要用同一个队列,可以修改Pig的配置文件pig.properties(通常在$PIG_HOME/conf目录下),添加以下配置项:mapreduce.job.queuename=你的队列名称修改后保存,后续所有Pig任务都会默认使用这个队列提交。
另外要注意:你指定的队列必须是YARN集群中已存在的队列,并且你的用户账号拥有向该队列提交任务的权限,不然还是会遇到类似的拒绝错误哦。
内容的提问来源于stack exchange,提问作者Gyanendra Dwivedi
相关产品推荐
相关产品推荐

