Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

YARN-11533. CapacityScheduler CapacityConfigType changed in legacy queue allocation mode #5852

Merged
merged 1 commit into from Jul 20, 2023

Conversation

brumi1024
Copy link
Member

@brumi1024 brumi1024 commented Jul 17, 2023

For code changes:

  • Does the title or this PR starts with the corresponding JIRA issue id (e.g. 'HADOOP-17799. Your PR title ...')?
  • Object storage: have the integration tests been executed and the endpoint declared according to the connector-specific documentation?
  • If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?
  • If applicable, have you updated the LICENSE, LICENSE-binary, NOTICE-binary files?

@brumi1024 brumi1024 changed the title YARN-11553. CapacityScheduler CapacityConfigType changed in legacy queue allocation mode YARN-11533. CapacityScheduler CapacityConfigType changed in legacy queue allocation mode Jul 17, 2023
@hadoop-yetus
Copy link

💔 -1 overall

Vote Subsystem Runtime Logfile Comment
+0 🆗 reexec 0m 59s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 0s No case conflicting files found.
+0 🆗 codespell 0m 0s codespell was not available.
+0 🆗 detsecrets 0m 0s detect-secrets was not available.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
-1 ❌ test4tests 0m 0s The patch doesn't appear to include any new or modified tests. Please justify why no new tests are needed for this patch. Also please list what manual steps were performed to verify this patch.
_ trunk Compile Tests _
+1 💚 mvninstall 56m 14s trunk passed
+1 💚 compile 1m 4s trunk passed with JDK Ubuntu-11.0.19+7-post-Ubuntu-0ubuntu120.04.1
+1 💚 compile 1m 0s trunk passed with JDK Private Build-1.8.0_362-8u372-gaus1-0ubuntu120.04-b09
+1 💚 checkstyle 0m 58s trunk passed
+1 💚 mvnsite 1m 5s trunk passed
+1 💚 javadoc 1m 2s trunk passed with JDK Ubuntu-11.0.19+7-post-Ubuntu-0ubuntu120.04.1
+1 💚 javadoc 0m 52s trunk passed with JDK Private Build-1.8.0_362-8u372-gaus1-0ubuntu120.04-b09
+1 💚 spotbugs 1m 59s trunk passed
+1 💚 shadedclient 40m 10s branch has no errors when building and testing our client artifacts.
_ Patch Compile Tests _
+1 💚 mvninstall 0m 52s the patch passed
+1 💚 compile 0m 55s the patch passed with JDK Ubuntu-11.0.19+7-post-Ubuntu-0ubuntu120.04.1
+1 💚 javac 0m 55s the patch passed
+1 💚 compile 0m 49s the patch passed with JDK Private Build-1.8.0_362-8u372-gaus1-0ubuntu120.04-b09
+1 💚 javac 0m 49s the patch passed
+1 💚 blanks 0m 0s The patch has no blanks issues.
-0 ⚠️ checkstyle 0m 44s /results-checkstyle-hadoop-yarn-project_hadoop-yarn_hadoop-yarn-server_hadoop-yarn-server-resourcemanager.txt hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager: The patch generated 1 new + 25 unchanged - 0 fixed = 26 total (was 25)
+1 💚 mvnsite 0m 52s the patch passed
+1 💚 javadoc 0m 44s the patch passed with JDK Ubuntu-11.0.19+7-post-Ubuntu-0ubuntu120.04.1
+1 💚 javadoc 0m 42s the patch passed with JDK Private Build-1.8.0_362-8u372-gaus1-0ubuntu120.04-b09
+1 💚 spotbugs 1m 56s the patch passed
+1 💚 shadedclient 34m 47s patch has no errors when building and testing our client artifacts.
_ Other Tests _
+1 💚 unit 104m 13s hadoop-yarn-server-resourcemanager in the patch passed.
+1 💚 asflicense 0m 41s The patch does not generate ASF License warnings.
254m 34s
Subsystem Report/Notes
Docker ClientAPI=1.43 ServerAPI=1.43 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-5852/1/artifact/out/Dockerfile
GITHUB PR #5852
Optional Tests dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient spotbugs checkstyle codespell detsecrets
uname Linux 4bbb2cd60778 4.15.0-212-generic #223-Ubuntu SMP Tue May 23 13:09:22 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/bin/hadoop.sh
git revision trunk / 5490f9b
Default Java Private Build-1.8.0_362-8u372-gaus1-0ubuntu120.04-b09
Multi-JDK versions /usr/lib/jvm/java-11-openjdk-amd64:Ubuntu-11.0.19+7-post-Ubuntu-0ubuntu120.04.1 /usr/lib/jvm/java-8-openjdk-amd64:Private Build-1.8.0_362-8u372-gaus1-0ubuntu120.04-b09
Test Results https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-5852/1/testReport/
Max. process+thread count 947 (vs. ulimit of 5500)
modules C: hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager U: hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager
Console output https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-5852/1/console
versions git=2.25.1 maven=3.6.3 spotbugs=4.2.2
Powered by Apache Yetus 0.14.0 https://yetus.apache.org

This message was automatically generated.

Copy link
Contributor

@tomicooler tomicooler left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, LGTM.

The root cause of this behavioural change is that from now on the root queue's capacity cannot be configured. Because, the configuredCapacityVector is set to PERCENTAGE mode (100%), regardless of the configuration. Later this is utilised in theRootCalculationDriver.

  public QueueCapacityVector parse(String capacityString, String queuePath) {

    if (queuePath.equals(CapacitySchedulerConfiguration.ROOT)) {
      return QueueCapacityVector.of(100f, ResourceUnitCapacityType.PERCENTAGE);
    }

I think when the root.capacity is not configured, the 100% in percentage mode is a sane default. I'm not entirely sure what use cases would utilise a root.capacity other than 100% (maybe for a debug session to explicitly under-utilise a cluster, or being clever with node-labels).

Fixing this properly would require to change the RootCalculationDriver to handle the mixed capacityVector. If the root.capacity is not configured then we could always fallback to 100% or based on the root's children we could set either 1w, 100% or sum of children's absolute capacity if all the children has the same and only one capacity type, the latter is more cumbersome.

Currently, in legacy mode the root's absolute capacity most be greater to or equal to sum of the children. In percentage mode setting smaller than 100% have no effect. In weight it would not matter either what's the weight of the root queue.

Based on this, I think it should be OK to document this as is for the non-legacy queue mode (the root.capacity is always in percentage mode: 100% and cannot be configured), until there is a need to implement the mixed capacity handling for the root queue.

Copy link
Contributor

@sunilgovind sunilgovind left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@brumi1024
Copy link
Member Author

Thanks for the reviews @tomicooler @sunilgovind! Merging to trunk.

@brumi1024 brumi1024 merged commit 193ff1c into apache:trunk Jul 20, 2023
0 of 2 checks passed
@brumi1024 brumi1024 deleted the YARN-11533 branch July 20, 2023 04:26
jiajunmao pushed a commit to jiajunmao/hadoop-MLEC that referenced this pull request Feb 6, 2024
…eue allocation mode (apache#5852)

Co-authored-by: Benjamin Teke <bteke@cloudera.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
5 participants