[ 
https://issues.apache.org/jira/browse/FLINK-14511?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16958466#comment-16958466
 ] 

Yang Wang commented on FLINK-14511:
-----------------------------------

Hi [~Dillon.], thanks for this issue.

I think we need more discussion here. As i know, there are two schedulers in 
Yarn. And they have difference policies about queue name.

For fair scheduler, the queue is an absolute path like 'root.a.x'. And the leaf 
node could be same. That means we could have two queues 'root.a.x' and 
'root.b.x'. So when we submit a flink application to fair scheduler, `-yqu` 
need to be an absolute path.

For capacity scheduler, the leaf node is unique. And we could only use leaf 
node name to submit application.

 

If you are using capacity scheduler, i think you should specify the `-yqu` to 
'product' not 'root.product'. And use 'root.product' for fair scheduler.

> Checking YARN queues should add "root" prefix
> ---------------------------------------------
>
>                 Key: FLINK-14511
>                 URL: https://issues.apache.org/jira/browse/FLINK-14511
>             Project: Flink
>          Issue Type: Bug
>          Components: Deployment / YARN
>            Reporter: Zhanchun Zhang
>            Priority: Major
>              Labels: pull-request-available
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> As we all know, all queues in the YARN cluster are children of the "root" 
> queue. While submitting an application to "root.product" queue with -qu 
> product parameter, the client logs that "The specified queue 'product' does 
> not exist. Available queues....". But this queue is exist and we can still 
> submit application to YARN cluster, which is confusing for users. So I think 
> that when checking queues should add "root." prefix to the queue name.
> {code:java}
> List<QueueInfo> queues = yarnClient.getAllQueues();
> if (queues.size() > 0 && this.yarnQueue != null) { // check only if there are 
> queues configured in yarn and for this session.
>       boolean queueFound = false;
>       for (QueueInfo queue : queues) {
>               if (queue.getQueueName().equals(this.yarnQueue) {
>                       queueFound = true;
>                       break;
>               }
>       }
>       if (!queueFound) {
>               String queueNames = "";
>               for (QueueInfo queue : queues) {
>                       queueNames += queue.getQueueName() + ", ";
>               }
>               LOG.warn("The specified queue '" + this.yarnQueue + "' does not 
> exist. " +
>                               "Available queues: " + queueNames);
>       }
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to