svn commit: r1847052 [2/2] - in /hadoop/common/site/main: author/src/documentation/content/xdocs/ publish/
.17.1 Notes for details. - + 20 May, 2008: release 0.17.0 available This release contains many improvements, new features, bug fixes and optimizations. See the Hadoop 0.17.0 Release Notes for details. - + 5 May, 2008: release 0.16.4 available This release fixes 4 critical bugs in release 0.16.3. - + 16 April, 2008: release 0.16.3 available This release fixes critical bugs in release 0.16.2. - + 2 April, 2008: release 0.16.2 available This release fixes critical bugs in release 0.16.1. @@ -1721,7 +1741,7 @@ document.write("Last Published: " + docu http://hadoop.apache.org/hbase/;>http://hadoop.apache.org/hbase/ - + 13 March, 2008: release 0.16.1 available This release fixes critical bugs in release 0.16.0. @@ -1730,7 +1750,7 @@ document.write("Last Published: " + docu http://hadoop.apache.org/hbase/;>http://hadoop.apache.org/hbase/ - + 7 February, 2008: release 0.16.0 available This release contains many improvements, new features, bug fixes and optimizations. @@ -1742,19 +1762,19 @@ document.write("Last Published: " + docu with 'bin/start-dfs.sh -upgrade'. See the http://wiki.apache.org/hadoop/Hadoop_Upgrade;>Hadoop Upgrade page for details. - + 18 January, 2008: release 0.15.3 available This release fixes critical bugs in release 0.15.3. - + 2 January, 2008: release 0.15.2 available This release fixes critical bugs in release 0.15.1. - + 27 November, 2007: release 0.15.1 available This release fixes critical bugs in release 0.15.0. - + 26 November, 2007: release 0.14.4 available This release fixes critical bugs in release 0.14.3. - + 29 October 2007: release 0.15.0 available This release contains many improvements, new features, bug fixes and optimizations. @@ -1767,10 +1787,10 @@ document.write("Last Published: " + docu with 'bin/start-dfs.sh -upgrade'. See the http://wiki.apache.org/hadoop/Hadoop_Upgrade;>Hadoop Upgrade page for details. - + 19 October, 2007: release 0.14.3 available This release fixes critical bugs in release 0.14.2. - + 4 September, 2007: release 0.14.1 available New features in release 0.14 include: Modified: hadoop/common/site/main/publish/releases.pdf URL: http://svn.apache.org/viewvc/hadoop/common/site/main/publish/releases.pdf?rev=1847052=1847051=1847052=diff == Binary files - no diff available. Modified: hadoop/common/site/main/publish/version_control.html URL: http://svn.apache.org/viewvc/hadoop/common/site/main/publish/version_control.html?rev=1847052=1847051=1847052=diff == --- hadoop/common/site/main/publish/version_control.html (original) +++ hadoop/common/site/main/publish/version_control.html Tue Nov 20 19:23:28 2018 @@ -176,7 +176,7 @@ document.write("Last Published: " + docu http://hadoop.apache.org/docs/r2.9.1/;>Release 2.9.1 -http://hadoop.apache.org/docs/r2.8.4/;>Release 2.8.4 +http://hadoop.apache.org/docs/r2.8.5/;>Release 2.8.5 http://hadoop.apache.org/docs/r2.7.6/;>Release 2.7.6 Modified: hadoop/common/site/main/publish/version_control.pdf URL: http://svn.apache.org/viewvc/hadoop/common/site/main/publish/version_control.pdf?rev=1847052=1847051=1847052=diff == Binary files - no diff available. Modified: hadoop/common/site/main/publish/versioning.html URL: http://svn.apache.org/viewvc/hadoop/common/site/main/publish/versioning.html?rev=1847052=1847051=1847052=diff == --- hadoop/common/site/main/publish/versioning.html (original) +++ hadoop/common/site/main/publish/versioning.html Tue Nov 20 19:23:28 2018 @@ -187,7 +187,7 @@ document.write("Last Published: " + docu http://hadoop.apache.org/docs/r2.9.1/;>Release 2.9.1 -http://hadoop.apache.org/docs/r2.8.4/;>Release 2.8.4 +http://hadoop.apache.org/docs/r2.8.5/;>Release 2.8.5 http://hadoop.apache.org/docs/r2.7.6/;>Release 2.7.6 Modified: hadoop/common/site/main/publish/versioning.pdf URL: http://svn.apache.org/viewvc/hadoop/common/site/main/publish/versioning.pdf?rev=1847052=1847051=1847052=diff ====== Binary files - no diff available. Modified: hadoop/common/site/main/publish/who.html URL: http://svn.apache.org/viewvc/hadoop/common/site/main/publish/who.html?rev=1847052=1847051=1847052=diff == --- hadoop/common/site/main/publish/who.html (original) +++ hadoop/common/site/main/publish/who.html Tue Nov 20 19:23:28 2018 @@ -193,7 +193,7 @@ document.write("Last Published: " + docu http://hadoop.ap
svn commit: r1847052 [1/2] - in /hadoop/common/site/main: author/src/documentation/content/xdocs/ publish/
Author: xgong Date: Tue Nov 20 19:23:28 2018 New Revision: 1847052 URL: http://svn.apache.org/viewvc?rev=1847052=rev Log: update who.html Modified: hadoop/common/site/main/author/src/documentation/content/xdocs/who.xml hadoop/common/site/main/publish/bylaws.html hadoop/common/site/main/publish/bylaws.pdf hadoop/common/site/main/publish/committer_criteria.html hadoop/common/site/main/publish/committer_criteria.pdf hadoop/common/site/main/publish/index.html hadoop/common/site/main/publish/index.pdf hadoop/common/site/main/publish/issue_tracking.html hadoop/common/site/main/publish/issue_tracking.pdf hadoop/common/site/main/publish/linkmap.html hadoop/common/site/main/publish/linkmap.pdf hadoop/common/site/main/publish/mailing_lists.html hadoop/common/site/main/publish/mailing_lists.pdf hadoop/common/site/main/publish/privacy_policy.html hadoop/common/site/main/publish/privacy_policy.pdf hadoop/common/site/main/publish/releases.html hadoop/common/site/main/publish/releases.pdf hadoop/common/site/main/publish/version_control.html hadoop/common/site/main/publish/version_control.pdf hadoop/common/site/main/publish/versioning.html hadoop/common/site/main/publish/versioning.pdf hadoop/common/site/main/publish/who.html hadoop/common/site/main/publish/who.pdf Modified: hadoop/common/site/main/author/src/documentation/content/xdocs/who.xml URL: http://svn.apache.org/viewvc/hadoop/common/site/main/author/src/documentation/content/xdocs/who.xml?rev=1847052=1847051=1847052=diff == --- hadoop/common/site/main/author/src/documentation/content/xdocs/who.xml (original) +++ hadoop/common/site/main/author/src/documentation/content/xdocs/who.xml Tue Nov 20 19:23:28 2018 @@ -618,7 +618,7 @@ xgong http://people.apache.org/~xgong;>Xuan Gong -Hortonworks +Alibaba -8 @@ -1703,7 +1703,7 @@ xgong http://people.apache.org/~xgong;>Xuan Gong - Hortonworks + Alibaba -8 Modified: hadoop/common/site/main/publish/bylaws.html URL: http://svn.apache.org/viewvc/hadoop/common/site/main/publish/bylaws.html?rev=1847052=1847051=1847052=diff == --- hadoop/common/site/main/publish/bylaws.html (original) +++ hadoop/common/site/main/publish/bylaws.html Tue Nov 20 19:23:28 2018 @@ -187,7 +187,7 @@ document.write("Last Published: " + docu http://hadoop.apache.org/docs/r2.9.1/;>Release 2.9.1 -http://hadoop.apache.org/docs/r2.8.4/;>Release 2.8.4 +http://hadoop.apache.org/docs/r2.8.5/;>Release 2.8.5 http://hadoop.apache.org/docs/r2.7.6/;>Release 2.7.6 Modified: hadoop/common/site/main/publish/bylaws.pdf URL: http://svn.apache.org/viewvc/hadoop/common/site/main/publish/bylaws.pdf?rev=1847052=1847051=1847052=diff == Binary files - no diff available. Modified: hadoop/common/site/main/publish/committer_criteria.html URL: http://svn.apache.org/viewvc/hadoop/common/site/main/publish/committer_criteria.html?rev=1847052=1847051=1847052=diff == --- hadoop/common/site/main/publish/committer_criteria.html (original) +++ hadoop/common/site/main/publish/committer_criteria.html Tue Nov 20 19:23:28 2018 @@ -184,7 +184,7 @@ document.write("Last Published: " + docu http://hadoop.apache.org/docs/r2.9.1/;>Release 2.9.1 -http://hadoop.apache.org/docs/r2.8.4/;>Release 2.8.4 +http://hadoop.apache.org/docs/r2.8.5/;>Release 2.8.5 http://hadoop.apache.org/docs/r2.7.6/;>Release 2.7.6 Modified: hadoop/common/site/main/publish/committer_criteria.pdf URL: http://svn.apache.org/viewvc/hadoop/common/site/main/publish/committer_criteria.pdf?rev=1847052=1847051=1847052=diff == Binary files - no diff available. Modified: hadoop/common/site/main/publish/index.html URL: http://svn.apache.org/viewvc/hadoop/common/site/main/publish/index.html?rev=1847052=1847051=1847052=diff == --- hadoop/common/site/main/publish/index.html (original) +++ hadoop/common/site/main/publish/index.html Tue Nov 20 19:23:28 2018 @@ -193,7 +193,7 @@ document.write("Last Published: " + docu http://hadoop.apache.org/docs/r2.9.1/;>Release 2.9.1 -http://hadoop.apache.org/docs/r2.8.4/;>Release 2.8.4 +http://hadoop.apache.org/docs/r2.8.5/;>Release 2.8.5 http://hadoop.apache.org/docs/r2.7.6/;>Release 2.7.6 @@ -442,17 +442,26 @@ document.write("Last Published: " + docu News - + +15 Sep 2018: Release 2.8.5 availab
hadoop git commit: MAPREDUCE-7027: HadoopArchiveLogs shouldn't delete the original logs if the HAR creation fails. Contributed by Gergely Novák
Repository: hadoop Updated Branches: refs/heads/branch-2 80f716537 -> a0b55392d MAPREDUCE-7027: HadoopArchiveLogs shouldn't delete the original logs if the HAR creation fails. Contributed by Gergely Novák (cherry picked from commit 68ce193efcb595f75d7addf751559c806a5aa399) Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/a0b55392 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/a0b55392 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/a0b55392 Branch: refs/heads/branch-2 Commit: a0b55392d4385b623f6a8c0af17e58e2a9468be5 Parents: 80f7165 Author: Xuan GongAuthored: Fri Feb 23 14:37:26 2018 -0800 Committer: Xuan Gong Committed: Fri Feb 23 14:40:51 2018 -0800 -- .../hadoop/tools/HadoopArchiveLogsRunner.java | 26 ++- .../tools/TestHadoopArchiveLogsRunner.java | 204 +++ 2 files changed, 141 insertions(+), 89 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/a0b55392/hadoop-tools/hadoop-archive-logs/src/main/java/org/apache/hadoop/tools/HadoopArchiveLogsRunner.java -- diff --git a/hadoop-tools/hadoop-archive-logs/src/main/java/org/apache/hadoop/tools/HadoopArchiveLogsRunner.java b/hadoop-tools/hadoop-archive-logs/src/main/java/org/apache/hadoop/tools/HadoopArchiveLogsRunner.java index b3c2de6..b736694 100644 --- a/hadoop-tools/hadoop-archive-logs/src/main/java/org/apache/hadoop/tools/HadoopArchiveLogsRunner.java +++ b/hadoop-tools/hadoop-archive-logs/src/main/java/org/apache/hadoop/tools/HadoopArchiveLogsRunner.java @@ -18,6 +18,7 @@ package org.apache.hadoop.tools; +import com.google.common.annotations.VisibleForTesting; import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.CommandLineParser; import org.apache.commons.cli.GnuParser; @@ -65,6 +66,9 @@ public class HadoopArchiveLogsRunner implements Tool { private JobConf conf; + @VisibleForTesting + HadoopArchives hadoopArchives; + private static final FsPermission HAR_DIR_PERM = new FsPermission(FsAction.ALL, FsAction.READ_EXECUTE, FsAction.NONE); private static final FsPermission HAR_INNER_FILES_PERM = @@ -72,6 +76,7 @@ public class HadoopArchiveLogsRunner implements Tool { public HadoopArchiveLogsRunner(Configuration conf) { setConf(conf); +hadoopArchives = new HadoopArchives(conf); } public static void main(String[] args) { @@ -132,10 +137,10 @@ public class HadoopArchiveLogsRunner implements Tool { conf.set("mapreduce.framework.name", "local"); // Set the umask so we get 640 files and 750 dirs conf.set("fs.permissions.umask-mode", "027"); -HadoopArchives ha = new HadoopArchives(conf); +String harName = appId + ".har"; String[] haArgs = { "-archiveName", -appId + ".har", +harName, "-p", remoteAppLogDir, "*", @@ -146,15 +151,26 @@ public class HadoopArchiveLogsRunner implements Tool { sb.append("\n\t").append(haArg); } LOG.info(sb.toString()); -ha.run(haArgs); +int exitCode = hadoopArchives.run(haArgs); +if (exitCode != 0) { + LOG.warn("Failed to create archives for " + appId); + return -1; +} FileSystem fs = null; // Move har file to correct location and delete original logs try { fs = FileSystem.get(conf); - Path harDest = new Path(remoteAppLogDir, appId + ".har"); + Path harPath = new Path(workingDir, harName); + if (!fs.exists(harPath) || + fs.listStatus(harPath).length == 0) { +LOG.warn("The created archive \"" + harName + +"\" is missing or empty."); +return -1; + } + Path harDest = new Path(remoteAppLogDir, harName); LOG.info("Moving har to original location"); - fs.rename(new Path(workingDir, appId + ".har"), harDest); + fs.rename(harPath, harDest); LOG.info("Deleting original logs"); for (FileStatus original : fs.listStatus(new Path(remoteAppLogDir), new PathFilter() { http://git-wip-us.apache.org/repos/asf/hadoop/blob/a0b55392/hadoop-tools/hadoop-archive-logs/src/test/java/org/apache/hadoop/tools/TestHadoopArchiveLogsRunner.java -- diff --git a/hadoop-tools/hadoop-archive-logs/src/test/java/org/apache/hadoop/tools/TestHadoopArchiveLogsRunner.java b/hadoop-tools/hadoop-archive-logs/src/test/java/org/apache/hadoop/tools/TestHadoopArchiveLogsRunner.java index fad9b97..5369338 100644 --- a/hadoop-tools/hadoop-archive-logs/src/test/java/org/apache/hadoop/tools/TestHadoopArchiveLogsRunner.java +++
hadoop git commit: MAPREDUCE-7027: HadoopArchiveLogs shouldn't delete the original logs if the HAR creation fails. Contributed by Gergely Novák
Repository: hadoop Updated Branches: refs/heads/trunk 51088d323 -> 68ce193ef MAPREDUCE-7027: HadoopArchiveLogs shouldn't delete the original logs if the HAR creation fails. Contributed by Gergely Novák Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/68ce193e Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/68ce193e Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/68ce193e Branch: refs/heads/trunk Commit: 68ce193efcb595f75d7addf751559c806a5aa399 Parents: 51088d3 Author: Xuan GongAuthored: Fri Feb 23 14:37:26 2018 -0800 Committer: Xuan Gong Committed: Fri Feb 23 14:37:26 2018 -0800 -- .../hadoop/tools/HadoopArchiveLogsRunner.java | 26 ++- .../tools/TestHadoopArchiveLogsRunner.java | 204 +++ 2 files changed, 141 insertions(+), 89 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/68ce193e/hadoop-tools/hadoop-archive-logs/src/main/java/org/apache/hadoop/tools/HadoopArchiveLogsRunner.java -- diff --git a/hadoop-tools/hadoop-archive-logs/src/main/java/org/apache/hadoop/tools/HadoopArchiveLogsRunner.java b/hadoop-tools/hadoop-archive-logs/src/main/java/org/apache/hadoop/tools/HadoopArchiveLogsRunner.java index b3c2de6..b736694 100644 --- a/hadoop-tools/hadoop-archive-logs/src/main/java/org/apache/hadoop/tools/HadoopArchiveLogsRunner.java +++ b/hadoop-tools/hadoop-archive-logs/src/main/java/org/apache/hadoop/tools/HadoopArchiveLogsRunner.java @@ -18,6 +18,7 @@ package org.apache.hadoop.tools; +import com.google.common.annotations.VisibleForTesting; import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.CommandLineParser; import org.apache.commons.cli.GnuParser; @@ -65,6 +66,9 @@ public class HadoopArchiveLogsRunner implements Tool { private JobConf conf; + @VisibleForTesting + HadoopArchives hadoopArchives; + private static final FsPermission HAR_DIR_PERM = new FsPermission(FsAction.ALL, FsAction.READ_EXECUTE, FsAction.NONE); private static final FsPermission HAR_INNER_FILES_PERM = @@ -72,6 +76,7 @@ public class HadoopArchiveLogsRunner implements Tool { public HadoopArchiveLogsRunner(Configuration conf) { setConf(conf); +hadoopArchives = new HadoopArchives(conf); } public static void main(String[] args) { @@ -132,10 +137,10 @@ public class HadoopArchiveLogsRunner implements Tool { conf.set("mapreduce.framework.name", "local"); // Set the umask so we get 640 files and 750 dirs conf.set("fs.permissions.umask-mode", "027"); -HadoopArchives ha = new HadoopArchives(conf); +String harName = appId + ".har"; String[] haArgs = { "-archiveName", -appId + ".har", +harName, "-p", remoteAppLogDir, "*", @@ -146,15 +151,26 @@ public class HadoopArchiveLogsRunner implements Tool { sb.append("\n\t").append(haArg); } LOG.info(sb.toString()); -ha.run(haArgs); +int exitCode = hadoopArchives.run(haArgs); +if (exitCode != 0) { + LOG.warn("Failed to create archives for " + appId); + return -1; +} FileSystem fs = null; // Move har file to correct location and delete original logs try { fs = FileSystem.get(conf); - Path harDest = new Path(remoteAppLogDir, appId + ".har"); + Path harPath = new Path(workingDir, harName); + if (!fs.exists(harPath) || + fs.listStatus(harPath).length == 0) { +LOG.warn("The created archive \"" + harName + +"\" is missing or empty."); +return -1; + } + Path harDest = new Path(remoteAppLogDir, harName); LOG.info("Moving har to original location"); - fs.rename(new Path(workingDir, appId + ".har"), harDest); + fs.rename(harPath, harDest); LOG.info("Deleting original logs"); for (FileStatus original : fs.listStatus(new Path(remoteAppLogDir), new PathFilter() { http://git-wip-us.apache.org/repos/asf/hadoop/blob/68ce193e/hadoop-tools/hadoop-archive-logs/src/test/java/org/apache/hadoop/tools/TestHadoopArchiveLogsRunner.java -- diff --git a/hadoop-tools/hadoop-archive-logs/src/test/java/org/apache/hadoop/tools/TestHadoopArchiveLogsRunner.java b/hadoop-tools/hadoop-archive-logs/src/test/java/org/apache/hadoop/tools/TestHadoopArchiveLogsRunner.java index fad9b97..5369338 100644 --- a/hadoop-tools/hadoop-archive-logs/src/test/java/org/apache/hadoop/tools/TestHadoopArchiveLogsRunner.java +++ b/hadoop-tools/hadoop-archive-logs/src/test/java/org/apache/hadoop/tools/TestHadoopArchiveLogsRunner.java @@ -32,112 +32,148 @@ import
[16/18] hadoop git commit: YARN-7251. Misc changes to YARN-5734
YARN-7251. Misc changes to YARN-5734 Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/168a3df8 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/168a3df8 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/168a3df8 Branch: refs/heads/branch-3.0 Commit: 168a3df8e6f7d3c203cdf3a31fa41a2f4191234c Parents: d35f5440 Author: Jonathan HungAuthored: Mon Sep 25 17:52:40 2017 -0700 Committer: Jonathan Hung Committed: Mon Oct 9 14:54:57 2017 -0700 -- hadoop-yarn-project/hadoop-yarn/bin/yarn| 3 +- hadoop-yarn-project/hadoop-yarn/bin/yarn.cmd| 3 +- .../hadoop/yarn/conf/YarnConfiguration.java | 33 ++- .../hadoop/yarn/client/cli/SchedConfCLI.java| 42 ++-- .../yarn/client/cli/TestSchedConfCLI.java | 20 +- .../hadoop/yarn/webapp/dao/QueueConfigInfo.java | 2 +- .../yarn/webapp/dao/SchedConfUpdateInfo.java| 2 +- .../src/main/resources/yarn-default.xml | 15 --- .../scheduler/capacity/CapacityScheduler.java | 12 +++--- .../CapacitySchedulerConfiguration.java | 12 -- .../conf/MutableCSConfigurationProvider.java| 2 +- .../resourcemanager/webapp/RMWebServices.java | 2 +- .../resourcemanager/TestRMAdminService.java | 4 +- .../conf/TestLeveldbConfigurationStore.java | 2 - .../TestMutableCSConfigurationProvider.java | 3 ++ .../capacity/conf/TestZKConfigurationStore.java | 2 - .../TestRMWebServicesConfigurationMutation.java | 28 ++--- .../src/site/markdown/CapacityScheduler.md | 11 ++--- .../src/site/markdown/ResourceManagerRest.md| 40 ++- .../src/site/markdown/YarnCommands.md | 12 +++--- 20 files changed, 146 insertions(+), 104 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/168a3df8/hadoop-yarn-project/hadoop-yarn/bin/yarn -- diff --git a/hadoop-yarn-project/hadoop-yarn/bin/yarn b/hadoop-yarn-project/hadoop-yarn/bin/yarn index 0063596..0f19989 100755 --- a/hadoop-yarn-project/hadoop-yarn/bin/yarn +++ b/hadoop-yarn-project/hadoop-yarn/bin/yarn @@ -47,6 +47,7 @@ function hadoop_usage hadoop_add_subcommand "resourcemanager" daemon "run the ResourceManager" hadoop_add_subcommand "rmadmin" admin "admin tools" hadoop_add_subcommand "router" daemon "run the Router daemon" + hadoop_add_subcommand "schedulerconf" client "Updates scheduler configuration" hadoop_add_subcommand "scmadmin" admin "SharedCacheManager admin tools" hadoop_add_subcommand "sharedcachemanager" daemon "run the SharedCacheManager daemon" hadoop_add_subcommand "timelinereader" client "run the timeline reader server" @@ -142,7 +143,7 @@ function yarncmd_case HADOOP_SUBCMD_SUPPORTDAEMONIZATION="true" HADOOP_CLASSNAME='org.apache.hadoop.yarn.server.router.Router' ;; -schedconf) +schedulerconf) HADOOP_CLASSNAME='org.apache.hadoop.yarn.client.cli.SchedConfCLI' ;; scmadmin) http://git-wip-us.apache.org/repos/asf/hadoop/blob/168a3df8/hadoop-yarn-project/hadoop-yarn/bin/yarn.cmd -- diff --git a/hadoop-yarn-project/hadoop-yarn/bin/yarn.cmd b/hadoop-yarn-project/hadoop-yarn/bin/yarn.cmd index 7ec9848..fed3d90 100644 --- a/hadoop-yarn-project/hadoop-yarn/bin/yarn.cmd +++ b/hadoop-yarn-project/hadoop-yarn/bin/yarn.cmd @@ -295,7 +295,7 @@ goto :eof set YARN_OPTS=%YARN_OPTS% %YARN_CLIENT_OPTS% goto :eof -:schedconf +:schedulerconf set CLASS=org.apache.hadoop.yarn.client.cli.SchedConfCLI set YARN_OPTS=%YARN_OPTS% %YARN_CLIENT_OPTS% goto :eof @@ -345,6 +345,7 @@ goto :eof @echo node prints node report(s) @echo queueprints queue information @echo logs dump container logs + @echo schedulerconfupdates scheduler configuration @echo classpathprints the class path needed to get the @echoHadoop jar and the required libraries @echo daemonlogget/set the log level for each daemon http://git-wip-us.apache.org/repos/asf/hadoop/blob/168a3df8/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java index 600154a..0f4080a 100644 ---
[05/18] hadoop git commit: YARN-5949. Add pluggable configuration ACL policy interface and implementation. (Jonathan Hung via wangda)
YARN-5949. Add pluggable configuration ACL policy interface and implementation. (Jonathan Hung via wangda) Change-Id: Ib98e82ff753bede21fcab2e6ca9ec1e7a5a2008f Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/5fd1668a Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/5fd1668a Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/5fd1668a Branch: refs/heads/branch-3.0 Commit: 5fd1668a270a6f2863a275ea4eb02c4eef1fd8e2 Parents: d1514ba Author: Wangda TanAuthored: Mon May 22 13:38:31 2017 -0700 Committer: Jonathan Hung Committed: Mon Oct 9 14:54:53 2017 -0700 -- .../hadoop/yarn/conf/YarnConfiguration.java | 3 + .../src/main/resources/yarn-default.xml | 11 ++ .../ConfigurationMutationACLPolicy.java | 47 ++ .../ConfigurationMutationACLPolicyFactory.java | 49 ++ .../DefaultConfigurationMutationACLPolicy.java | 45 ++ .../scheduler/MutableConfScheduler.java | 19 ++- .../scheduler/MutableConfigurationProvider.java | 8 +- .../scheduler/capacity/CapacityScheduler.java | 6 +- .../conf/MutableCSConfigurationProvider.java| 151 +- ...ueueAdminConfigurationMutationACLPolicy.java | 96 .../resourcemanager/webapp/RMWebServices.java | 131 +--- .../TestConfigurationMutationACLPolicies.java | 154 +++ .../TestMutableCSConfigurationProvider.java | 40 +++-- 13 files changed, 610 insertions(+), 150 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/5fd1668a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java index d6e657a..60fdfb5 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java @@ -651,6 +651,9 @@ public class YarnConfiguration extends Configuration { public static final String DEFAULT_CONFIGURATION_STORE = MEMORY_CONFIGURATION_STORE; + public static final String RM_SCHEDULER_MUTATION_ACL_POLICY_CLASS = + YARN_PREFIX + "scheduler.configuration.mutation.acl-policy.class"; + public static final String YARN_AUTHORIZATION_PROVIDER = YARN_PREFIX + "authorization-provider"; private static final List RM_SERVICES_ADDRESS_CONF_KEYS_HTTP = http://git-wip-us.apache.org/repos/asf/hadoop/blob/5fd1668a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml index 247e875..b261a5f 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml @@ -3352,4 +3352,15 @@ memory + + + The class to use for configuration mutation ACL policy if using a mutable + configuration provider. Controls whether a mutation request is allowed. + The DefaultConfigurationMutationACLPolicy checks if the requestor is a + YARN admin. + +yarn.scheduler.configuration.mutation.acl-policy.class + org.apache.hadoop.yarn.server.resourcemanager.scheduler.DefaultConfigurationMutationACLPolicy + + http://git-wip-us.apache.org/repos/asf/hadoop/blob/5fd1668a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/ConfigurationMutationACLPolicy.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/ConfigurationMutationACLPolicy.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/ConfigurationMutationACLPolicy.java new file mode 100644 index 000..724487b --- /dev/null +++
[14/18] hadoop git commit: YARN-7046. Add closing logic to configuration store
YARN-7046. Add closing logic to configuration store Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/5105bc47 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/5105bc47 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/5105bc47 Branch: refs/heads/branch-3.0 Commit: 5105bc472187da1a87f4598f4c55b6786eb1c4cf Parents: e6827a9 Author: Jonathan HungAuthored: Fri Sep 22 10:18:27 2017 -0700 Committer: Jonathan Hung Committed: Mon Oct 9 14:54:56 2017 -0700 -- .../scheduler/MutableConfigurationProvider.java | 8 + .../scheduler/capacity/CapacityScheduler.java | 3 + .../conf/LeveldbConfigurationStore.java | 44 ++-- .../conf/MutableCSConfigurationProvider.java| 6 + .../capacity/conf/YarnConfigurationStore.java | 6 + .../conf/ConfigurationStoreBaseTest.java| 2 + .../conf/TestLeveldbConfigurationStore.java | 213 +++ 7 files changed, 270 insertions(+), 12 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/5105bc47/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/MutableConfigurationProvider.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/MutableConfigurationProvider.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/MutableConfigurationProvider.java index f8e8814..2b9b25a 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/MutableConfigurationProvider.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/MutableConfigurationProvider.java @@ -21,6 +21,8 @@ package org.apache.hadoop.yarn.server.resourcemanager.scheduler; import org.apache.hadoop.security.UserGroupInformation; import org.apache.hadoop.yarn.webapp.dao.SchedConfUpdateInfo; +import java.io.IOException; + /** * Interface for allowing changing scheduler configurations. */ @@ -55,4 +57,10 @@ public interface MutableConfigurationProvider { * @throws Exception if confirming mutation fails */ void confirmPendingMutation(boolean isValid) throws Exception; + + /** + * Closes the configuration provider, releasing any required resources. + * @throws IOException on failure to close + */ + void close() throws IOException; } http://git-wip-us.apache.org/repos/asf/hadoop/blob/5105bc47/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacityScheduler.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacityScheduler.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacityScheduler.java index fa206e1..ce79d34 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacityScheduler.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacityScheduler.java @@ -411,6 +411,9 @@ public class CapacityScheduler extends writeLock.unlock(); } +if (isConfigurationMutable()) { + ((MutableConfigurationProvider) csConfProvider).close(); +} super.serviceStop(); } http://git-wip-us.apache.org/repos/asf/hadoop/blob/5105bc47/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/conf/LeveldbConfigurationStore.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/conf/LeveldbConfigurationStore.java
[15/18] hadoop git commit: YARN-7238. Documentation for API based scheduler configuration management
YARN-7238. Documentation for API based scheduler configuration management Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/d35f5440 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/d35f5440 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/d35f5440 Branch: refs/heads/branch-3.0 Commit: d35f54402026ce0ac2f307158003dab90b12958d Parents: 5105bc4 Author: Jonathan HungAuthored: Mon Sep 25 17:47:32 2017 -0700 Committer: Jonathan Hung Committed: Mon Oct 9 14:54:56 2017 -0700 -- .../src/site/markdown/CapacityScheduler.md | 24 ++- .../src/site/markdown/ResourceManagerRest.md| 186 +++ .../src/site/markdown/YarnCommands.md | 13 ++ 3 files changed, 221 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/d35f5440/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/markdown/CapacityScheduler.md -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/markdown/CapacityScheduler.md b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/markdown/CapacityScheduler.md index 6bb8489..d70f891 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/markdown/CapacityScheduler.md +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/markdown/CapacityScheduler.md @@ -295,9 +295,29 @@ The `ReservationSystem` is integrated with the `CapacityScheduler` queue hierach Changing Queue Configuration -Changing queue properties and adding new queues is very simple. You need to edit **conf/capacity-scheduler.xml** and run *yarn rmadmin -refreshQueues*. +Changing queue/scheduler properties and adding/removing queues can be done in two ways, via file or via API. + +### Changing queue configuration via file + + To edit by file, you need to edit **conf/capacity-scheduler.xml** and run *yarn rmadmin -refreshQueues*. $ vi $HADOOP_CONF_DIR/capacity-scheduler.xml $ $HADOOP_YARN_HOME/bin/yarn rmadmin -refreshQueues -**Note:** Queues cannot be *deleted*, only addition of new queues is supported - the updated queue configuration should be a valid one i.e. queue-capacity at each *level* should be equal to 100%. +### Changing queue configuration via API + + Editing by API uses a backing store for the scheduler configuration. To enable this, the following parameters can be configured in yarn-site.xml. + + | Property | Description | + |: |: | + | `yarn.scheduler.capacity.configuration.provider` | The type of configuration provider to use for capacity scheduler. To enable changing queue configuration via API, this should be set to *store*. Default value is *file*, which disables the API and reverts back to changing queue configuration via file. | + | `yarn.scheduler.configuration.store.class` | The type of backing store to use. Default value is *memory*, which stores the scheduler configuration in memory (and does not persist configuration changes across restarts). Other values are *leveldb* (using a leveldb-based implementation), and *zk* (using a zookeeper-based implementation). | + | `yarn.scheduler.configuration.mutation.acl-policy.class` | An ACL policy can be configured to restrict which users can modify which queues. Default value is *org.apache.hadoop.yarn.server.resourcemanager.scheduler.DefaultConfigurationMutationACLPolicy*, which only allows YARN admins to make any configuration modifications. Another value is *org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.conf.QueueAdminConfigurationMutationACLPolicy*, which only allows queue modifications if the caller is an admin of the queue. | + | `yarn.scheduler.configuration.store.max-logs` | Configuration changes are audit logged in the backing store, if using leveldb or zookeeper. This configuration controls the maximum number of audit logs to store, dropping the oldest logs when exceeded. Default is 1000. | + | `yarn.scheduler.configuration.leveldb-store.path` | The storage path of the configuration store when using leveldb. Default value is *${hadoop.tmp.dir}/yarn/system/confstore*. | + | `yarn.scheduler.configuration.leveldb-store.compaction-interval-secs` | The interval for compacting the configuration store in seconds, when using leveldb. Default value is 86400, or one day. | + | `yarn.scheduler.configuration.zk-store.parent-path` | The zookeeper root node path for configuration store related information, when using zookeeper. Default value is */confstore*. | + + **Note:** When enabling backing store for scheduler configuration, *yarn rmadmin -refreshQueues* will be disabled, i.e. it will no longer be possible to
[03/18] hadoop git commit: YARN-5952. Create REST API for changing YARN scheduler configurations. (Jonathan Hung via wangda)
YARN-5952. Create REST API for changing YARN scheduler configurations. (Jonathan Hung via wangda) Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/d1514bac Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/d1514bac Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/d1514bac Branch: refs/heads/branch-3.0 Commit: d1514bacd1a37b6325721e3eada28b17adf87bd1 Parents: 2875464 Author: Wangda TanAuthored: Mon Apr 3 10:12:01 2017 -0700 Committer: Jonathan Hung Committed: Mon Oct 9 14:54:53 2017 -0700 -- .../scheduler/MutableConfScheduler.java | 40 ++ .../scheduler/MutableConfigurationProvider.java | 5 +- .../scheduler/capacity/CapacityScheduler.java | 16 +- .../conf/InMemoryConfigurationStore.java| 6 +- .../conf/MutableCSConfigurationProvider.java| 24 +- .../resourcemanager/webapp/RMWebServices.java | 172 ++- .../webapp/dao/QueueConfigInfo.java | 57 +++ .../webapp/dao/QueueConfigsUpdateInfo.java | 60 +++ .../TestMutableCSConfigurationProvider.java | 6 +- .../TestRMWebServicesConfigurationMutation.java | 477 +++ 10 files changed, 851 insertions(+), 12 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/d1514bac/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/MutableConfScheduler.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/MutableConfScheduler.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/MutableConfScheduler.java new file mode 100644 index 000..35e36e1 --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/MutableConfScheduler.java @@ -0,0 +1,40 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.hadoop.yarn.server.resourcemanager.scheduler; + +import org.apache.hadoop.security.UserGroupInformation; + +import java.io.IOException; +import java.util.Map; + +/** + * Interface for a scheduler that supports changing configuration at runtime. + * + */ +public interface MutableConfScheduler extends ResourceScheduler { + + /** + * Update the scheduler's configuration. + * @param user Caller of this update + * @param confUpdate key-value map of the configuration update + * @throws IOException if update is invalid + */ + void updateConfiguration(UserGroupInformation user, + Map confUpdate) throws IOException; + +} http://git-wip-us.apache.org/repos/asf/hadoop/blob/d1514bac/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/MutableConfigurationProvider.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/MutableConfigurationProvider.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/MutableConfigurationProvider.java index da30a2b..889c3bc 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/MutableConfigurationProvider.java +++
[07/18] hadoop git commit: YARN-6575. Support global configuration mutation in MutableConfProvider. (Jonathan Hung via Xuan Gong)
YARN-6575. Support global configuration mutation in MutableConfProvider. (Jonathan Hung via Xuan Gong) Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/3f29c158 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/3f29c158 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/3f29c158 Branch: refs/heads/branch-3.0 Commit: 3f29c1585be7f8225dc9ec719b9d460566541c41 Parents: 5fd1668 Author: XuanAuthored: Mon Jun 5 16:30:38 2017 -0700 Committer: Jonathan Hung Committed: Mon Oct 9 14:54:54 2017 -0700 -- .../ConfigurationMutationACLPolicy.java | 4 +- .../DefaultConfigurationMutationACLPolicy.java | 4 +- .../scheduler/MutableConfScheduler.java | 4 +- .../scheduler/MutableConfigurationProvider.java | 4 +- .../scheduler/capacity/CapacityScheduler.java | 4 +- .../conf/MutableCSConfigurationProvider.java| 10 +- ...ueueAdminConfigurationMutationACLPolicy.java | 22 +++- .../resourcemanager/webapp/RMWebServices.java | 4 +- .../webapp/dao/QueueConfigsUpdateInfo.java | 60 --- .../webapp/dao/SchedConfUpdateInfo.java | 69 + .../TestConfigurationMutationACLPolicies.java | 28 - .../TestMutableCSConfigurationProvider.java | 10 +- .../TestRMWebServicesConfigurationMutation.java | 101 +-- 13 files changed, 205 insertions(+), 119 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/3f29c158/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/ConfigurationMutationACLPolicy.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/ConfigurationMutationACLPolicy.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/ConfigurationMutationACLPolicy.java index 724487b..3a388fe 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/ConfigurationMutationACLPolicy.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/ConfigurationMutationACLPolicy.java @@ -21,7 +21,7 @@ package org.apache.hadoop.yarn.server.resourcemanager.scheduler; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.security.UserGroupInformation; import org.apache.hadoop.yarn.server.resourcemanager.RMContext; -import org.apache.hadoop.yarn.server.resourcemanager.webapp.dao.QueueConfigsUpdateInfo; +import org.apache.hadoop.yarn.server.resourcemanager.webapp.dao.SchedConfUpdateInfo; /** * Interface for determining whether configuration mutations are allowed. @@ -41,7 +41,7 @@ public interface ConfigurationMutationACLPolicy { * @param confUpdate configurations to be updated * @return whether provided mutation is allowed or not */ - boolean isMutationAllowed(UserGroupInformation user, QueueConfigsUpdateInfo + boolean isMutationAllowed(UserGroupInformation user, SchedConfUpdateInfo confUpdate); } http://git-wip-us.apache.org/repos/asf/hadoop/blob/3f29c158/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/DefaultConfigurationMutationACLPolicy.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/DefaultConfigurationMutationACLPolicy.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/DefaultConfigurationMutationACLPolicy.java index 680c3b8..6648668 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/DefaultConfigurationMutationACLPolicy.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/DefaultConfigurationMutationACLPolicy.java @@ -22,7 +22,7 @@ import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.security.UserGroupInformation; import
[10/18] hadoop git commit: YARN-5947: Create LeveldbConfigurationStore class using Leveldb as backing store. Contributed by Jonathan Hung
YARN-5947: Create LeveldbConfigurationStore class using Leveldb as backing store. Contributed by Jonathan Hung Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/793476e4 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/793476e4 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/793476e4 Branch: refs/heads/branch-3.0 Commit: 793476e4b703b26421362e6af7eba2076ee032f2 Parents: 09b7c87 Author: XuanAuthored: Mon Jul 31 16:48:40 2017 -0700 Committer: Jonathan Hung Committed: Mon Oct 9 14:54:55 2017 -0700 -- .../hadoop/yarn/conf/YarnConfiguration.java | 13 + .../src/main/resources/yarn-default.xml | 29 ++ .../scheduler/MutableConfigurationProvider.java | 6 + .../scheduler/capacity/CapacityScheduler.java | 3 + .../conf/LeveldbConfigurationStore.java | 314 +++ .../conf/MutableCSConfigurationProvider.java| 38 ++- .../capacity/conf/YarnConfigurationStore.java | 14 +- .../conf/TestYarnConfigurationStore.java| 3 +- 8 files changed, 414 insertions(+), 6 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/793476e4/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java index 60fdfb5..7da4772 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java @@ -648,8 +648,21 @@ public class YarnConfiguration extends Configuration { public static final String SCHEDULER_CONFIGURATION_STORE_CLASS = YARN_PREFIX + "scheduler.configuration.store.class"; public static final String MEMORY_CONFIGURATION_STORE = "memory"; + public static final String LEVELDB_CONFIGURATION_STORE = "leveldb"; public static final String DEFAULT_CONFIGURATION_STORE = MEMORY_CONFIGURATION_STORE; + public static final String RM_SCHEDCONF_STORE_PATH = YARN_PREFIX + + "scheduler.configuration.leveldb-store.path"; + + public static final String RM_SCHEDCONF_LEVELDB_COMPACTION_INTERVAL_SECS = + YARN_PREFIX + + "scheduler.configuration.leveldb-store.compaction-interval-secs"; + public static final long + DEFAULT_RM_SCHEDCONF_LEVELDB_COMPACTION_INTERVAL_SECS = 60 * 60 * 24L; + + public static final String RM_SCHEDCONF_LEVELDB_MAX_LOGS = + YARN_PREFIX + "scheduler.configuration.leveldb-store.max-logs"; + public static final int DEFAULT_RM_SCHEDCONF_LEVELDB_MAX_LOGS = 1000; public static final String RM_SCHEDULER_MUTATION_ACL_POLICY_CLASS = YARN_PREFIX + "scheduler.configuration.mutation.acl-policy.class"; http://git-wip-us.apache.org/repos/asf/hadoop/blob/793476e4/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml index b261a5f..0291840 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml @@ -3363,4 +3363,33 @@ org.apache.hadoop.yarn.server.resourcemanager.scheduler.DefaultConfigurationMutationACLPolicy + + + The storage path for LevelDB implementation of configuration store, + when yarn.scheduler.configuration.store.class is configured to be + "leveldb". + +yarn.scheduler.configuration.leveldb-store.path +${hadoop.tmp.dir}/yarn/system/confstore + + + + + The compaction interval for LevelDB configuration store in secs, + when yarn.scheduler.configuration.store.class is configured to be + "leveldb". Default is one day. + + yarn.scheduler.configuration.leveldb-store.compaction-interval-secs +86400 + + + + + The max number of configuration change log entries kept in LevelDB config + store, when yarn.scheduler.configuration.store.class is configured to be + "leveldb". Default is 1000. + +yarn.scheduler.configuration.leveldb-store.max-logs +1000 +
[08/18] hadoop git commit: YARN-5953:Create CLI for changing YARN configurations. (Jonathan Hung via xgong)
YARN-5953:Create CLI for changing YARN configurations. (Jonathan Hung via xgong) Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/e09f0d64 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/e09f0d64 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/e09f0d64 Branch: refs/heads/branch-3.0 Commit: e09f0d64ac469442c70d9b577378a7013be52267 Parents: 3f29c15 Author: Xuan <xg...@apache.org> Authored: Fri Jul 7 14:16:46 2017 -0700 Committer: Jonathan Hung <jh...@linkedin.com> Committed: Mon Oct 9 14:54:54 2017 -0700 -- hadoop-yarn-project/hadoop-yarn/bin/yarn| 3 + hadoop-yarn-project/hadoop-yarn/bin/yarn.cmd| 5 + .../hadoop/yarn/client/cli/SchedConfCLI.java| 238 +++ .../yarn/client/cli/TestSchedConfCLI.java | 160 + .../hadoop/yarn/webapp/dao/package-info.java| 27 +++ .../yarn/webapp/util/YarnWebServiceUtils.java | 14 ++ .../ConfigurationMutationACLPolicy.java | 2 +- .../DefaultConfigurationMutationACLPolicy.java | 2 +- .../scheduler/MutableConfScheduler.java | 2 +- .../scheduler/MutableConfigurationProvider.java | 2 +- .../scheduler/capacity/CapacityScheduler.java | 2 +- .../conf/MutableCSConfigurationProvider.java| 4 +- ...ueueAdminConfigurationMutationACLPolicy.java | 4 +- .../resourcemanager/webapp/RMWebServices.java | 1 + .../webapp/dao/QueueConfigInfo.java | 4 +- .../webapp/dao/SchedConfUpdateInfo.java | 18 +- .../TestConfigurationMutationACLPolicies.java | 4 +- .../TestMutableCSConfigurationProvider.java | 4 +- .../TestRMWebServicesConfigurationMutation.java | 65 +++-- 19 files changed, 507 insertions(+), 54 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/e09f0d64/hadoop-yarn-project/hadoop-yarn/bin/yarn -- diff --git a/hadoop-yarn-project/hadoop-yarn/bin/yarn b/hadoop-yarn-project/hadoop-yarn/bin/yarn index 52138c5..0063596 100755 --- a/hadoop-yarn-project/hadoop-yarn/bin/yarn +++ b/hadoop-yarn-project/hadoop-yarn/bin/yarn @@ -142,6 +142,9 @@ function yarncmd_case HADOOP_SUBCMD_SUPPORTDAEMONIZATION="true" HADOOP_CLASSNAME='org.apache.hadoop.yarn.server.router.Router' ;; +schedconf) +HADOOP_CLASSNAME='org.apache.hadoop.yarn.client.cli.SchedConfCLI' +;; scmadmin) HADOOP_CLASSNAME='org.apache.hadoop.yarn.client.SCMAdmin' ;; http://git-wip-us.apache.org/repos/asf/hadoop/blob/e09f0d64/hadoop-yarn-project/hadoop-yarn/bin/yarn.cmd -- diff --git a/hadoop-yarn-project/hadoop-yarn/bin/yarn.cmd b/hadoop-yarn-project/hadoop-yarn/bin/yarn.cmd index 690badf..7ec9848 100644 --- a/hadoop-yarn-project/hadoop-yarn/bin/yarn.cmd +++ b/hadoop-yarn-project/hadoop-yarn/bin/yarn.cmd @@ -295,6 +295,11 @@ goto :eof set YARN_OPTS=%YARN_OPTS% %YARN_CLIENT_OPTS% goto :eof +:schedconf + set CLASS=org.apache.hadoop.yarn.client.cli.SchedConfCLI + set YARN_OPTS=%YARN_OPTS% %YARN_CLIENT_OPTS% + goto :eof + @rem This changes %1, %2 etc. Hence those cannot be used after calling this. :make_command_arguments if "%1" == "--config" ( http://git-wip-us.apache.org/repos/asf/hadoop/blob/e09f0d64/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/SchedConfCLI.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/SchedConfCLI.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/SchedConfCLI.java new file mode 100644 index 000..e17062e --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/SchedConfCLI.java @@ -0,0 +1,238 @@ +/** +* Licensed to the Apache Software Foundation (ASF) under one +* or more contributor license agreements. See the NOTICE file +* distributed with this work for additional information +* regarding copyright ownership. The ASF licenses this file +* to you under the Apache License, Version 2.0 (the +* "License"); you may not use this file except in compliance +* with the License. You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing pe
[12/18] hadoop git commit: YARN-6840. Implement zookeeper based store for scheduler configuration updates. (Jonathan Hung via wangda)
http://git-wip-us.apache.org/repos/asf/hadoop/blob/e6827a91/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/conf/TestZKConfigurationStore.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/conf/TestZKConfigurationStore.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/conf/TestZKConfigurationStore.java new file mode 100644 index 000..3cfa8da --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/conf/TestZKConfigurationStore.java @@ -0,0 +1,312 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.conf; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.apache.curator.framework.CuratorFramework; +import org.apache.curator.framework.CuratorFrameworkFactory; +import org.apache.curator.retry.RetryNTimes; +import org.apache.curator.test.TestingServer; +import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.fs.CommonConfigurationKeys; +import org.apache.hadoop.ha.HAServiceProtocol; +import org.apache.hadoop.security.UserGroupInformation; +import org.apache.hadoop.service.Service; +import org.apache.hadoop.yarn.conf.HAUtil; +import org.apache.hadoop.yarn.conf.YarnConfiguration; +import org.apache.hadoop.yarn.server.resourcemanager.MockRM; +import org.apache.hadoop.yarn.server.resourcemanager.ResourceManager; +import org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore; +import org.apache.hadoop.yarn.server.resourcemanager.scheduler.MutableConfScheduler; +import org.apache.hadoop.yarn.server.resourcemanager.scheduler.MutableConfigurationProvider; +import org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler; +import org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacitySchedulerConfiguration; +import org.apache.hadoop.yarn.webapp.dao.SchedConfUpdateInfo; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +import java.io.IOException; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.Map; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; + +/** + * Tests {@link ZKConfigurationStore}. + */ +public class TestZKConfigurationStore extends ConfigurationStoreBaseTest { + + public static final Log LOG = + LogFactory.getLog(TestZKConfigurationStore.class); + + private static final int ZK_TIMEOUT_MS = 1; + private TestingServer curatorTestingServer; + private CuratorFramework curatorFramework; + private ResourceManager rm; + + public static TestingServer setupCuratorServer() throws Exception { +TestingServer curatorTestingServer = new TestingServer(); +curatorTestingServer.start(); +return curatorTestingServer; + } + + public static CuratorFramework setupCuratorFramework( + TestingServer curatorTestingServer) throws Exception { +CuratorFramework curatorFramework = CuratorFrameworkFactory.builder() +.connectString(curatorTestingServer.getConnectString()) +.retryPolicy(new RetryNTimes(100, 100)) +.build(); +curatorFramework.start(); +return curatorFramework; + } + + @Before + public void setUp() throws Exception { +super.setUp(); +curatorTestingServer = setupCuratorServer(); +curatorFramework = setupCuratorFramework(curatorTestingServer); + +conf.set(CommonConfigurationKeys.ZK_ADDRESS, +curatorTestingServer.getConnectString()); +rm = new MockRM(conf); +rm.start(); +rmContext = rm.getRMContext(); + } + + @After + public void cleanup() throws IOException { +rm.stop(); +
[01/18] hadoop git commit: YARN-5946: Create YarnConfigurationStore interface and InMemoryConfigurationStore class. Contributed by Jonathan Hung
Repository: hadoop Updated Branches: refs/heads/branch-3.0 1d11701e5 -> fa676ba06 YARN-5946: Create YarnConfigurationStore interface and InMemoryConfigurationStore class. Contributed by Jonathan Hung Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/c4c2feec Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/c4c2feec Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/c4c2feec Branch: refs/heads/branch-3.0 Commit: c4c2feeccfa1d920b8b623074366367f5eac2a9c Parents: 72169a0 Author: XuanAuthored: Fri Feb 24 15:58:12 2017 -0800 Committer: Jonathan Hung Committed: Mon Oct 9 14:54:52 2017 -0700 -- .../conf/InMemoryConfigurationStore.java| 86 +++ .../capacity/conf/YarnConfigurationStore.java | 154 +++ .../conf/TestYarnConfigurationStore.java| 70 + 3 files changed, 310 insertions(+) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/c4c2feec/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/conf/InMemoryConfigurationStore.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/conf/InMemoryConfigurationStore.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/conf/InMemoryConfigurationStore.java new file mode 100644 index 000..a208fb9 --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/conf/InMemoryConfigurationStore.java @@ -0,0 +1,86 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.conf; + +import org.apache.hadoop.conf.Configuration; + +import java.util.LinkedList; +import java.util.List; +import java.util.Map; + +/** + * A default implementation of {@link YarnConfigurationStore}. Doesn't offer + * persistent configuration storage, just stores the configuration in memory. + */ +public class InMemoryConfigurationStore implements YarnConfigurationStore { + + private Configuration schedConf; + private LinkedList pendingMutations; + private long pendingId; + + @Override + public void initialize(Configuration conf, Configuration schedConf) { +this.schedConf = schedConf; +this.pendingMutations = new LinkedList<>(); +this.pendingId = 0; + } + + @Override + public synchronized long logMutation(LogMutation logMutation) { +logMutation.setId(++pendingId); +pendingMutations.add(logMutation); +return pendingId; + } + + @Override + public synchronized boolean confirmMutation(long id, boolean isValid) { +LogMutation mutation = pendingMutations.poll(); +// If confirmMutation is called out of order, discard mutations until id +// is reached. +while (mutation != null) { + if (mutation.getId() == id) { +if (isValid) { + Map mutations = mutation.getUpdates(); + for (Map.Entry kv : mutations.entrySet()) { +schedConf.set(kv.getKey(), kv.getValue()); + } +} +return true; + } + mutation = pendingMutations.poll(); +} +return false; + } + + @Override + public synchronized Configuration retrieve() { +return schedConf; + } + + @Override + public synchronized List getPendingMutations() { +return pendingMutations; + } + + @Override + public List getConfirmedConfHistory(long fromId) { +// Unimplemented. +return null; + } +}
[06/18] hadoop git commit: YARN-5953 addendum: Move QueueConfigInfo and SchedConfUpdateInfo to package org.apache.hadoop.yarn.webapp.dao
YARN-5953 addendum: Move QueueConfigInfo and SchedConfUpdateInfo to package org.apache.hadoop.yarn.webapp.dao Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/09b7c876 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/09b7c876 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/09b7c876 Branch: refs/heads/branch-3.0 Commit: 09b7c8766eaf68235bc75b268e6d38ce777d5b0d Parents: e09f0d6 Author: XuanAuthored: Mon Jul 31 11:49:05 2017 -0700 Committer: Jonathan Hung Committed: Mon Oct 9 14:54:54 2017 -0700 -- .../hadoop/yarn/webapp/dao/QueueConfigInfo.java | 57 + .../yarn/webapp/dao/SchedConfUpdateInfo.java| 85 .../webapp/dao/QueueConfigInfo.java | 57 - .../webapp/dao/SchedConfUpdateInfo.java | 85 4 files changed, 142 insertions(+), 142 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/09b7c876/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/dao/QueueConfigInfo.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/dao/QueueConfigInfo.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/dao/QueueConfigInfo.java new file mode 100644 index 000..d1d91c2 --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/dao/QueueConfigInfo.java @@ -0,0 +1,57 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.hadoop.yarn.webapp.dao; + +import java.util.HashMap; +import java.util.Map; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlRootElement; + +/** + * Information for adding or updating a queue to scheduler configuration + * for this queue. + */ +@XmlRootElement +@XmlAccessorType(XmlAccessType.FIELD) +public class QueueConfigInfo { + + @XmlElement(name = "queueName") + private String queue; + + private HashMap params = new HashMap<>(); + + public QueueConfigInfo() { } + + public QueueConfigInfo(String queue, Map params) { +this.queue = queue; +this.params = new HashMap<>(params); + } + + public String getQueue() { +return this.queue; + } + + public HashMap getParams() { +return this.params; + } + +} http://git-wip-us.apache.org/repos/asf/hadoop/blob/09b7c876/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/dao/SchedConfUpdateInfo.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/dao/SchedConfUpdateInfo.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/dao/SchedConfUpdateInfo.java new file mode 100644 index 000..bb84096 --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/dao/SchedConfUpdateInfo.java @@ -0,0 +1,85 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY
[13/18] hadoop git commit: YARN-6840. Implement zookeeper based store for scheduler configuration updates. (Jonathan Hung via wangda)
YARN-6840. Implement zookeeper based store for scheduler configuration updates. (Jonathan Hung via wangda) Change-Id: I9debea674fe8c7e4109d4ca136965a1ea4c48bcc Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/e6827a91 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/e6827a91 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/e6827a91 Branch: refs/heads/branch-3.0 Commit: e6827a9121f9ba8d8a387c001f9d75828eb2e56e Parents: 4bf3806 Author: Wangda TanAuthored: Mon Sep 18 09:53:42 2017 -0700 Committer: Jonathan Hung Committed: Mon Oct 9 14:54:56 2017 -0700 -- .../hadoop/yarn/conf/YarnConfiguration.java | 14 +- .../src/main/resources/yarn-default.xml | 15 +- .../server/resourcemanager/AdminService.java| 18 +- .../server/resourcemanager/ResourceManager.java | 24 +- .../RMStateVersionIncompatibleException.java| 2 +- .../recovery/ZKRMStateStore.java| 5 +- .../scheduler/MutableConfScheduler.java | 22 +- .../scheduler/MutableConfigurationProvider.java | 36 ++- .../scheduler/capacity/CapacityScheduler.java | 22 +- .../conf/InMemoryConfigurationStore.java| 71 +++-- .../conf/LeveldbConfigurationStore.java | 168 +- .../conf/MutableCSConfigurationProvider.java| 148 + .../capacity/conf/YarnConfigurationStore.java | 132 .../capacity/conf/ZKConfigurationStore.java | 235 ++ .../resourcemanager/webapp/RMWebServices.java | 26 +- .../conf/ConfigurationStoreBaseTest.java| 90 ++ .../conf/TestInMemoryConfigurationStore.java| 30 ++ .../TestMutableCSConfigurationProvider.java | 18 +- .../conf/TestYarnConfigurationStore.java| 71 - .../capacity/conf/TestZKConfigurationStore.java | 312 +++ 20 files changed, 1037 insertions(+), 422 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/e6827a91/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java index 7da4772..600154a 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java @@ -649,6 +649,7 @@ public class YarnConfiguration extends Configuration { YARN_PREFIX + "scheduler.configuration.store.class"; public static final String MEMORY_CONFIGURATION_STORE = "memory"; public static final String LEVELDB_CONFIGURATION_STORE = "leveldb"; + public static final String ZK_CONFIGURATION_STORE = "zk"; public static final String DEFAULT_CONFIGURATION_STORE = MEMORY_CONFIGURATION_STORE; public static final String RM_SCHEDCONF_STORE_PATH = YARN_PREFIX @@ -660,9 +661,16 @@ public class YarnConfiguration extends Configuration { public static final long DEFAULT_RM_SCHEDCONF_LEVELDB_COMPACTION_INTERVAL_SECS = 60 * 60 * 24L; - public static final String RM_SCHEDCONF_LEVELDB_MAX_LOGS = - YARN_PREFIX + "scheduler.configuration.leveldb-store.max-logs"; - public static final int DEFAULT_RM_SCHEDCONF_LEVELDB_MAX_LOGS = 1000; + public static final String RM_SCHEDCONF_MAX_LOGS = + YARN_PREFIX + "scheduler.configuration.store.max-logs"; + public static final long DEFAULT_RM_SCHEDCONF_LEVELDB_MAX_LOGS = 1000; + public static final long DEFAULT_RM_SCHEDCONF_ZK_MAX_LOGS = 1000; + + /** Parent znode path under which ZKConfigurationStore will create znodes. */ + public static final String RM_SCHEDCONF_STORE_ZK_PARENT_PATH = YARN_PREFIX + + "scheduler.configuration.zk-store.parent-path"; + public static final String DEFAULT_RM_SCHEDCONF_STORE_ZK_PARENT_PATH = + "/confstore"; public static final String RM_SCHEDULER_MUTATION_ACL_POLICY_CLASS = YARN_PREFIX + "scheduler.configuration.mutation.acl-policy.class"; http://git-wip-us.apache.org/repos/asf/hadoop/blob/e6827a91/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml index 0291840..937f87d 100644 ---
[18/18] hadoop git commit: Merge branch 'YARN-5734-branch-3.0' into branch-3.0. (xgong)
Merge branch 'YARN-5734-branch-3.0' into branch-3.0. (xgong) Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/fa676ba0 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/fa676ba0 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/fa676ba0 Branch: refs/heads/branch-3.0 Commit: fa676ba06b4039f35363e211a8e91ad15170737f Parents: 1d11701 043a217 Author: Xuan <xg...@apache.org> Authored: Mon Oct 9 15:00:48 2017 -0700 Committer: Xuan <xg...@apache.org> Committed: Mon Oct 9 15:00:48 2017 -0700 -- hadoop-yarn-project/hadoop-yarn/bin/yarn| 4 + hadoop-yarn-project/hadoop-yarn/bin/yarn.cmd| 6 + .../hadoop/yarn/conf/YarnConfiguration.java | 61 +++ .../hadoop/yarn/client/cli/SchedConfCLI.java| 254 ++ .../yarn/client/cli/TestSchedConfCLI.java | 158 ++ .../hadoop/yarn/webapp/dao/QueueConfigInfo.java | 57 +++ .../yarn/webapp/dao/SchedConfUpdateInfo.java| 85 .../hadoop/yarn/webapp/dao/package-info.java| 27 + .../yarn/webapp/util/YarnWebServiceUtils.java | 14 + .../src/main/resources/yarn-default.xml | 64 +++ .../server/resourcemanager/AdminService.java| 24 +- .../server/resourcemanager/ResourceManager.java | 24 +- .../RMStateVersionIncompatibleException.java| 2 +- .../recovery/ZKRMStateStore.java| 5 +- .../ConfigurationMutationACLPolicy.java | 47 ++ .../ConfigurationMutationACLPolicyFactory.java | 49 ++ .../DefaultConfigurationMutationACLPolicy.java | 45 ++ .../scheduler/MutableConfScheduler.java | 53 ++ .../scheduler/MutableConfigurationProvider.java | 66 +++ .../scheduler/capacity/CapacityScheduler.java | 66 ++- .../capacity/CapacitySchedulerContext.java | 6 + .../capacity/CapacitySchedulerQueueManager.java | 11 +- .../capacity/conf/CSConfigurationProvider.java | 47 ++ .../conf/FileBasedCSConfigurationProvider.java | 67 +++ .../conf/InMemoryConfigurationStore.java| 95 .../conf/LeveldbConfigurationStore.java | 322 .../conf/MutableCSConfigurationProvider.java| 284 +++ ...ueueAdminConfigurationMutationACLPolicy.java | 110 .../capacity/conf/YarnConfigurationStore.java | 178 +++ .../conf/YarnConfigurationStoreFactory.java | 46 ++ .../capacity/conf/ZKConfigurationStore.java | 235 + .../scheduler/capacity/conf/package-info.java | 29 ++ .../resourcemanager/webapp/RMWebServices.java | 66 ++- .../resourcemanager/TestRMAdminService.java | 23 + .../TestConfigurationMutationACLPolicies.java | 172 +++ .../capacity/TestCapacityScheduler.java | 4 +- .../conf/ConfigurationStoreBaseTest.java| 92 .../conf/TestInMemoryConfigurationStore.java| 30 ++ .../conf/TestLeveldbConfigurationStore.java | 211 .../TestMutableCSConfigurationProvider.java | 102 .../capacity/conf/TestZKConfigurationStore.java | 412 +++ .../TestRMWebServicesConfigurationMutation.java | 507 +++ .../src/site/markdown/CapacityScheduler.md | 25 +- .../src/site/markdown/ResourceManagerRest.md| 188 +++ .../src/site/markdown/YarnCommands.md | 13 + 45 files changed, 4338 insertions(+), 48 deletions(-) -- - To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-commits-h...@hadoop.apache.org
[09/18] hadoop git commit: YARN-6322: Disable queue refresh when configuration mutation is enabled. Contributed by Jonathan Hung
YARN-6322: Disable queue refresh when configuration mutation is enabled. Contributed by Jonathan Hung Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/0b546420 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/0b546420 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/0b546420 Branch: refs/heads/branch-3.0 Commit: 0b546420da3c7ae708d361ddf52a3cf8d24494b9 Parents: 793476e Author: XuanAuthored: Tue Aug 1 08:48:04 2017 -0700 Committer: Jonathan Hung Committed: Mon Oct 9 14:54:55 2017 -0700 -- .../server/resourcemanager/AdminService.java| 12 +- .../scheduler/MutableConfScheduler.java | 12 -- .../scheduler/MutableConfigurationProvider.java | 4 +++- .../scheduler/capacity/CapacityScheduler.java | 9 ++-- .../conf/MutableCSConfigurationProvider.java| 11 +- .../resourcemanager/TestRMAdminService.java | 23 .../TestMutableCSConfigurationProvider.java | 14 +++- 7 files changed, 67 insertions(+), 18 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/0b546420/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/AdminService.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/AdminService.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/AdminService.java index 3457ae3..fd9e849 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/AdminService.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/AdminService.java @@ -29,6 +29,7 @@ import java.util.Set; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.apache.hadoop.classification.InterfaceAudience.Private; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.CommonConfigurationKeysPublic; import org.apache.hadoop.ha.HAServiceProtocol; @@ -92,6 +93,8 @@ import org.apache.hadoop.yarn.server.resourcemanager.reservation.ReservationSyst import org.apache.hadoop.yarn.server.resourcemanager.resource.DynamicResourceConfiguration; import org.apache.hadoop.yarn.server.resourcemanager.rmnode.RMNode; import org.apache.hadoop.yarn.server.resourcemanager.rmnode.RMNodeResourceUpdateEvent; +import org.apache.hadoop.yarn.server.resourcemanager.scheduler.MutableConfScheduler; +import org.apache.hadoop.yarn.server.resourcemanager.scheduler.ResourceScheduler; import org.apache.hadoop.yarn.server.resourcemanager.security.authorize.RMPolicyProvider; import com.google.common.annotations.VisibleForTesting; @@ -384,6 +387,12 @@ public class AdminService extends CompositeService implements RefreshQueuesResponse response = recordFactory.newRecordInstance(RefreshQueuesResponse.class); try { + ResourceScheduler scheduler = rm.getRMContext().getScheduler(); + if (scheduler instanceof MutableConfScheduler + && ((MutableConfScheduler) scheduler).isConfigurationMutable()) { +throw new IOException("Scheduler configuration is mutable. " + +operation + " is not allowed in this scenario."); + } refreshQueues(); RMAuditLogger.logSuccess(user.getShortUserName(), operation, "AdminService"); @@ -393,7 +402,8 @@ public class AdminService extends CompositeService implements } } - private void refreshQueues() throws IOException, YarnException { + @Private + public void refreshQueues() throws IOException, YarnException { rm.getRMContext().getScheduler().reinitialize(getConfig(), this.rm.getRMContext()); // refresh the reservation system http://git-wip-us.apache.org/repos/asf/hadoop/blob/0b546420/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/MutableConfScheduler.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/MutableConfScheduler.java
[02/18] hadoop git commit: YARN-5951. Changes to allow CapacityScheduler to use configuration store
YARN-5951. Changes to allow CapacityScheduler to use configuration store Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/72169a02 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/72169a02 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/72169a02 Branch: refs/heads/branch-3.0 Commit: 72169a028184edbc025ff70546fe7984a9959535 Parents: 1d11701 Author: Jonathan HungAuthored: Mon Jan 30 19:03:48 2017 -0800 Committer: Jonathan Hung Committed: Mon Oct 9 14:54:52 2017 -0700 -- .../scheduler/capacity/CapacityScheduler.java | 37 +-- .../CapacitySchedulerConfiguration.java | 9 +++ .../capacity/conf/CSConfigurationProvider.java | 46 ++ .../conf/FileBasedCSConfigurationProvider.java | 67 .../scheduler/capacity/conf/package-info.java | 29 + .../capacity/TestCapacityScheduler.java | 4 +- 6 files changed, 170 insertions(+), 22 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/72169a02/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacityScheduler.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacityScheduler.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacityScheduler.java index deec091..016d7ee 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacityScheduler.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacityScheduler.java @@ -19,7 +19,6 @@ package org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity; import java.io.IOException; -import java.io.InputStream; import java.util.ArrayList; import java.util.Collection; import java.util.EnumSet; @@ -103,6 +102,8 @@ import org.apache.hadoop.yarn.server.resourcemanager.scheduler.activities.Activi import org.apache.hadoop.yarn.server.resourcemanager.scheduler.activities.ActivityDiagnosticConstant; import org.apache.hadoop.yarn.server.resourcemanager.scheduler.activities.ActivityState; import org.apache.hadoop.yarn.server.resourcemanager.scheduler.activities.AllocationState; +import org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.conf.CSConfigurationProvider; +import org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.conf.FileBasedCSConfigurationProvider; import org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.preemption.KillableContainer; import org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.preemption.PreemptionManager; import org.apache.hadoop.yarn.server.resourcemanager.scheduler.common.AssignmentInformation; @@ -167,6 +168,8 @@ public class CapacityScheduler extends private int maxAssignPerHeartbeat; + private CSConfigurationProvider csConfProvider; + @Override public void setConf(Configuration conf) { yarnConf = conf; @@ -289,7 +292,18 @@ public class CapacityScheduler extends IOException { try { writeLock.lock(); - this.conf = loadCapacitySchedulerConfiguration(configuration); + String confProviderStr = configuration.get( + CapacitySchedulerConfiguration.CS_CONF_PROVIDER, + CapacitySchedulerConfiguration.DEFAULT_CS_CONF_PROVIDER); + if (confProviderStr.equals( + CapacitySchedulerConfiguration.FILE_CS_CONF_PROVIDER)) { +this.csConfProvider = new FileBasedCSConfigurationProvider(rmContext); + } else { +throw new IOException("Invalid CS configuration provider: " + +confProviderStr); + } + this.csConfProvider.init(configuration); + this.conf = this.csConfProvider.loadConfiguration(configuration); validateConf(this.conf); this.minimumAllocation = this.conf.getMinimumAllocation(); initMaximumResourceCapability(this.conf.getMaximumAllocation()); @@ -399,7 +413,7 @@ public class CapacityScheduler extends writeLock.lock(); Configuration configuration = new Configuration(newConf); CapacitySchedulerConfiguration oldConf = this.conf; - this.conf = loadCapacitySchedulerConfiguration(configuration); + this.conf =
[11/18] hadoop git commit: YARN-7024: Fix issues on recovery in LevelDB store. Contributed by Jonathan Hung
YARN-7024: Fix issues on recovery in LevelDB store. Contributed by Jonathan Hung Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/4bf38062 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/4bf38062 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/4bf38062 Branch: refs/heads/branch-3.0 Commit: 4bf38062a580a3d848760dd5019980bb8ae973f4 Parents: 0b54642 Author: XuanAuthored: Wed Aug 23 11:11:41 2017 -0700 Committer: Jonathan Hung Committed: Mon Oct 9 14:54:56 2017 -0700 -- .../scheduler/capacity/conf/InMemoryConfigurationStore.java | 2 +- .../scheduler/capacity/conf/LeveldbConfigurationStore.java | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/4bf38062/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/conf/InMemoryConfigurationStore.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/conf/InMemoryConfigurationStore.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/conf/InMemoryConfigurationStore.java index b97be1b..c63734d 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/conf/InMemoryConfigurationStore.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/conf/InMemoryConfigurationStore.java @@ -79,7 +79,7 @@ public class InMemoryConfigurationStore implements YarnConfigurationStore { @Override public synchronized List getPendingMutations() { -return pendingMutations; +return new LinkedList<>(pendingMutations); } @Override http://git-wip-us.apache.org/repos/asf/hadoop/blob/4bf38062/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/conf/LeveldbConfigurationStore.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/conf/LeveldbConfigurationStore.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/conf/LeveldbConfigurationStore.java index 1534685..1280fab 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/conf/LeveldbConfigurationStore.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/conf/LeveldbConfigurationStore.java @@ -65,6 +65,7 @@ public class LeveldbConfigurationStore implements YarnConfigurationStore { private static final String LOG_COMMITTED_TXN = "committedTxn"; private DB db; + // Txnid for the last transaction logged to the store. private long txnId = 0; private long minTxn = 0; private long maxLogs; @@ -92,6 +93,7 @@ public class LeveldbConfigurationStore implements YarnConfigurationStore { break; } pendingMutations.add(deserLogMutation(entry.getValue())); +txnId++; } // Get the earliest txnId stored in logs itr.seekToFirst(); @@ -278,7 +280,7 @@ public class LeveldbConfigurationStore implements YarnConfigurationStore { @Override public List getPendingMutations() { -return pendingMutations; +return new LinkedList<>(pendingMutations); } @Override - To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-commits-h...@hadoop.apache.org
[04/18] hadoop git commit: YARN-5948. Implement MutableConfigurationManager for handling storage into configuration store
YARN-5948. Implement MutableConfigurationManager for handling storage into configuration store Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/28754646 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/28754646 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/28754646 Branch: refs/heads/branch-3.0 Commit: 28754646e5ea55eae3015306500bde0e7bcac601 Parents: c4c2fee Author: Jonathan HungAuthored: Wed Mar 1 16:03:01 2017 -0800 Committer: Jonathan Hung Committed: Mon Oct 9 14:54:53 2017 -0700 -- .../hadoop/yarn/conf/YarnConfiguration.java | 6 ++ .../src/main/resources/yarn-default.xml | 12 +++ .../scheduler/MutableConfigurationProvider.java | 35 .../scheduler/capacity/CapacityScheduler.java | 14 ++- .../CapacitySchedulerConfiguration.java | 3 + .../capacity/conf/CSConfigurationProvider.java | 3 +- .../conf/MutableCSConfigurationProvider.java| 94 .../conf/YarnConfigurationStoreFactory.java | 46 ++ .../TestMutableCSConfigurationProvider.java | 83 + 9 files changed, 291 insertions(+), 5 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/28754646/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java index 8988f64..d6e657a 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java @@ -645,6 +645,12 @@ public class YarnConfiguration extends Configuration { public static final String DEFAULT_RM_CONFIGURATION_PROVIDER_CLASS = "org.apache.hadoop.yarn.LocalConfigurationProvider"; + public static final String SCHEDULER_CONFIGURATION_STORE_CLASS = + YARN_PREFIX + "scheduler.configuration.store.class"; + public static final String MEMORY_CONFIGURATION_STORE = "memory"; + public static final String DEFAULT_CONFIGURATION_STORE = + MEMORY_CONFIGURATION_STORE; + public static final String YARN_AUTHORIZATION_PROVIDER = YARN_PREFIX + "authorization-provider"; private static final List RM_SERVICES_ADDRESS_CONF_KEYS_HTTP = http://git-wip-us.apache.org/repos/asf/hadoop/blob/28754646/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml index 1c04e20..247e875 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml @@ -3340,4 +3340,16 @@ + + + The type of configuration store to use for storing scheduler + configurations, if using a mutable configuration provider. + Keywords such as "memory" map to certain configuration store + implementations. If keyword is not found, try to load this + value as a class. + +yarn.scheduler.configuration.store.class +memory + + http://git-wip-us.apache.org/repos/asf/hadoop/blob/28754646/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/MutableConfigurationProvider.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/MutableConfigurationProvider.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/MutableConfigurationProvider.java new file mode 100644 index 000..da30a2b --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/MutableConfigurationProvider.java @@ -0,0 +1,35 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + *
[17/18] hadoop git commit: YARN-7252. Removing queue then failing over results in exception
YARN-7252. Removing queue then failing over results in exception Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/043a2170 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/043a2170 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/043a2170 Branch: refs/heads/branch-3.0 Commit: 043a217017fff964e742a2c238aacbd56100fcda Parents: 168a3df Author: Jonathan HungAuthored: Tue Sep 26 11:41:05 2017 -0700 Committer: Jonathan Hung Committed: Mon Oct 9 14:54:57 2017 -0700 -- .../capacity/CapacitySchedulerContext.java | 6 ++ .../capacity/CapacitySchedulerQueueManager.java | 11 +- .../capacity/conf/TestZKConfigurationStore.java | 102 +++ 3 files changed, 117 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/043a2170/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacitySchedulerContext.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacitySchedulerContext.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacitySchedulerContext.java index 9aeaec6..7c918a5 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacitySchedulerContext.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacitySchedulerContext.java @@ -88,4 +88,10 @@ public interface CapacitySchedulerContext { * @return Max Cluster level App priority. */ Priority getMaxClusterLevelAppPriority(); + + /** + * Returns if configuration is mutable. + * @return if configuration is mutable + */ + boolean isConfigurationMutable(); } http://git-wip-us.apache.org/repos/asf/hadoop/blob/043a2170/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacitySchedulerQueueManager.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacitySchedulerQueueManager.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacitySchedulerQueueManager.java index 1ceb6fb..48c289f 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacitySchedulerQueueManager.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacitySchedulerQueueManager.java @@ -33,6 +33,7 @@ import org.apache.commons.logging.LogFactory; import org.apache.hadoop.classification.InterfaceAudience.Private; import org.apache.hadoop.classification.InterfaceStability.Unstable; import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.ha.HAServiceProtocol; import org.apache.hadoop.security.UserGroupInformation; import org.apache.hadoop.yarn.api.records.Priority; import org.apache.hadoop.yarn.api.records.QueueState; @@ -170,8 +171,14 @@ public class CapacitySchedulerQueueManager implements SchedulerQueueManager< CSQueue newRoot = parseQueue(this.csContext, newConf, null, CapacitySchedulerConfiguration.ROOT, newQueues, queues, NOOP); -// Ensure queue hiearchy in the new XML file is proper. -validateQueueHierarchy(queues, newQueues); +// When failing over, if using configuration store, don't validate queue +// hierarchy since queues can be removed without being STOPPED. +if (!csContext.isConfigurationMutable() || +csContext.getRMContext().getHAServiceState() +!= HAServiceProtocol.HAServiceState.STANDBY) { + // Ensure queue hiearchy in the new XML file is proper. + validateQueueHierarchy(queues, newQueues); +} // Add new queues and delete OldQeueus only after validation. updateQueues(queues, newQueues);
[18/18] hadoop git commit: Merge branch 'YARN-5734' into trunk. (xgong)
Merge branch 'YARN-5734' into trunk. (xgong) Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/f9ff17f5 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/f9ff17f5 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/f9ff17f5 Branch: refs/heads/trunk Commit: f9ff17f510517ef6c6acc1e1179a68e771df1847 Parents: 7938208 1d36b53 Author: Xuan <xg...@apache.org> Authored: Mon Oct 9 14:46:02 2017 -0700 Committer: Xuan <xg...@apache.org> Committed: Mon Oct 9 14:46:02 2017 -0700 -- hadoop-yarn-project/hadoop-yarn/bin/yarn| 4 + hadoop-yarn-project/hadoop-yarn/bin/yarn.cmd| 6 + .../hadoop/yarn/conf/YarnConfiguration.java | 61 +++ .../hadoop/yarn/client/cli/SchedConfCLI.java| 254 ++ .../yarn/client/cli/TestSchedConfCLI.java | 158 ++ .../hadoop/yarn/webapp/dao/QueueConfigInfo.java | 57 +++ .../yarn/webapp/dao/SchedConfUpdateInfo.java| 85 .../hadoop/yarn/webapp/dao/package-info.java| 27 + .../yarn/webapp/util/YarnWebServiceUtils.java | 14 + .../src/main/resources/yarn-default.xml | 64 +++ .../server/resourcemanager/AdminService.java| 24 +- .../server/resourcemanager/ResourceManager.java | 24 +- .../RMStateVersionIncompatibleException.java| 2 +- .../recovery/ZKRMStateStore.java| 5 +- .../ConfigurationMutationACLPolicy.java | 47 ++ .../ConfigurationMutationACLPolicyFactory.java | 49 ++ .../DefaultConfigurationMutationACLPolicy.java | 45 ++ .../scheduler/MutableConfScheduler.java | 53 ++ .../scheduler/MutableConfigurationProvider.java | 66 +++ .../scheduler/capacity/CapacityScheduler.java | 66 ++- .../capacity/CapacitySchedulerContext.java | 6 + .../capacity/CapacitySchedulerQueueManager.java | 11 +- .../capacity/conf/CSConfigurationProvider.java | 47 ++ .../conf/FileBasedCSConfigurationProvider.java | 67 +++ .../conf/InMemoryConfigurationStore.java| 95 .../conf/LeveldbConfigurationStore.java | 322 .../conf/MutableCSConfigurationProvider.java| 284 +++ ...ueueAdminConfigurationMutationACLPolicy.java | 110 .../capacity/conf/YarnConfigurationStore.java | 178 +++ .../conf/YarnConfigurationStoreFactory.java | 46 ++ .../capacity/conf/ZKConfigurationStore.java | 235 + .../scheduler/capacity/conf/package-info.java | 29 ++ .../resourcemanager/webapp/RMWebServices.java | 66 ++- .../resourcemanager/TestRMAdminService.java | 23 + .../TestConfigurationMutationACLPolicies.java | 172 +++ .../capacity/TestCapacityScheduler.java | 4 +- .../conf/ConfigurationStoreBaseTest.java| 92 .../conf/TestInMemoryConfigurationStore.java| 30 ++ .../conf/TestLeveldbConfigurationStore.java | 211 .../TestMutableCSConfigurationProvider.java | 102 .../capacity/conf/TestZKConfigurationStore.java | 412 +++ .../TestRMWebServicesConfigurationMutation.java | 507 +++ .../src/site/markdown/CapacityScheduler.md | 25 +- .../src/site/markdown/ResourceManagerRest.md| 188 +++ .../src/site/markdown/YarnCommands.md | 13 + 45 files changed, 4338 insertions(+), 48 deletions(-) -- - To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-commits-h...@hadoop.apache.org
[17/18] hadoop git commit: YARN-7046. Add closing logic to configuration store
YARN-7046. Add closing logic to configuration store Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/d6622daa Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/d6622daa Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/d6622daa Branch: refs/heads/trunk Commit: d6622daaa3c95a5040d06f91dc0c793bafa70f95 Parents: ff39c0d Author: Jonathan HungAuthored: Fri Sep 22 10:18:27 2017 -0700 Committer: Jonathan Hung Committed: Mon Oct 9 11:11:23 2017 -0700 -- .../scheduler/MutableConfigurationProvider.java | 8 + .../scheduler/capacity/CapacityScheduler.java | 3 + .../conf/LeveldbConfigurationStore.java | 44 ++-- .../conf/MutableCSConfigurationProvider.java| 6 + .../capacity/conf/YarnConfigurationStore.java | 6 + .../conf/ConfigurationStoreBaseTest.java| 2 + .../conf/TestLeveldbConfigurationStore.java | 213 +++ 7 files changed, 270 insertions(+), 12 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/d6622daa/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/MutableConfigurationProvider.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/MutableConfigurationProvider.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/MutableConfigurationProvider.java index f8e8814..2b9b25a 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/MutableConfigurationProvider.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/MutableConfigurationProvider.java @@ -21,6 +21,8 @@ package org.apache.hadoop.yarn.server.resourcemanager.scheduler; import org.apache.hadoop.security.UserGroupInformation; import org.apache.hadoop.yarn.webapp.dao.SchedConfUpdateInfo; +import java.io.IOException; + /** * Interface for allowing changing scheduler configurations. */ @@ -55,4 +57,10 @@ public interface MutableConfigurationProvider { * @throws Exception if confirming mutation fails */ void confirmPendingMutation(boolean isValid) throws Exception; + + /** + * Closes the configuration provider, releasing any required resources. + * @throws IOException on failure to close + */ + void close() throws IOException; } http://git-wip-us.apache.org/repos/asf/hadoop/blob/d6622daa/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacityScheduler.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacityScheduler.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacityScheduler.java index 16b27c1..de95179 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacityScheduler.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacityScheduler.java @@ -411,6 +411,9 @@ public class CapacityScheduler extends writeLock.unlock(); } +if (isConfigurationMutable()) { + ((MutableConfigurationProvider) csConfProvider).close(); +} super.serviceStop(); } http://git-wip-us.apache.org/repos/asf/hadoop/blob/d6622daa/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/conf/LeveldbConfigurationStore.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/conf/LeveldbConfigurationStore.java
[16/18] hadoop git commit: YARN-7238. Documentation for API based scheduler configuration management
YARN-7238. Documentation for API based scheduler configuration management Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/a3075de9 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/a3075de9 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/a3075de9 Branch: refs/heads/trunk Commit: a3075de9ab2fc9a97debaab6fc838ea07b1cc77e Parents: d6622da Author: Jonathan HungAuthored: Mon Sep 25 17:47:32 2017 -0700 Committer: Jonathan Hung Committed: Mon Oct 9 11:11:23 2017 -0700 -- .../src/site/markdown/CapacityScheduler.md | 24 ++- .../src/site/markdown/ResourceManagerRest.md| 186 +++ .../src/site/markdown/YarnCommands.md | 13 ++ 3 files changed, 221 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/a3075de9/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/markdown/CapacityScheduler.md -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/markdown/CapacityScheduler.md b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/markdown/CapacityScheduler.md index 6bb8489..d70f891 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/markdown/CapacityScheduler.md +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/markdown/CapacityScheduler.md @@ -295,9 +295,29 @@ The `ReservationSystem` is integrated with the `CapacityScheduler` queue hierach Changing Queue Configuration -Changing queue properties and adding new queues is very simple. You need to edit **conf/capacity-scheduler.xml** and run *yarn rmadmin -refreshQueues*. +Changing queue/scheduler properties and adding/removing queues can be done in two ways, via file or via API. + +### Changing queue configuration via file + + To edit by file, you need to edit **conf/capacity-scheduler.xml** and run *yarn rmadmin -refreshQueues*. $ vi $HADOOP_CONF_DIR/capacity-scheduler.xml $ $HADOOP_YARN_HOME/bin/yarn rmadmin -refreshQueues -**Note:** Queues cannot be *deleted*, only addition of new queues is supported - the updated queue configuration should be a valid one i.e. queue-capacity at each *level* should be equal to 100%. +### Changing queue configuration via API + + Editing by API uses a backing store for the scheduler configuration. To enable this, the following parameters can be configured in yarn-site.xml. + + | Property | Description | + |: |: | + | `yarn.scheduler.capacity.configuration.provider` | The type of configuration provider to use for capacity scheduler. To enable changing queue configuration via API, this should be set to *store*. Default value is *file*, which disables the API and reverts back to changing queue configuration via file. | + | `yarn.scheduler.configuration.store.class` | The type of backing store to use. Default value is *memory*, which stores the scheduler configuration in memory (and does not persist configuration changes across restarts). Other values are *leveldb* (using a leveldb-based implementation), and *zk* (using a zookeeper-based implementation). | + | `yarn.scheduler.configuration.mutation.acl-policy.class` | An ACL policy can be configured to restrict which users can modify which queues. Default value is *org.apache.hadoop.yarn.server.resourcemanager.scheduler.DefaultConfigurationMutationACLPolicy*, which only allows YARN admins to make any configuration modifications. Another value is *org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.conf.QueueAdminConfigurationMutationACLPolicy*, which only allows queue modifications if the caller is an admin of the queue. | + | `yarn.scheduler.configuration.store.max-logs` | Configuration changes are audit logged in the backing store, if using leveldb or zookeeper. This configuration controls the maximum number of audit logs to store, dropping the oldest logs when exceeded. Default is 1000. | + | `yarn.scheduler.configuration.leveldb-store.path` | The storage path of the configuration store when using leveldb. Default value is *${hadoop.tmp.dir}/yarn/system/confstore*. | + | `yarn.scheduler.configuration.leveldb-store.compaction-interval-secs` | The interval for compacting the configuration store in seconds, when using leveldb. Default value is 86400, or one day. | + | `yarn.scheduler.configuration.zk-store.parent-path` | The zookeeper root node path for configuration store related information, when using zookeeper. Default value is */confstore*. | + + **Note:** When enabling backing store for scheduler configuration, *yarn rmadmin -refreshQueues* will be disabled, i.e. it will no longer be possible to update
[12/18] hadoop git commit: YARN-5953 addendum: Move QueueConfigInfo and SchedConfUpdateInfo to package org.apache.hadoop.yarn.webapp.dao
YARN-5953 addendum: Move QueueConfigInfo and SchedConfUpdateInfo to package org.apache.hadoop.yarn.webapp.dao Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/04f9e80b Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/04f9e80b Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/04f9e80b Branch: refs/heads/trunk Commit: 04f9e80bb2662c51c2fc53c2edc10c660fd71a9e Parents: 916bdbd Author: XuanAuthored: Mon Jul 31 11:49:05 2017 -0700 Committer: Jonathan Hung Committed: Mon Oct 9 11:11:23 2017 -0700 -- .../hadoop/yarn/webapp/dao/QueueConfigInfo.java | 57 + .../yarn/webapp/dao/SchedConfUpdateInfo.java| 85 .../webapp/dao/QueueConfigInfo.java | 57 - .../webapp/dao/SchedConfUpdateInfo.java | 85 4 files changed, 142 insertions(+), 142 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/04f9e80b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/dao/QueueConfigInfo.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/dao/QueueConfigInfo.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/dao/QueueConfigInfo.java new file mode 100644 index 000..d1d91c2 --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/dao/QueueConfigInfo.java @@ -0,0 +1,57 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.hadoop.yarn.webapp.dao; + +import java.util.HashMap; +import java.util.Map; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlRootElement; + +/** + * Information for adding or updating a queue to scheduler configuration + * for this queue. + */ +@XmlRootElement +@XmlAccessorType(XmlAccessType.FIELD) +public class QueueConfigInfo { + + @XmlElement(name = "queueName") + private String queue; + + private HashMap params = new HashMap<>(); + + public QueueConfigInfo() { } + + public QueueConfigInfo(String queue, Map params) { +this.queue = queue; +this.params = new HashMap<>(params); + } + + public String getQueue() { +return this.queue; + } + + public HashMap getParams() { +return this.params; + } + +} http://git-wip-us.apache.org/repos/asf/hadoop/blob/04f9e80b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/dao/SchedConfUpdateInfo.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/dao/SchedConfUpdateInfo.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/dao/SchedConfUpdateInfo.java new file mode 100644 index 000..bb84096 --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/dao/SchedConfUpdateInfo.java @@ -0,0 +1,85 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
[07/18] hadoop git commit: YARN-6840. Implement zookeeper based store for scheduler configuration updates. (Jonathan Hung via wangda)
http://git-wip-us.apache.org/repos/asf/hadoop/blob/ff39c0de/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/conf/TestZKConfigurationStore.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/conf/TestZKConfigurationStore.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/conf/TestZKConfigurationStore.java new file mode 100644 index 000..3cfa8da --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/conf/TestZKConfigurationStore.java @@ -0,0 +1,312 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.conf; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.apache.curator.framework.CuratorFramework; +import org.apache.curator.framework.CuratorFrameworkFactory; +import org.apache.curator.retry.RetryNTimes; +import org.apache.curator.test.TestingServer; +import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.fs.CommonConfigurationKeys; +import org.apache.hadoop.ha.HAServiceProtocol; +import org.apache.hadoop.security.UserGroupInformation; +import org.apache.hadoop.service.Service; +import org.apache.hadoop.yarn.conf.HAUtil; +import org.apache.hadoop.yarn.conf.YarnConfiguration; +import org.apache.hadoop.yarn.server.resourcemanager.MockRM; +import org.apache.hadoop.yarn.server.resourcemanager.ResourceManager; +import org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore; +import org.apache.hadoop.yarn.server.resourcemanager.scheduler.MutableConfScheduler; +import org.apache.hadoop.yarn.server.resourcemanager.scheduler.MutableConfigurationProvider; +import org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler; +import org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacitySchedulerConfiguration; +import org.apache.hadoop.yarn.webapp.dao.SchedConfUpdateInfo; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +import java.io.IOException; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.Map; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; + +/** + * Tests {@link ZKConfigurationStore}. + */ +public class TestZKConfigurationStore extends ConfigurationStoreBaseTest { + + public static final Log LOG = + LogFactory.getLog(TestZKConfigurationStore.class); + + private static final int ZK_TIMEOUT_MS = 1; + private TestingServer curatorTestingServer; + private CuratorFramework curatorFramework; + private ResourceManager rm; + + public static TestingServer setupCuratorServer() throws Exception { +TestingServer curatorTestingServer = new TestingServer(); +curatorTestingServer.start(); +return curatorTestingServer; + } + + public static CuratorFramework setupCuratorFramework( + TestingServer curatorTestingServer) throws Exception { +CuratorFramework curatorFramework = CuratorFrameworkFactory.builder() +.connectString(curatorTestingServer.getConnectString()) +.retryPolicy(new RetryNTimes(100, 100)) +.build(); +curatorFramework.start(); +return curatorFramework; + } + + @Before + public void setUp() throws Exception { +super.setUp(); +curatorTestingServer = setupCuratorServer(); +curatorFramework = setupCuratorFramework(curatorTestingServer); + +conf.set(CommonConfigurationKeys.ZK_ADDRESS, +curatorTestingServer.getConnectString()); +rm = new MockRM(conf); +rm.start(); +rmContext = rm.getRMContext(); + } + + @After + public void cleanup() throws IOException { +rm.stop(); +
[11/18] hadoop git commit: YARN-5953:Create CLI for changing YARN configurations. (Jonathan Hung via xgong)
YARN-5953:Create CLI for changing YARN configurations. (Jonathan Hung via xgong) Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/916bdbd6 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/916bdbd6 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/916bdbd6 Branch: refs/heads/trunk Commit: 916bdbd6bedbc75000bb74e16c1e2ee692a4912c Parents: e566fd8 Author: Xuan <xg...@apache.org> Authored: Fri Jul 7 14:16:46 2017 -0700 Committer: Jonathan Hung <jh...@linkedin.com> Committed: Mon Oct 9 11:11:23 2017 -0700 -- hadoop-yarn-project/hadoop-yarn/bin/yarn| 3 + hadoop-yarn-project/hadoop-yarn/bin/yarn.cmd| 5 + .../hadoop/yarn/client/cli/SchedConfCLI.java| 238 +++ .../yarn/client/cli/TestSchedConfCLI.java | 160 + .../hadoop/yarn/webapp/dao/package-info.java| 27 +++ .../yarn/webapp/util/YarnWebServiceUtils.java | 14 ++ .../ConfigurationMutationACLPolicy.java | 2 +- .../DefaultConfigurationMutationACLPolicy.java | 2 +- .../scheduler/MutableConfScheduler.java | 2 +- .../scheduler/MutableConfigurationProvider.java | 2 +- .../scheduler/capacity/CapacityScheduler.java | 2 +- .../conf/MutableCSConfigurationProvider.java| 4 +- ...ueueAdminConfigurationMutationACLPolicy.java | 4 +- .../resourcemanager/webapp/RMWebServices.java | 1 + .../webapp/dao/QueueConfigInfo.java | 4 +- .../webapp/dao/SchedConfUpdateInfo.java | 18 +- .../TestConfigurationMutationACLPolicies.java | 4 +- .../TestMutableCSConfigurationProvider.java | 4 +- .../TestRMWebServicesConfigurationMutation.java | 65 +++-- 19 files changed, 507 insertions(+), 54 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/916bdbd6/hadoop-yarn-project/hadoop-yarn/bin/yarn -- diff --git a/hadoop-yarn-project/hadoop-yarn/bin/yarn b/hadoop-yarn-project/hadoop-yarn/bin/yarn index 52138c5..0063596 100755 --- a/hadoop-yarn-project/hadoop-yarn/bin/yarn +++ b/hadoop-yarn-project/hadoop-yarn/bin/yarn @@ -142,6 +142,9 @@ function yarncmd_case HADOOP_SUBCMD_SUPPORTDAEMONIZATION="true" HADOOP_CLASSNAME='org.apache.hadoop.yarn.server.router.Router' ;; +schedconf) +HADOOP_CLASSNAME='org.apache.hadoop.yarn.client.cli.SchedConfCLI' +;; scmadmin) HADOOP_CLASSNAME='org.apache.hadoop.yarn.client.SCMAdmin' ;; http://git-wip-us.apache.org/repos/asf/hadoop/blob/916bdbd6/hadoop-yarn-project/hadoop-yarn/bin/yarn.cmd -- diff --git a/hadoop-yarn-project/hadoop-yarn/bin/yarn.cmd b/hadoop-yarn-project/hadoop-yarn/bin/yarn.cmd index 690badf..7ec9848 100644 --- a/hadoop-yarn-project/hadoop-yarn/bin/yarn.cmd +++ b/hadoop-yarn-project/hadoop-yarn/bin/yarn.cmd @@ -295,6 +295,11 @@ goto :eof set YARN_OPTS=%YARN_OPTS% %YARN_CLIENT_OPTS% goto :eof +:schedconf + set CLASS=org.apache.hadoop.yarn.client.cli.SchedConfCLI + set YARN_OPTS=%YARN_OPTS% %YARN_CLIENT_OPTS% + goto :eof + @rem This changes %1, %2 etc. Hence those cannot be used after calling this. :make_command_arguments if "%1" == "--config" ( http://git-wip-us.apache.org/repos/asf/hadoop/blob/916bdbd6/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/SchedConfCLI.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/SchedConfCLI.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/SchedConfCLI.java new file mode 100644 index 000..e17062e --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/SchedConfCLI.java @@ -0,0 +1,238 @@ +/** +* Licensed to the Apache Software Foundation (ASF) under one +* or more contributor license agreements. See the NOTICE file +* distributed with this work for additional information +* regarding copyright ownership. The ASF licenses this file +* to you under the Apache License, Version 2.0 (the +* "License"); you may not use this file except in compliance +* with the License. You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing pe
[15/18] hadoop git commit: YARN-7252. Removing queue then failing over results in exception
YARN-7252. Removing queue then failing over results in exception Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/1d36b53a Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/1d36b53a Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/1d36b53a Branch: refs/heads/trunk Commit: 1d36b53ab6d9bb1d9144101e424c24371343c5bf Parents: 09c5dfe Author: Jonathan HungAuthored: Tue Sep 26 11:41:05 2017 -0700 Committer: Jonathan Hung Committed: Mon Oct 9 11:11:23 2017 -0700 -- .../capacity/CapacitySchedulerContext.java | 6 ++ .../capacity/CapacitySchedulerQueueManager.java | 11 +- .../capacity/conf/TestZKConfigurationStore.java | 102 +++ 3 files changed, 117 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/1d36b53a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacitySchedulerContext.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacitySchedulerContext.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacitySchedulerContext.java index 9aeaec6..7c918a5 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacitySchedulerContext.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacitySchedulerContext.java @@ -88,4 +88,10 @@ public interface CapacitySchedulerContext { * @return Max Cluster level App priority. */ Priority getMaxClusterLevelAppPriority(); + + /** + * Returns if configuration is mutable. + * @return if configuration is mutable + */ + boolean isConfigurationMutable(); } http://git-wip-us.apache.org/repos/asf/hadoop/blob/1d36b53a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacitySchedulerQueueManager.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacitySchedulerQueueManager.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacitySchedulerQueueManager.java index 1ceb6fb..48c289f 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacitySchedulerQueueManager.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacitySchedulerQueueManager.java @@ -33,6 +33,7 @@ import org.apache.commons.logging.LogFactory; import org.apache.hadoop.classification.InterfaceAudience.Private; import org.apache.hadoop.classification.InterfaceStability.Unstable; import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.ha.HAServiceProtocol; import org.apache.hadoop.security.UserGroupInformation; import org.apache.hadoop.yarn.api.records.Priority; import org.apache.hadoop.yarn.api.records.QueueState; @@ -170,8 +171,14 @@ public class CapacitySchedulerQueueManager implements SchedulerQueueManager< CSQueue newRoot = parseQueue(this.csContext, newConf, null, CapacitySchedulerConfiguration.ROOT, newQueues, queues, NOOP); -// Ensure queue hiearchy in the new XML file is proper. -validateQueueHierarchy(queues, newQueues); +// When failing over, if using configuration store, don't validate queue +// hierarchy since queues can be removed without being STOPPED. +if (!csContext.isConfigurationMutable() || +csContext.getRMContext().getHAServiceState() +!= HAServiceProtocol.HAServiceState.STANDBY) { + // Ensure queue hiearchy in the new XML file is proper. + validateQueueHierarchy(queues, newQueues); +} // Add new queues and delete OldQeueus only after validation. updateQueues(queues, newQueues);
[14/18] hadoop git commit: YARN-6322: Disable queue refresh when configuration mutation is enabled. Contributed by Jonathan Hung
YARN-6322: Disable queue refresh when configuration mutation is enabled. Contributed by Jonathan Hung Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/4c8b208a Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/4c8b208a Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/4c8b208a Branch: refs/heads/trunk Commit: 4c8b208adb8c7639628676387e275856cf0842c9 Parents: 74ba6ff Author: XuanAuthored: Tue Aug 1 08:48:04 2017 -0700 Committer: Jonathan Hung Committed: Mon Oct 9 11:11:23 2017 -0700 -- .../server/resourcemanager/AdminService.java| 12 +- .../scheduler/MutableConfScheduler.java | 12 -- .../scheduler/MutableConfigurationProvider.java | 4 +++- .../scheduler/capacity/CapacityScheduler.java | 9 ++-- .../conf/MutableCSConfigurationProvider.java| 11 +- .../resourcemanager/TestRMAdminService.java | 23 .../TestMutableCSConfigurationProvider.java | 14 +++- 7 files changed, 67 insertions(+), 18 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/4c8b208a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/AdminService.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/AdminService.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/AdminService.java index 3457ae3..fd9e849 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/AdminService.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/AdminService.java @@ -29,6 +29,7 @@ import java.util.Set; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.apache.hadoop.classification.InterfaceAudience.Private; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.CommonConfigurationKeysPublic; import org.apache.hadoop.ha.HAServiceProtocol; @@ -92,6 +93,8 @@ import org.apache.hadoop.yarn.server.resourcemanager.reservation.ReservationSyst import org.apache.hadoop.yarn.server.resourcemanager.resource.DynamicResourceConfiguration; import org.apache.hadoop.yarn.server.resourcemanager.rmnode.RMNode; import org.apache.hadoop.yarn.server.resourcemanager.rmnode.RMNodeResourceUpdateEvent; +import org.apache.hadoop.yarn.server.resourcemanager.scheduler.MutableConfScheduler; +import org.apache.hadoop.yarn.server.resourcemanager.scheduler.ResourceScheduler; import org.apache.hadoop.yarn.server.resourcemanager.security.authorize.RMPolicyProvider; import com.google.common.annotations.VisibleForTesting; @@ -384,6 +387,12 @@ public class AdminService extends CompositeService implements RefreshQueuesResponse response = recordFactory.newRecordInstance(RefreshQueuesResponse.class); try { + ResourceScheduler scheduler = rm.getRMContext().getScheduler(); + if (scheduler instanceof MutableConfScheduler + && ((MutableConfScheduler) scheduler).isConfigurationMutable()) { +throw new IOException("Scheduler configuration is mutable. " + +operation + " is not allowed in this scenario."); + } refreshQueues(); RMAuditLogger.logSuccess(user.getShortUserName(), operation, "AdminService"); @@ -393,7 +402,8 @@ public class AdminService extends CompositeService implements } } - private void refreshQueues() throws IOException, YarnException { + @Private + public void refreshQueues() throws IOException, YarnException { rm.getRMContext().getScheduler().reinitialize(getConfig(), this.rm.getRMContext()); // refresh the reservation system http://git-wip-us.apache.org/repos/asf/hadoop/blob/4c8b208a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/MutableConfScheduler.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/MutableConfScheduler.java
[09/18] hadoop git commit: YARN-6575. Support global configuration mutation in MutableConfProvider. (Jonathan Hung via Xuan Gong)
YARN-6575. Support global configuration mutation in MutableConfProvider. (Jonathan Hung via Xuan Gong) Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/e566fd8b Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/e566fd8b Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/e566fd8b Branch: refs/heads/trunk Commit: e566fd8b58a6570593b21597aa5294d7b37cb388 Parents: a4e6253 Author: XuanAuthored: Mon Jun 5 16:30:38 2017 -0700 Committer: Jonathan Hung Committed: Mon Oct 9 11:11:23 2017 -0700 -- .../ConfigurationMutationACLPolicy.java | 4 +- .../DefaultConfigurationMutationACLPolicy.java | 4 +- .../scheduler/MutableConfScheduler.java | 4 +- .../scheduler/MutableConfigurationProvider.java | 4 +- .../scheduler/capacity/CapacityScheduler.java | 4 +- .../conf/MutableCSConfigurationProvider.java| 10 +- ...ueueAdminConfigurationMutationACLPolicy.java | 22 +++- .../resourcemanager/webapp/RMWebServices.java | 4 +- .../webapp/dao/QueueConfigsUpdateInfo.java | 60 --- .../webapp/dao/SchedConfUpdateInfo.java | 69 + .../TestConfigurationMutationACLPolicies.java | 28 - .../TestMutableCSConfigurationProvider.java | 10 +- .../TestRMWebServicesConfigurationMutation.java | 101 +-- 13 files changed, 205 insertions(+), 119 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/e566fd8b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/ConfigurationMutationACLPolicy.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/ConfigurationMutationACLPolicy.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/ConfigurationMutationACLPolicy.java index 724487b..3a388fe 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/ConfigurationMutationACLPolicy.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/ConfigurationMutationACLPolicy.java @@ -21,7 +21,7 @@ package org.apache.hadoop.yarn.server.resourcemanager.scheduler; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.security.UserGroupInformation; import org.apache.hadoop.yarn.server.resourcemanager.RMContext; -import org.apache.hadoop.yarn.server.resourcemanager.webapp.dao.QueueConfigsUpdateInfo; +import org.apache.hadoop.yarn.server.resourcemanager.webapp.dao.SchedConfUpdateInfo; /** * Interface for determining whether configuration mutations are allowed. @@ -41,7 +41,7 @@ public interface ConfigurationMutationACLPolicy { * @param confUpdate configurations to be updated * @return whether provided mutation is allowed or not */ - boolean isMutationAllowed(UserGroupInformation user, QueueConfigsUpdateInfo + boolean isMutationAllowed(UserGroupInformation user, SchedConfUpdateInfo confUpdate); } http://git-wip-us.apache.org/repos/asf/hadoop/blob/e566fd8b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/DefaultConfigurationMutationACLPolicy.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/DefaultConfigurationMutationACLPolicy.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/DefaultConfigurationMutationACLPolicy.java index 680c3b8..6648668 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/DefaultConfigurationMutationACLPolicy.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/DefaultConfigurationMutationACLPolicy.java @@ -22,7 +22,7 @@ import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.security.UserGroupInformation; import
[01/18] hadoop git commit: YARN-5951. Changes to allow CapacityScheduler to use configuration store
Repository: hadoop Updated Branches: refs/heads/trunk 793820823 -> f9ff17f51 YARN-5951. Changes to allow CapacityScheduler to use configuration store Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/ef59cbe0 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/ef59cbe0 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/ef59cbe0 Branch: refs/heads/trunk Commit: ef59cbe08aabe9844159cb4192d6345e4e3caab2 Parents: 09ad848 Author: Jonathan HungAuthored: Mon Jan 30 19:03:48 2017 -0800 Committer: Jonathan Hung Committed: Mon Oct 9 11:11:22 2017 -0700 -- .../scheduler/capacity/CapacityScheduler.java | 37 +-- .../CapacitySchedulerConfiguration.java | 9 +++ .../capacity/conf/CSConfigurationProvider.java | 46 ++ .../conf/FileBasedCSConfigurationProvider.java | 67 .../scheduler/capacity/conf/package-info.java | 29 + .../capacity/TestCapacityScheduler.java | 4 +- 6 files changed, 170 insertions(+), 22 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/ef59cbe0/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacityScheduler.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacityScheduler.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacityScheduler.java index 7f50272..e74cbe1 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacityScheduler.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacityScheduler.java @@ -19,7 +19,6 @@ package org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity; import java.io.IOException; -import java.io.InputStream; import java.util.ArrayList; import java.util.Collection; import java.util.EnumSet; @@ -103,6 +102,8 @@ import org.apache.hadoop.yarn.server.resourcemanager.scheduler.activities.Activi import org.apache.hadoop.yarn.server.resourcemanager.scheduler.activities.ActivityDiagnosticConstant; import org.apache.hadoop.yarn.server.resourcemanager.scheduler.activities.ActivityState; import org.apache.hadoop.yarn.server.resourcemanager.scheduler.activities.AllocationState; +import org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.conf.CSConfigurationProvider; +import org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.conf.FileBasedCSConfigurationProvider; import org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.preemption.KillableContainer; import org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.preemption.PreemptionManager; import org.apache.hadoop.yarn.server.resourcemanager.scheduler.common.AssignmentInformation; @@ -167,6 +168,8 @@ public class CapacityScheduler extends private int maxAssignPerHeartbeat; + private CSConfigurationProvider csConfProvider; + @Override public void setConf(Configuration conf) { yarnConf = conf; @@ -289,7 +292,18 @@ public class CapacityScheduler extends IOException { try { writeLock.lock(); - this.conf = loadCapacitySchedulerConfiguration(configuration); + String confProviderStr = configuration.get( + CapacitySchedulerConfiguration.CS_CONF_PROVIDER, + CapacitySchedulerConfiguration.DEFAULT_CS_CONF_PROVIDER); + if (confProviderStr.equals( + CapacitySchedulerConfiguration.FILE_CS_CONF_PROVIDER)) { +this.csConfProvider = new FileBasedCSConfigurationProvider(rmContext); + } else { +throw new IOException("Invalid CS configuration provider: " + +confProviderStr); + } + this.csConfProvider.init(configuration); + this.conf = this.csConfProvider.loadConfiguration(configuration); validateConf(this.conf); this.minimumAllocation = super.getMinimumAllocation(); initMaximumResourceCapability(super.getMaximumAllocation()); @@ -399,7 +413,7 @@ public class CapacityScheduler extends writeLock.lock(); Configuration configuration = new Configuration(newConf); CapacitySchedulerConfiguration oldConf = this.conf; - this.conf =
[05/18] hadoop git commit: YARN-5946: Create YarnConfigurationStore interface and InMemoryConfigurationStore class. Contributed by Jonathan Hung
YARN-5946: Create YarnConfigurationStore interface and InMemoryConfigurationStore class. Contributed by Jonathan Hung Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/e3579a8c Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/e3579a8c Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/e3579a8c Branch: refs/heads/trunk Commit: e3579a8c3b1dc58a38859b189973be5a2d23f730 Parents: ef59cbe Author: XuanAuthored: Fri Feb 24 15:58:12 2017 -0800 Committer: Jonathan Hung Committed: Mon Oct 9 11:11:23 2017 -0700 -- .../conf/InMemoryConfigurationStore.java| 86 +++ .../capacity/conf/YarnConfigurationStore.java | 154 +++ .../conf/TestYarnConfigurationStore.java| 70 + 3 files changed, 310 insertions(+) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/e3579a8c/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/conf/InMemoryConfigurationStore.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/conf/InMemoryConfigurationStore.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/conf/InMemoryConfigurationStore.java new file mode 100644 index 000..a208fb9 --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/conf/InMemoryConfigurationStore.java @@ -0,0 +1,86 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.conf; + +import org.apache.hadoop.conf.Configuration; + +import java.util.LinkedList; +import java.util.List; +import java.util.Map; + +/** + * A default implementation of {@link YarnConfigurationStore}. Doesn't offer + * persistent configuration storage, just stores the configuration in memory. + */ +public class InMemoryConfigurationStore implements YarnConfigurationStore { + + private Configuration schedConf; + private LinkedList pendingMutations; + private long pendingId; + + @Override + public void initialize(Configuration conf, Configuration schedConf) { +this.schedConf = schedConf; +this.pendingMutations = new LinkedList<>(); +this.pendingId = 0; + } + + @Override + public synchronized long logMutation(LogMutation logMutation) { +logMutation.setId(++pendingId); +pendingMutations.add(logMutation); +return pendingId; + } + + @Override + public synchronized boolean confirmMutation(long id, boolean isValid) { +LogMutation mutation = pendingMutations.poll(); +// If confirmMutation is called out of order, discard mutations until id +// is reached. +while (mutation != null) { + if (mutation.getId() == id) { +if (isValid) { + Map mutations = mutation.getUpdates(); + for (Map.Entry kv : mutations.entrySet()) { +schedConf.set(kv.getKey(), kv.getValue()); + } +} +return true; + } + mutation = pendingMutations.poll(); +} +return false; + } + + @Override + public synchronized Configuration retrieve() { +return schedConf; + } + + @Override + public synchronized List getPendingMutations() { +return pendingMutations; + } + + @Override + public List getConfirmedConfHistory(long fromId) { +// Unimplemented. +return null; + } +}
[13/18] hadoop git commit: YARN-5947: Create LeveldbConfigurationStore class using Leveldb as backing store. Contributed by Jonathan Hung
YARN-5947: Create LeveldbConfigurationStore class using Leveldb as backing store. Contributed by Jonathan Hung Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/74ba6ffa Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/74ba6ffa Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/74ba6ffa Branch: refs/heads/trunk Commit: 74ba6ffa0b601badc68366685dcf993a0844520a Parents: 04f9e80 Author: XuanAuthored: Mon Jul 31 16:48:40 2017 -0700 Committer: Jonathan Hung Committed: Mon Oct 9 11:11:23 2017 -0700 -- .../hadoop/yarn/conf/YarnConfiguration.java | 13 + .../src/main/resources/yarn-default.xml | 29 ++ .../scheduler/MutableConfigurationProvider.java | 6 + .../scheduler/capacity/CapacityScheduler.java | 3 + .../conf/LeveldbConfigurationStore.java | 314 +++ .../conf/MutableCSConfigurationProvider.java| 38 ++- .../capacity/conf/YarnConfigurationStore.java | 14 +- .../conf/TestYarnConfigurationStore.java| 3 +- 8 files changed, 414 insertions(+), 6 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/74ba6ffa/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java index b603135..ea8652d 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java @@ -677,8 +677,21 @@ public class YarnConfiguration extends Configuration { public static final String SCHEDULER_CONFIGURATION_STORE_CLASS = YARN_PREFIX + "scheduler.configuration.store.class"; public static final String MEMORY_CONFIGURATION_STORE = "memory"; + public static final String LEVELDB_CONFIGURATION_STORE = "leveldb"; public static final String DEFAULT_CONFIGURATION_STORE = MEMORY_CONFIGURATION_STORE; + public static final String RM_SCHEDCONF_STORE_PATH = YARN_PREFIX + + "scheduler.configuration.leveldb-store.path"; + + public static final String RM_SCHEDCONF_LEVELDB_COMPACTION_INTERVAL_SECS = + YARN_PREFIX + + "scheduler.configuration.leveldb-store.compaction-interval-secs"; + public static final long + DEFAULT_RM_SCHEDCONF_LEVELDB_COMPACTION_INTERVAL_SECS = 60 * 60 * 24L; + + public static final String RM_SCHEDCONF_LEVELDB_MAX_LOGS = + YARN_PREFIX + "scheduler.configuration.leveldb-store.max-logs"; + public static final int DEFAULT_RM_SCHEDCONF_LEVELDB_MAX_LOGS = 1000; public static final String RM_SCHEDULER_MUTATION_ACL_POLICY_CLASS = YARN_PREFIX + "scheduler.configuration.mutation.acl-policy.class"; http://git-wip-us.apache.org/repos/asf/hadoop/blob/74ba6ffa/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml index e124c5b..5afec1b 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml @@ -3390,4 +3390,33 @@ org.apache.hadoop.yarn.server.resourcemanager.scheduler.DefaultConfigurationMutationACLPolicy + + + The storage path for LevelDB implementation of configuration store, + when yarn.scheduler.configuration.store.class is configured to be + "leveldb". + +yarn.scheduler.configuration.leveldb-store.path +${hadoop.tmp.dir}/yarn/system/confstore + + + + + The compaction interval for LevelDB configuration store in secs, + when yarn.scheduler.configuration.store.class is configured to be + "leveldb". Default is one day. + + yarn.scheduler.configuration.leveldb-store.compaction-interval-secs +86400 + + + + + The max number of configuration change log entries kept in LevelDB config + store, when yarn.scheduler.configuration.store.class is configured to be + "leveldb". Default is 1000. + +yarn.scheduler.configuration.leveldb-store.max-logs +1000 +
[10/18] hadoop git commit: YARN-5949. Add pluggable configuration ACL policy interface and implementation. (Jonathan Hung via wangda)
YARN-5949. Add pluggable configuration ACL policy interface and implementation. (Jonathan Hung via wangda) Change-Id: Ib98e82ff753bede21fcab2e6ca9ec1e7a5a2008f Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/a4e62530 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/a4e62530 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/a4e62530 Branch: refs/heads/trunk Commit: a4e62530469e4c3d5b339a06adeac2146fc15fa5 Parents: d8a5136 Author: Wangda TanAuthored: Mon May 22 13:38:31 2017 -0700 Committer: Jonathan Hung Committed: Mon Oct 9 11:11:23 2017 -0700 -- .../hadoop/yarn/conf/YarnConfiguration.java | 3 + .../src/main/resources/yarn-default.xml | 11 ++ .../ConfigurationMutationACLPolicy.java | 47 ++ .../ConfigurationMutationACLPolicyFactory.java | 49 ++ .../DefaultConfigurationMutationACLPolicy.java | 45 ++ .../scheduler/MutableConfScheduler.java | 19 ++- .../scheduler/MutableConfigurationProvider.java | 8 +- .../scheduler/capacity/CapacityScheduler.java | 6 +- .../conf/MutableCSConfigurationProvider.java| 151 +- ...ueueAdminConfigurationMutationACLPolicy.java | 96 .../resourcemanager/webapp/RMWebServices.java | 131 +--- .../TestConfigurationMutationACLPolicies.java | 154 +++ .../TestMutableCSConfigurationProvider.java | 40 +++-- 13 files changed, 610 insertions(+), 150 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/a4e62530/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java index 92b9697..b603135 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java @@ -680,6 +680,9 @@ public class YarnConfiguration extends Configuration { public static final String DEFAULT_CONFIGURATION_STORE = MEMORY_CONFIGURATION_STORE; + public static final String RM_SCHEDULER_MUTATION_ACL_POLICY_CLASS = + YARN_PREFIX + "scheduler.configuration.mutation.acl-policy.class"; + public static final String YARN_AUTHORIZATION_PROVIDER = YARN_PREFIX + "authorization-provider"; private static final List RM_SERVICES_ADDRESS_CONF_KEYS_HTTP = http://git-wip-us.apache.org/repos/asf/hadoop/blob/a4e62530/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml index 73f4717..e124c5b 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml @@ -3379,4 +3379,15 @@ memory + + + The class to use for configuration mutation ACL policy if using a mutable + configuration provider. Controls whether a mutation request is allowed. + The DefaultConfigurationMutationACLPolicy checks if the requestor is a + YARN admin. + +yarn.scheduler.configuration.mutation.acl-policy.class + org.apache.hadoop.yarn.server.resourcemanager.scheduler.DefaultConfigurationMutationACLPolicy + + http://git-wip-us.apache.org/repos/asf/hadoop/blob/a4e62530/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/ConfigurationMutationACLPolicy.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/ConfigurationMutationACLPolicy.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/ConfigurationMutationACLPolicy.java new file mode 100644 index 000..724487b --- /dev/null +++
[02/18] hadoop git commit: YARN-7251. Misc changes to YARN-5734
YARN-7251. Misc changes to YARN-5734 Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/09c5dfe9 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/09c5dfe9 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/09c5dfe9 Branch: refs/heads/trunk Commit: 09c5dfe937f0570cd9494b34d210df2d5f0737a7 Parents: a3075de Author: Jonathan HungAuthored: Mon Sep 25 17:52:40 2017 -0700 Committer: Jonathan Hung Committed: Mon Oct 9 11:11:23 2017 -0700 -- hadoop-yarn-project/hadoop-yarn/bin/yarn| 3 +- hadoop-yarn-project/hadoop-yarn/bin/yarn.cmd| 3 +- .../hadoop/yarn/conf/YarnConfiguration.java | 33 ++- .../hadoop/yarn/client/cli/SchedConfCLI.java| 42 ++-- .../yarn/client/cli/TestSchedConfCLI.java | 20 +- .../hadoop/yarn/webapp/dao/QueueConfigInfo.java | 2 +- .../yarn/webapp/dao/SchedConfUpdateInfo.java| 2 +- .../src/main/resources/yarn-default.xml | 15 --- .../scheduler/capacity/CapacityScheduler.java | 12 +++--- .../CapacitySchedulerConfiguration.java | 12 -- .../conf/MutableCSConfigurationProvider.java| 2 +- .../resourcemanager/webapp/RMWebServices.java | 2 +- .../resourcemanager/TestRMAdminService.java | 4 +- .../conf/TestLeveldbConfigurationStore.java | 2 - .../TestMutableCSConfigurationProvider.java | 3 ++ .../capacity/conf/TestZKConfigurationStore.java | 2 - .../TestRMWebServicesConfigurationMutation.java | 28 ++--- .../src/site/markdown/CapacityScheduler.md | 11 ++--- .../src/site/markdown/ResourceManagerRest.md| 40 ++- .../src/site/markdown/YarnCommands.md | 12 +++--- 20 files changed, 146 insertions(+), 104 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/09c5dfe9/hadoop-yarn-project/hadoop-yarn/bin/yarn -- diff --git a/hadoop-yarn-project/hadoop-yarn/bin/yarn b/hadoop-yarn-project/hadoop-yarn/bin/yarn index 0063596..0f19989 100755 --- a/hadoop-yarn-project/hadoop-yarn/bin/yarn +++ b/hadoop-yarn-project/hadoop-yarn/bin/yarn @@ -47,6 +47,7 @@ function hadoop_usage hadoop_add_subcommand "resourcemanager" daemon "run the ResourceManager" hadoop_add_subcommand "rmadmin" admin "admin tools" hadoop_add_subcommand "router" daemon "run the Router daemon" + hadoop_add_subcommand "schedulerconf" client "Updates scheduler configuration" hadoop_add_subcommand "scmadmin" admin "SharedCacheManager admin tools" hadoop_add_subcommand "sharedcachemanager" daemon "run the SharedCacheManager daemon" hadoop_add_subcommand "timelinereader" client "run the timeline reader server" @@ -142,7 +143,7 @@ function yarncmd_case HADOOP_SUBCMD_SUPPORTDAEMONIZATION="true" HADOOP_CLASSNAME='org.apache.hadoop.yarn.server.router.Router' ;; -schedconf) +schedulerconf) HADOOP_CLASSNAME='org.apache.hadoop.yarn.client.cli.SchedConfCLI' ;; scmadmin) http://git-wip-us.apache.org/repos/asf/hadoop/blob/09c5dfe9/hadoop-yarn-project/hadoop-yarn/bin/yarn.cmd -- diff --git a/hadoop-yarn-project/hadoop-yarn/bin/yarn.cmd b/hadoop-yarn-project/hadoop-yarn/bin/yarn.cmd index 7ec9848..fed3d90 100644 --- a/hadoop-yarn-project/hadoop-yarn/bin/yarn.cmd +++ b/hadoop-yarn-project/hadoop-yarn/bin/yarn.cmd @@ -295,7 +295,7 @@ goto :eof set YARN_OPTS=%YARN_OPTS% %YARN_CLIENT_OPTS% goto :eof -:schedconf +:schedulerconf set CLASS=org.apache.hadoop.yarn.client.cli.SchedConfCLI set YARN_OPTS=%YARN_OPTS% %YARN_CLIENT_OPTS% goto :eof @@ -345,6 +345,7 @@ goto :eof @echo node prints node report(s) @echo queueprints queue information @echo logs dump container logs + @echo schedulerconfupdates scheduler configuration @echo classpathprints the class path needed to get the @echoHadoop jar and the required libraries @echo daemonlogget/set the log level for each daemon http://git-wip-us.apache.org/repos/asf/hadoop/blob/09c5dfe9/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java index 8809a7c..ac8ff12 100644 ---
[04/18] hadoop git commit: YARN-5948. Implement MutableConfigurationManager for handling storage into configuration store
YARN-5948. Implement MutableConfigurationManager for handling storage into configuration store Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/ef686635 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/ef686635 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/ef686635 Branch: refs/heads/trunk Commit: ef686635c1aa0cd4bd52ca212a95769f2532aa1a Parents: e3579a8 Author: Jonathan HungAuthored: Wed Mar 1 16:03:01 2017 -0800 Committer: Jonathan Hung Committed: Mon Oct 9 11:11:23 2017 -0700 -- .../hadoop/yarn/conf/YarnConfiguration.java | 6 ++ .../src/main/resources/yarn-default.xml | 12 +++ .../scheduler/MutableConfigurationProvider.java | 35 .../scheduler/capacity/CapacityScheduler.java | 14 ++- .../CapacitySchedulerConfiguration.java | 3 + .../capacity/conf/CSConfigurationProvider.java | 3 +- .../conf/MutableCSConfigurationProvider.java| 94 .../conf/YarnConfigurationStoreFactory.java | 46 ++ .../TestMutableCSConfigurationProvider.java | 83 + 9 files changed, 291 insertions(+), 5 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/ef686635/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java index d99941d..92b9697 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java @@ -674,6 +674,12 @@ public class YarnConfiguration extends Configuration { public static final String DEFAULT_RM_CONFIGURATION_PROVIDER_CLASS = "org.apache.hadoop.yarn.LocalConfigurationProvider"; + public static final String SCHEDULER_CONFIGURATION_STORE_CLASS = + YARN_PREFIX + "scheduler.configuration.store.class"; + public static final String MEMORY_CONFIGURATION_STORE = "memory"; + public static final String DEFAULT_CONFIGURATION_STORE = + MEMORY_CONFIGURATION_STORE; + public static final String YARN_AUTHORIZATION_PROVIDER = YARN_PREFIX + "authorization-provider"; private static final List RM_SERVICES_ADDRESS_CONF_KEYS_HTTP = http://git-wip-us.apache.org/repos/asf/hadoop/blob/ef686635/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml index 2bc2330..73f4717 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml @@ -3367,4 +3367,16 @@ + + + The type of configuration store to use for storing scheduler + configurations, if using a mutable configuration provider. + Keywords such as "memory" map to certain configuration store + implementations. If keyword is not found, try to load this + value as a class. + +yarn.scheduler.configuration.store.class +memory + + http://git-wip-us.apache.org/repos/asf/hadoop/blob/ef686635/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/MutableConfigurationProvider.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/MutableConfigurationProvider.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/MutableConfigurationProvider.java new file mode 100644 index 000..da30a2b --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/MutableConfigurationProvider.java @@ -0,0 +1,35 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed
[08/18] hadoop git commit: YARN-6840. Implement zookeeper based store for scheduler configuration updates. (Jonathan Hung via wangda)
YARN-6840. Implement zookeeper based store for scheduler configuration updates. (Jonathan Hung via wangda) Change-Id: I9debea674fe8c7e4109d4ca136965a1ea4c48bcc Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/ff39c0de Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/ff39c0de Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/ff39c0de Branch: refs/heads/trunk Commit: ff39c0de206a4fce1f0e8a416357a7a8261f8634 Parents: 4d8abd8 Author: Wangda TanAuthored: Mon Sep 18 09:53:42 2017 -0700 Committer: Jonathan Hung Committed: Mon Oct 9 11:11:23 2017 -0700 -- .../hadoop/yarn/conf/YarnConfiguration.java | 14 +- .../src/main/resources/yarn-default.xml | 15 +- .../server/resourcemanager/AdminService.java| 18 +- .../server/resourcemanager/ResourceManager.java | 24 +- .../RMStateVersionIncompatibleException.java| 2 +- .../recovery/ZKRMStateStore.java| 5 +- .../scheduler/MutableConfScheduler.java | 22 +- .../scheduler/MutableConfigurationProvider.java | 36 ++- .../scheduler/capacity/CapacityScheduler.java | 22 +- .../conf/InMemoryConfigurationStore.java| 71 +++-- .../conf/LeveldbConfigurationStore.java | 168 +- .../conf/MutableCSConfigurationProvider.java| 148 + .../capacity/conf/YarnConfigurationStore.java | 132 .../capacity/conf/ZKConfigurationStore.java | 235 ++ .../resourcemanager/webapp/RMWebServices.java | 26 +- .../conf/ConfigurationStoreBaseTest.java| 90 ++ .../conf/TestInMemoryConfigurationStore.java| 30 ++ .../TestMutableCSConfigurationProvider.java | 18 +- .../conf/TestYarnConfigurationStore.java| 71 - .../capacity/conf/TestZKConfigurationStore.java | 312 +++ 20 files changed, 1037 insertions(+), 422 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/ff39c0de/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java index ea8652d..8809a7c 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java @@ -678,6 +678,7 @@ public class YarnConfiguration extends Configuration { YARN_PREFIX + "scheduler.configuration.store.class"; public static final String MEMORY_CONFIGURATION_STORE = "memory"; public static final String LEVELDB_CONFIGURATION_STORE = "leveldb"; + public static final String ZK_CONFIGURATION_STORE = "zk"; public static final String DEFAULT_CONFIGURATION_STORE = MEMORY_CONFIGURATION_STORE; public static final String RM_SCHEDCONF_STORE_PATH = YARN_PREFIX @@ -689,9 +690,16 @@ public class YarnConfiguration extends Configuration { public static final long DEFAULT_RM_SCHEDCONF_LEVELDB_COMPACTION_INTERVAL_SECS = 60 * 60 * 24L; - public static final String RM_SCHEDCONF_LEVELDB_MAX_LOGS = - YARN_PREFIX + "scheduler.configuration.leveldb-store.max-logs"; - public static final int DEFAULT_RM_SCHEDCONF_LEVELDB_MAX_LOGS = 1000; + public static final String RM_SCHEDCONF_MAX_LOGS = + YARN_PREFIX + "scheduler.configuration.store.max-logs"; + public static final long DEFAULT_RM_SCHEDCONF_LEVELDB_MAX_LOGS = 1000; + public static final long DEFAULT_RM_SCHEDCONF_ZK_MAX_LOGS = 1000; + + /** Parent znode path under which ZKConfigurationStore will create znodes. */ + public static final String RM_SCHEDCONF_STORE_ZK_PARENT_PATH = YARN_PREFIX + + "scheduler.configuration.zk-store.parent-path"; + public static final String DEFAULT_RM_SCHEDCONF_STORE_ZK_PARENT_PATH = + "/confstore"; public static final String RM_SCHEDULER_MUTATION_ACL_POLICY_CLASS = YARN_PREFIX + "scheduler.configuration.mutation.acl-policy.class"; http://git-wip-us.apache.org/repos/asf/hadoop/blob/ff39c0de/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml index 5afec1b..4516edf 100644 ---
[06/18] hadoop git commit: YARN-5952. Create REST API for changing YARN scheduler configurations. (Jonathan Hung via wangda)
YARN-5952. Create REST API for changing YARN scheduler configurations. (Jonathan Hung via wangda) Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/d8a5136b Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/d8a5136b Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/d8a5136b Branch: refs/heads/trunk Commit: d8a5136b1f3761166a08969eda7a7f66d1578d7e Parents: ef68663 Author: Wangda TanAuthored: Mon Apr 3 10:12:01 2017 -0700 Committer: Jonathan Hung Committed: Mon Oct 9 11:11:23 2017 -0700 -- .../scheduler/MutableConfScheduler.java | 40 ++ .../scheduler/MutableConfigurationProvider.java | 5 +- .../scheduler/capacity/CapacityScheduler.java | 16 +- .../conf/InMemoryConfigurationStore.java| 6 +- .../conf/MutableCSConfigurationProvider.java| 24 +- .../resourcemanager/webapp/RMWebServices.java | 172 ++- .../webapp/dao/QueueConfigInfo.java | 57 +++ .../webapp/dao/QueueConfigsUpdateInfo.java | 60 +++ .../TestMutableCSConfigurationProvider.java | 6 +- .../TestRMWebServicesConfigurationMutation.java | 477 +++ 10 files changed, 851 insertions(+), 12 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/d8a5136b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/MutableConfScheduler.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/MutableConfScheduler.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/MutableConfScheduler.java new file mode 100644 index 000..35e36e1 --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/MutableConfScheduler.java @@ -0,0 +1,40 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.hadoop.yarn.server.resourcemanager.scheduler; + +import org.apache.hadoop.security.UserGroupInformation; + +import java.io.IOException; +import java.util.Map; + +/** + * Interface for a scheduler that supports changing configuration at runtime. + * + */ +public interface MutableConfScheduler extends ResourceScheduler { + + /** + * Update the scheduler's configuration. + * @param user Caller of this update + * @param confUpdate key-value map of the configuration update + * @throws IOException if update is invalid + */ + void updateConfiguration(UserGroupInformation user, + Map confUpdate) throws IOException; + +} http://git-wip-us.apache.org/repos/asf/hadoop/blob/d8a5136b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/MutableConfigurationProvider.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/MutableConfigurationProvider.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/MutableConfigurationProvider.java index da30a2b..889c3bc 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/MutableConfigurationProvider.java +++
[15/18] hadoop git commit: YARN-7251. Misc changes to YARN-5734
YARN-7251. Misc changes to YARN-5734 Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/06c8938a Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/06c8938a Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/06c8938a Branch: refs/heads/branch-2 Commit: 06c8938ab0db1bac13ffd989a57ea64ee293cbcf Parents: 40bec38 Author: Jonathan HungAuthored: Mon Sep 25 17:52:40 2017 -0700 Committer: Jonathan Hung Committed: Mon Oct 9 11:12:08 2017 -0700 -- hadoop-yarn-project/hadoop-yarn/bin/yarn| 3 +- hadoop-yarn-project/hadoop-yarn/bin/yarn.cmd| 3 +- .../hadoop/yarn/conf/YarnConfiguration.java | 33 ++- .../hadoop/yarn/client/cli/SchedConfCLI.java| 42 ++-- .../yarn/client/cli/TestSchedConfCLI.java | 20 +- .../hadoop/yarn/webapp/dao/QueueConfigInfo.java | 2 +- .../yarn/webapp/dao/SchedConfUpdateInfo.java| 2 +- .../src/main/resources/yarn-default.xml | 15 --- .../scheduler/capacity/CapacityScheduler.java | 12 +++--- .../CapacitySchedulerConfiguration.java | 12 -- .../conf/MutableCSConfigurationProvider.java| 2 +- .../resourcemanager/webapp/RMWebServices.java | 2 +- .../resourcemanager/TestRMAdminService.java | 4 +- .../conf/TestLeveldbConfigurationStore.java | 2 - .../TestMutableCSConfigurationProvider.java | 3 ++ .../capacity/conf/TestZKConfigurationStore.java | 2 - .../TestRMWebServicesConfigurationMutation.java | 28 ++--- .../src/site/markdown/CapacityScheduler.md | 11 ++--- .../src/site/markdown/ResourceManagerRest.md| 40 ++- .../src/site/markdown/YarnCommands.md | 12 +++--- 20 files changed, 146 insertions(+), 104 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/06c8938a/hadoop-yarn-project/hadoop-yarn/bin/yarn -- diff --git a/hadoop-yarn-project/hadoop-yarn/bin/yarn b/hadoop-yarn-project/hadoop-yarn/bin/yarn index 46d0e54..dfcb797 100644 --- a/hadoop-yarn-project/hadoop-yarn/bin/yarn +++ b/hadoop-yarn-project/hadoop-yarn/bin/yarn @@ -84,6 +84,7 @@ function print_usage(){ echo " node prints node report(s)" echo " queue prints queue information" echo " logs dump container logs" + echo " schedulerconf updates scheduler configuration" echo " classpath prints the class path needed to" echo "get the Hadoop jar and the" echo "required libraries" @@ -301,7 +302,7 @@ elif [ "$COMMAND" = "daemonlog" ] ; then elif [ "$COMMAND" = "cluster" ] ; then CLASS=org.apache.hadoop.yarn.client.cli.ClusterCLI YARN_OPTS="$YARN_OPTS $YARN_CLIENT_OPTS" -elif [ "$COMMAND" = "schedconf" ] ; then +elif [ "$COMMAND" = "schedulerconf" ] ; then CLASS=org.apache.hadoop.yarn.client.cli.SchedConfCLI YARN_OPTS="$YARN_OPTS $YARN_CLIENT_OPTS" elif [ "$COMMAND" = "top" ]; then http://git-wip-us.apache.org/repos/asf/hadoop/blob/06c8938a/hadoop-yarn-project/hadoop-yarn/bin/yarn.cmd -- diff --git a/hadoop-yarn-project/hadoop-yarn/bin/yarn.cmd b/hadoop-yarn-project/hadoop-yarn/bin/yarn.cmd index 1da1596..3a650cd 100644 --- a/hadoop-yarn-project/hadoop-yarn/bin/yarn.cmd +++ b/hadoop-yarn-project/hadoop-yarn/bin/yarn.cmd @@ -289,7 +289,7 @@ goto :eof set YARN_OPTS=%YARN_OPTS% %YARN_CLIENT_OPTS% goto :eof -:schedconf +:schedulerconf set CLASS=org.apache.hadoop.yarn.client.cli.SchedConfCLI set YARN_OPTS=%YARN_OPTS% %YARN_CLIENT_OPTS% goto :eof @@ -338,6 +338,7 @@ goto :eof @echo node prints node report(s) @echo queueprints queue information @echo logs dump container logs + @echo schedulerconfupdates scheduler configuration @echo classpathprints the class path needed to get the @echoHadoop jar and the required libraries @echo daemonlogget/set the log level for each daemon http://git-wip-us.apache.org/repos/asf/hadoop/blob/06c8938a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java
[08/18] hadoop git commit: YARN-5949. Add pluggable configuration ACL policy interface and implementation. (Jonathan Hung via wangda)
YARN-5949. Add pluggable configuration ACL policy interface and implementation. (Jonathan Hung via wangda) Change-Id: Ib98e82ff753bede21fcab2e6ca9ec1e7a5a2008f Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/a47823ca Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/a47823ca Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/a47823ca Branch: refs/heads/branch-2 Commit: a47823ca98f4d827e22d7690706d0824e5f31b4c Parents: 53a1268 Author: Wangda TanAuthored: Mon May 22 13:38:31 2017 -0700 Committer: Jonathan Hung Committed: Mon Oct 9 11:12:07 2017 -0700 -- .../hadoop/yarn/conf/YarnConfiguration.java | 3 + .../src/main/resources/yarn-default.xml | 11 ++ .../ConfigurationMutationACLPolicy.java | 47 ++ .../ConfigurationMutationACLPolicyFactory.java | 49 ++ .../DefaultConfigurationMutationACLPolicy.java | 45 ++ .../scheduler/MutableConfScheduler.java | 19 ++- .../scheduler/MutableConfigurationProvider.java | 8 +- .../scheduler/capacity/CapacityScheduler.java | 6 +- .../conf/MutableCSConfigurationProvider.java| 151 +- ...ueueAdminConfigurationMutationACLPolicy.java | 96 .../resourcemanager/webapp/RMWebServices.java | 131 +--- .../TestConfigurationMutationACLPolicies.java | 154 +++ .../TestMutableCSConfigurationProvider.java | 40 +++-- 13 files changed, 610 insertions(+), 150 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/a47823ca/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java index 4bbb335..cef3c74 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java @@ -615,6 +615,9 @@ public class YarnConfiguration extends Configuration { public static final String DEFAULT_CONFIGURATION_STORE = MEMORY_CONFIGURATION_STORE; + public static final String RM_SCHEDULER_MUTATION_ACL_POLICY_CLASS = + YARN_PREFIX + "scheduler.configuration.mutation.acl-policy.class"; + public static final String YARN_AUTHORIZATION_PROVIDER = YARN_PREFIX + "authorization-provider"; private static final List RM_SERVICES_ADDRESS_CONF_KEYS_HTTP = http://git-wip-us.apache.org/repos/asf/hadoop/blob/a47823ca/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml index f857551..80984d9 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml @@ -3204,4 +3204,15 @@ memory + + + The class to use for configuration mutation ACL policy if using a mutable + configuration provider. Controls whether a mutation request is allowed. + The DefaultConfigurationMutationACLPolicy checks if the requestor is a + YARN admin. + +yarn.scheduler.configuration.mutation.acl-policy.class + org.apache.hadoop.yarn.server.resourcemanager.scheduler.DefaultConfigurationMutationACLPolicy + + http://git-wip-us.apache.org/repos/asf/hadoop/blob/a47823ca/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/ConfigurationMutationACLPolicy.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/ConfigurationMutationACLPolicy.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/ConfigurationMutationACLPolicy.java new file mode 100644 index 000..724487b --- /dev/null +++
[09/18] hadoop git commit: YARN-6322: Disable queue refresh when configuration mutation is enabled. Contributed by Jonathan Hung
YARN-6322: Disable queue refresh when configuration mutation is enabled. Contributed by Jonathan Hung Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/3a31c388 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/3a31c388 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/3a31c388 Branch: refs/heads/branch-2 Commit: 3a31c38885965c9f906464904981d15ac8db9bb1 Parents: cd58f5d Author: XuanAuthored: Tue Aug 1 08:48:04 2017 -0700 Committer: Jonathan Hung Committed: Mon Oct 9 11:12:07 2017 -0700 -- .../server/resourcemanager/AdminService.java| 12 +- .../scheduler/MutableConfScheduler.java | 12 -- .../scheduler/MutableConfigurationProvider.java | 4 +++- .../scheduler/capacity/CapacityScheduler.java | 9 ++-- .../conf/MutableCSConfigurationProvider.java| 11 +- .../resourcemanager/TestRMAdminService.java | 23 .../TestMutableCSConfigurationProvider.java | 14 +++- 7 files changed, 67 insertions(+), 18 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/3a31c388/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/AdminService.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/AdminService.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/AdminService.java index 3457ae3..fd9e849 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/AdminService.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/AdminService.java @@ -29,6 +29,7 @@ import java.util.Set; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.apache.hadoop.classification.InterfaceAudience.Private; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.CommonConfigurationKeysPublic; import org.apache.hadoop.ha.HAServiceProtocol; @@ -92,6 +93,8 @@ import org.apache.hadoop.yarn.server.resourcemanager.reservation.ReservationSyst import org.apache.hadoop.yarn.server.resourcemanager.resource.DynamicResourceConfiguration; import org.apache.hadoop.yarn.server.resourcemanager.rmnode.RMNode; import org.apache.hadoop.yarn.server.resourcemanager.rmnode.RMNodeResourceUpdateEvent; +import org.apache.hadoop.yarn.server.resourcemanager.scheduler.MutableConfScheduler; +import org.apache.hadoop.yarn.server.resourcemanager.scheduler.ResourceScheduler; import org.apache.hadoop.yarn.server.resourcemanager.security.authorize.RMPolicyProvider; import com.google.common.annotations.VisibleForTesting; @@ -384,6 +387,12 @@ public class AdminService extends CompositeService implements RefreshQueuesResponse response = recordFactory.newRecordInstance(RefreshQueuesResponse.class); try { + ResourceScheduler scheduler = rm.getRMContext().getScheduler(); + if (scheduler instanceof MutableConfScheduler + && ((MutableConfScheduler) scheduler).isConfigurationMutable()) { +throw new IOException("Scheduler configuration is mutable. " + +operation + " is not allowed in this scenario."); + } refreshQueues(); RMAuditLogger.logSuccess(user.getShortUserName(), operation, "AdminService"); @@ -393,7 +402,8 @@ public class AdminService extends CompositeService implements } } - private void refreshQueues() throws IOException, YarnException { + @Private + public void refreshQueues() throws IOException, YarnException { rm.getRMContext().getScheduler().reinitialize(getConfig(), this.rm.getRMContext()); // refresh the reservation system http://git-wip-us.apache.org/repos/asf/hadoop/blob/3a31c388/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/MutableConfScheduler.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/MutableConfScheduler.java
[04/18] hadoop git commit: YARN-5952. Create REST API for changing YARN scheduler configurations. (Jonathan Hung via wangda)
YARN-5952. Create REST API for changing YARN scheduler configurations. (Jonathan Hung via wangda) Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/53a12681 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/53a12681 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/53a12681 Branch: refs/heads/branch-2 Commit: 53a1268125c4322a32140e68430c6182965c55d9 Parents: 072527b Author: Wangda TanAuthored: Mon Apr 3 10:12:01 2017 -0700 Committer: Jonathan Hung Committed: Mon Oct 9 11:12:07 2017 -0700 -- .../scheduler/MutableConfScheduler.java | 40 ++ .../scheduler/MutableConfigurationProvider.java | 5 +- .../scheduler/capacity/CapacityScheduler.java | 16 +- .../conf/InMemoryConfigurationStore.java| 6 +- .../conf/MutableCSConfigurationProvider.java| 24 +- .../resourcemanager/webapp/RMWebServices.java | 173 ++- .../webapp/dao/QueueConfigInfo.java | 57 +++ .../webapp/dao/QueueConfigsUpdateInfo.java | 60 +++ .../TestMutableCSConfigurationProvider.java | 6 +- .../TestRMWebServicesConfigurationMutation.java | 483 +++ 10 files changed, 857 insertions(+), 13 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/53a12681/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/MutableConfScheduler.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/MutableConfScheduler.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/MutableConfScheduler.java new file mode 100644 index 000..35e36e1 --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/MutableConfScheduler.java @@ -0,0 +1,40 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.hadoop.yarn.server.resourcemanager.scheduler; + +import org.apache.hadoop.security.UserGroupInformation; + +import java.io.IOException; +import java.util.Map; + +/** + * Interface for a scheduler that supports changing configuration at runtime. + * + */ +public interface MutableConfScheduler extends ResourceScheduler { + + /** + * Update the scheduler's configuration. + * @param user Caller of this update + * @param confUpdate key-value map of the configuration update + * @throws IOException if update is invalid + */ + void updateConfiguration(UserGroupInformation user, + Map confUpdate) throws IOException; + +} http://git-wip-us.apache.org/repos/asf/hadoop/blob/53a12681/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/MutableConfigurationProvider.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/MutableConfigurationProvider.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/MutableConfigurationProvider.java index da30a2b..889c3bc 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/MutableConfigurationProvider.java +++
[01/18] hadoop git commit: YARN-6840. Implement zookeeper based store for scheduler configuration updates. (Jonathan Hung via wangda)
Repository: hadoop Updated Branches: refs/heads/branch-2 1ddc49527 -> 6cdc6771e http://git-wip-us.apache.org/repos/asf/hadoop/blob/887b366d/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/conf/TestZKConfigurationStore.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/conf/TestZKConfigurationStore.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/conf/TestZKConfigurationStore.java new file mode 100644 index 000..3cfa8da --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/conf/TestZKConfigurationStore.java @@ -0,0 +1,312 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.conf; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.apache.curator.framework.CuratorFramework; +import org.apache.curator.framework.CuratorFrameworkFactory; +import org.apache.curator.retry.RetryNTimes; +import org.apache.curator.test.TestingServer; +import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.fs.CommonConfigurationKeys; +import org.apache.hadoop.ha.HAServiceProtocol; +import org.apache.hadoop.security.UserGroupInformation; +import org.apache.hadoop.service.Service; +import org.apache.hadoop.yarn.conf.HAUtil; +import org.apache.hadoop.yarn.conf.YarnConfiguration; +import org.apache.hadoop.yarn.server.resourcemanager.MockRM; +import org.apache.hadoop.yarn.server.resourcemanager.ResourceManager; +import org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore; +import org.apache.hadoop.yarn.server.resourcemanager.scheduler.MutableConfScheduler; +import org.apache.hadoop.yarn.server.resourcemanager.scheduler.MutableConfigurationProvider; +import org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler; +import org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacitySchedulerConfiguration; +import org.apache.hadoop.yarn.webapp.dao.SchedConfUpdateInfo; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +import java.io.IOException; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.Map; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; + +/** + * Tests {@link ZKConfigurationStore}. + */ +public class TestZKConfigurationStore extends ConfigurationStoreBaseTest { + + public static final Log LOG = + LogFactory.getLog(TestZKConfigurationStore.class); + + private static final int ZK_TIMEOUT_MS = 1; + private TestingServer curatorTestingServer; + private CuratorFramework curatorFramework; + private ResourceManager rm; + + public static TestingServer setupCuratorServer() throws Exception { +TestingServer curatorTestingServer = new TestingServer(); +curatorTestingServer.start(); +return curatorTestingServer; + } + + public static CuratorFramework setupCuratorFramework( + TestingServer curatorTestingServer) throws Exception { +CuratorFramework curatorFramework = CuratorFrameworkFactory.builder() +.connectString(curatorTestingServer.getConnectString()) +.retryPolicy(new RetryNTimes(100, 100)) +.build(); +curatorFramework.start(); +return curatorFramework; + } + + @Before + public void setUp() throws Exception { +super.setUp(); +curatorTestingServer = setupCuratorServer(); +curatorFramework = setupCuratorFramework(curatorTestingServer); + +conf.set(CommonConfigurationKeys.ZK_ADDRESS, +curatorTestingServer.getConnectString()); +rm = new MockRM(conf); +rm.start(); +rmContext = rm.getRMContext(); + } + +
[14/18] hadoop git commit: YARN-7252. Removing queue then failing over results in exception
YARN-7252. Removing queue then failing over results in exception Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/4bd3f0df Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/4bd3f0df Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/4bd3f0df Branch: refs/heads/branch-2 Commit: 4bd3f0df42c3f4f2dc1f0a05f9f97d89e2e66518 Parents: 06c8938 Author: Jonathan HungAuthored: Tue Sep 26 11:41:05 2017 -0700 Committer: Jonathan Hung Committed: Mon Oct 9 11:12:08 2017 -0700 -- .../capacity/CapacitySchedulerContext.java | 6 ++ .../capacity/CapacitySchedulerQueueManager.java | 11 +- .../capacity/conf/TestZKConfigurationStore.java | 102 +++ 3 files changed, 117 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/4bd3f0df/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacitySchedulerContext.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacitySchedulerContext.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacitySchedulerContext.java index 9aeaec6..7c918a5 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacitySchedulerContext.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacitySchedulerContext.java @@ -88,4 +88,10 @@ public interface CapacitySchedulerContext { * @return Max Cluster level App priority. */ Priority getMaxClusterLevelAppPriority(); + + /** + * Returns if configuration is mutable. + * @return if configuration is mutable + */ + boolean isConfigurationMutable(); } http://git-wip-us.apache.org/repos/asf/hadoop/blob/4bd3f0df/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacitySchedulerQueueManager.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacitySchedulerQueueManager.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacitySchedulerQueueManager.java index 1ceb6fb..48c289f 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacitySchedulerQueueManager.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacitySchedulerQueueManager.java @@ -33,6 +33,7 @@ import org.apache.commons.logging.LogFactory; import org.apache.hadoop.classification.InterfaceAudience.Private; import org.apache.hadoop.classification.InterfaceStability.Unstable; import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.ha.HAServiceProtocol; import org.apache.hadoop.security.UserGroupInformation; import org.apache.hadoop.yarn.api.records.Priority; import org.apache.hadoop.yarn.api.records.QueueState; @@ -170,8 +171,14 @@ public class CapacitySchedulerQueueManager implements SchedulerQueueManager< CSQueue newRoot = parseQueue(this.csContext, newConf, null, CapacitySchedulerConfiguration.ROOT, newQueues, queues, NOOP); -// Ensure queue hiearchy in the new XML file is proper. -validateQueueHierarchy(queues, newQueues); +// When failing over, if using configuration store, don't validate queue +// hierarchy since queues can be removed without being STOPPED. +if (!csContext.isConfigurationMutable() || +csContext.getRMContext().getHAServiceState() +!= HAServiceProtocol.HAServiceState.STANDBY) { + // Ensure queue hiearchy in the new XML file is proper. + validateQueueHierarchy(queues, newQueues); +} // Add new queues and delete OldQeueus only after validation. updateQueues(queues, newQueues);
[06/18] hadoop git commit: YARN-5951. Changes to allow CapacityScheduler to use configuration store
YARN-5951. Changes to allow CapacityScheduler to use configuration store Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/cd4bc54e Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/cd4bc54e Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/cd4bc54e Branch: refs/heads/branch-2 Commit: cd4bc54e6c8f3e933b46188251bb15ece93accc3 Parents: 4d377c8 Author: Jonathan HungAuthored: Mon Jan 30 19:03:48 2017 -0800 Committer: Jonathan Hung Committed: Mon Oct 9 11:12:07 2017 -0700 -- .../scheduler/capacity/CapacityScheduler.java | 37 +-- .../CapacitySchedulerConfiguration.java | 9 +++ .../capacity/conf/CSConfigurationProvider.java | 46 ++ .../conf/FileBasedCSConfigurationProvider.java | 67 .../scheduler/capacity/conf/package-info.java | 29 + .../capacity/TestCapacityScheduler.java | 4 +- 6 files changed, 170 insertions(+), 22 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/cd4bc54e/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacityScheduler.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacityScheduler.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacityScheduler.java index 4f9c89c..63c34d4 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacityScheduler.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacityScheduler.java @@ -23,7 +23,6 @@ import com.google.common.base.Preconditions; import com.google.common.util.concurrent.SettableFuture; import java.io.IOException; -import java.io.InputStream; import java.util.ArrayList; import java.util.Collection; import java.util.EnumSet; @@ -108,6 +107,8 @@ import org.apache.hadoop.yarn.server.resourcemanager.scheduler.activities.Activi import org.apache.hadoop.yarn.server.resourcemanager.scheduler.activities.ActivityDiagnosticConstant; import org.apache.hadoop.yarn.server.resourcemanager.scheduler.activities.ActivityState; import org.apache.hadoop.yarn.server.resourcemanager.scheduler.activities.AllocationState; +import org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.conf.CSConfigurationProvider; +import org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.conf.FileBasedCSConfigurationProvider; import org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.preemption.KillableContainer; import org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.preemption.PreemptionManager; import org.apache.hadoop.yarn.server.resourcemanager.scheduler.common.AssignmentInformation; @@ -168,6 +169,8 @@ public class CapacityScheduler extends private int maxAssignPerHeartbeat; + private CSConfigurationProvider csConfProvider; + @Override public void setConf(Configuration conf) { yarnConf = conf; @@ -290,7 +293,18 @@ public class CapacityScheduler extends IOException { try { writeLock.lock(); - this.conf = loadCapacitySchedulerConfiguration(configuration); + String confProviderStr = configuration.get( + CapacitySchedulerConfiguration.CS_CONF_PROVIDER, + CapacitySchedulerConfiguration.DEFAULT_CS_CONF_PROVIDER); + if (confProviderStr.equals( + CapacitySchedulerConfiguration.FILE_CS_CONF_PROVIDER)) { +this.csConfProvider = new FileBasedCSConfigurationProvider(rmContext); + } else { +throw new IOException("Invalid CS configuration provider: " + +confProviderStr); + } + this.csConfProvider.init(configuration); + this.conf = this.csConfProvider.loadConfiguration(configuration); validateConf(this.conf); this.minimumAllocation = this.conf.getMinimumAllocation(); initMaximumResourceCapability(this.conf.getMaximumAllocation()); @@ -400,7 +414,7 @@ public class CapacityScheduler extends writeLock.lock(); Configuration configuration = new Configuration(newConf); CapacitySchedulerConfiguration oldConf = this.conf; - this.conf = loadCapacitySchedulerConfiguration(configuration); + this.conf
[12/18] hadoop git commit: YARN-5947: Create LeveldbConfigurationStore class using Leveldb as backing store. Contributed by Jonathan Hung
YARN-5947: Create LeveldbConfigurationStore class using Leveldb as backing store. Contributed by Jonathan Hung Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/cd58f5da Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/cd58f5da Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/cd58f5da Branch: refs/heads/branch-2 Commit: cd58f5da5a87f9d1d1f585ad639c06aac85dd775 Parents: 16b2757 Author: XuanAuthored: Mon Jul 31 16:48:40 2017 -0700 Committer: Jonathan Hung Committed: Mon Oct 9 11:12:07 2017 -0700 -- .../hadoop/yarn/conf/YarnConfiguration.java | 13 + .../src/main/resources/yarn-default.xml | 29 ++ .../scheduler/MutableConfigurationProvider.java | 6 + .../scheduler/capacity/CapacityScheduler.java | 3 + .../conf/LeveldbConfigurationStore.java | 314 +++ .../conf/MutableCSConfigurationProvider.java| 38 ++- .../capacity/conf/YarnConfigurationStore.java | 14 +- .../conf/TestYarnConfigurationStore.java| 3 +- 8 files changed, 414 insertions(+), 6 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/cd58f5da/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java index cef3c74..84465eb 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java @@ -612,8 +612,21 @@ public class YarnConfiguration extends Configuration { public static final String SCHEDULER_CONFIGURATION_STORE_CLASS = YARN_PREFIX + "scheduler.configuration.store.class"; public static final String MEMORY_CONFIGURATION_STORE = "memory"; + public static final String LEVELDB_CONFIGURATION_STORE = "leveldb"; public static final String DEFAULT_CONFIGURATION_STORE = MEMORY_CONFIGURATION_STORE; + public static final String RM_SCHEDCONF_STORE_PATH = YARN_PREFIX + + "scheduler.configuration.leveldb-store.path"; + + public static final String RM_SCHEDCONF_LEVELDB_COMPACTION_INTERVAL_SECS = + YARN_PREFIX + + "scheduler.configuration.leveldb-store.compaction-interval-secs"; + public static final long + DEFAULT_RM_SCHEDCONF_LEVELDB_COMPACTION_INTERVAL_SECS = 60 * 60 * 24L; + + public static final String RM_SCHEDCONF_LEVELDB_MAX_LOGS = + YARN_PREFIX + "scheduler.configuration.leveldb-store.max-logs"; + public static final int DEFAULT_RM_SCHEDCONF_LEVELDB_MAX_LOGS = 1000; public static final String RM_SCHEDULER_MUTATION_ACL_POLICY_CLASS = YARN_PREFIX + "scheduler.configuration.mutation.acl-policy.class"; http://git-wip-us.apache.org/repos/asf/hadoop/blob/cd58f5da/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml index 80984d9..c4a761d 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml @@ -3215,4 +3215,33 @@ org.apache.hadoop.yarn.server.resourcemanager.scheduler.DefaultConfigurationMutationACLPolicy + + + The storage path for LevelDB implementation of configuration store, + when yarn.scheduler.configuration.store.class is configured to be + "leveldb". + +yarn.scheduler.configuration.leveldb-store.path +${hadoop.tmp.dir}/yarn/system/confstore + + + + + The compaction interval for LevelDB configuration store in secs, + when yarn.scheduler.configuration.store.class is configured to be + "leveldb". Default is one day. + + yarn.scheduler.configuration.leveldb-store.compaction-interval-secs +86400 + + + + + The max number of configuration change log entries kept in LevelDB config + store, when yarn.scheduler.configuration.store.class is configured to be + "leveldb". Default is 1000. + +yarn.scheduler.configuration.leveldb-store.max-logs +1000 +
[17/18] hadoop git commit: YARN-7238. Documentation for API based scheduler configuration management
YARN-7238. Documentation for API based scheduler configuration management Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/40bec384 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/40bec384 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/40bec384 Branch: refs/heads/branch-2 Commit: 40bec384656e5a3ea3767b1815ad02777135c01d Parents: c8f9fe8 Author: Jonathan HungAuthored: Mon Sep 25 17:47:32 2017 -0700 Committer: Jonathan Hung Committed: Mon Oct 9 11:12:08 2017 -0700 -- .../src/site/markdown/CapacityScheduler.md | 24 ++- .../src/site/markdown/ResourceManagerRest.md| 186 +++ .../src/site/markdown/YarnCommands.md | 13 ++ 3 files changed, 221 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/40bec384/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/markdown/CapacityScheduler.md -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/markdown/CapacityScheduler.md b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/markdown/CapacityScheduler.md index 6bb8489..d70f891 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/markdown/CapacityScheduler.md +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/markdown/CapacityScheduler.md @@ -295,9 +295,29 @@ The `ReservationSystem` is integrated with the `CapacityScheduler` queue hierach Changing Queue Configuration -Changing queue properties and adding new queues is very simple. You need to edit **conf/capacity-scheduler.xml** and run *yarn rmadmin -refreshQueues*. +Changing queue/scheduler properties and adding/removing queues can be done in two ways, via file or via API. + +### Changing queue configuration via file + + To edit by file, you need to edit **conf/capacity-scheduler.xml** and run *yarn rmadmin -refreshQueues*. $ vi $HADOOP_CONF_DIR/capacity-scheduler.xml $ $HADOOP_YARN_HOME/bin/yarn rmadmin -refreshQueues -**Note:** Queues cannot be *deleted*, only addition of new queues is supported - the updated queue configuration should be a valid one i.e. queue-capacity at each *level* should be equal to 100%. +### Changing queue configuration via API + + Editing by API uses a backing store for the scheduler configuration. To enable this, the following parameters can be configured in yarn-site.xml. + + | Property | Description | + |: |: | + | `yarn.scheduler.capacity.configuration.provider` | The type of configuration provider to use for capacity scheduler. To enable changing queue configuration via API, this should be set to *store*. Default value is *file*, which disables the API and reverts back to changing queue configuration via file. | + | `yarn.scheduler.configuration.store.class` | The type of backing store to use. Default value is *memory*, which stores the scheduler configuration in memory (and does not persist configuration changes across restarts). Other values are *leveldb* (using a leveldb-based implementation), and *zk* (using a zookeeper-based implementation). | + | `yarn.scheduler.configuration.mutation.acl-policy.class` | An ACL policy can be configured to restrict which users can modify which queues. Default value is *org.apache.hadoop.yarn.server.resourcemanager.scheduler.DefaultConfigurationMutationACLPolicy*, which only allows YARN admins to make any configuration modifications. Another value is *org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.conf.QueueAdminConfigurationMutationACLPolicy*, which only allows queue modifications if the caller is an admin of the queue. | + | `yarn.scheduler.configuration.store.max-logs` | Configuration changes are audit logged in the backing store, if using leveldb or zookeeper. This configuration controls the maximum number of audit logs to store, dropping the oldest logs when exceeded. Default is 1000. | + | `yarn.scheduler.configuration.leveldb-store.path` | The storage path of the configuration store when using leveldb. Default value is *${hadoop.tmp.dir}/yarn/system/confstore*. | + | `yarn.scheduler.configuration.leveldb-store.compaction-interval-secs` | The interval for compacting the configuration store in seconds, when using leveldb. Default value is 86400, or one day. | + | `yarn.scheduler.configuration.zk-store.parent-path` | The zookeeper root node path for configuration store related information, when using zookeeper. Default value is */confstore*. | + + **Note:** When enabling backing store for scheduler configuration, *yarn rmadmin -refreshQueues* will be disabled, i.e. it will no longer be possible to update
[11/18] hadoop git commit: YARN-5953:Create CLI for changing YARN configurations. (Jonathan Hung via xgong)
YARN-5953:Create CLI for changing YARN configurations. (Jonathan Hung via xgong) Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/96f4cf7c Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/96f4cf7c Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/96f4cf7c Branch: refs/heads/branch-2 Commit: 96f4cf7cde300544b8b4a107a07bf0d3253cbfbd Parents: 3c50084 Author: Xuan <xg...@apache.org> Authored: Fri Jul 7 14:16:46 2017 -0700 Committer: Jonathan Hung <jh...@linkedin.com> Committed: Mon Oct 9 11:12:07 2017 -0700 -- hadoop-yarn-project/hadoop-yarn/bin/yarn| 3 + hadoop-yarn-project/hadoop-yarn/bin/yarn.cmd| 5 + .../hadoop/yarn/client/cli/SchedConfCLI.java| 238 +++ .../yarn/client/cli/TestSchedConfCLI.java | 160 + .../hadoop/yarn/webapp/dao/package-info.java| 27 +++ .../yarn/webapp/util/YarnWebServiceUtils.java | 14 ++ .../ConfigurationMutationACLPolicy.java | 2 +- .../DefaultConfigurationMutationACLPolicy.java | 2 +- .../scheduler/MutableConfScheduler.java | 2 +- .../scheduler/MutableConfigurationProvider.java | 2 +- .../scheduler/capacity/CapacityScheduler.java | 2 +- .../conf/MutableCSConfigurationProvider.java| 4 +- ...ueueAdminConfigurationMutationACLPolicy.java | 4 +- .../resourcemanager/webapp/RMWebServices.java | 1 + .../webapp/dao/QueueConfigInfo.java | 4 +- .../webapp/dao/SchedConfUpdateInfo.java | 18 +- .../TestConfigurationMutationACLPolicies.java | 4 +- .../TestMutableCSConfigurationProvider.java | 4 +- .../TestRMWebServicesConfigurationMutation.java | 65 +++-- 19 files changed, 507 insertions(+), 54 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/96f4cf7c/hadoop-yarn-project/hadoop-yarn/bin/yarn -- diff --git a/hadoop-yarn-project/hadoop-yarn/bin/yarn b/hadoop-yarn-project/hadoop-yarn/bin/yarn index d476cc6..46d0e54 100644 --- a/hadoop-yarn-project/hadoop-yarn/bin/yarn +++ b/hadoop-yarn-project/hadoop-yarn/bin/yarn @@ -301,6 +301,9 @@ elif [ "$COMMAND" = "daemonlog" ] ; then elif [ "$COMMAND" = "cluster" ] ; then CLASS=org.apache.hadoop.yarn.client.cli.ClusterCLI YARN_OPTS="$YARN_OPTS $YARN_CLIENT_OPTS" +elif [ "$COMMAND" = "schedconf" ] ; then + CLASS=org.apache.hadoop.yarn.client.cli.SchedConfCLI + YARN_OPTS="$YARN_OPTS $YARN_CLIENT_OPTS" elif [ "$COMMAND" = "top" ]; then CLASS=org.apache.hadoop.yarn.client.cli.TopCLI YARN_OPTS="$YARN_OPTS $YARN_CLIENT_OPTS" http://git-wip-us.apache.org/repos/asf/hadoop/blob/96f4cf7c/hadoop-yarn-project/hadoop-yarn/bin/yarn.cmd -- diff --git a/hadoop-yarn-project/hadoop-yarn/bin/yarn.cmd b/hadoop-yarn-project/hadoop-yarn/bin/yarn.cmd index 230e88c..1da1596 100644 --- a/hadoop-yarn-project/hadoop-yarn/bin/yarn.cmd +++ b/hadoop-yarn-project/hadoop-yarn/bin/yarn.cmd @@ -289,6 +289,11 @@ goto :eof set YARN_OPTS=%YARN_OPTS% %YARN_CLIENT_OPTS% goto :eof +:schedconf + set CLASS=org.apache.hadoop.yarn.client.cli.SchedConfCLI + set YARN_OPTS=%YARN_OPTS% %YARN_CLIENT_OPTS% + goto :eof + @rem This changes %1, %2 etc. Hence those cannot be used after calling this. :make_command_arguments if "%1" == "--config" ( http://git-wip-us.apache.org/repos/asf/hadoop/blob/96f4cf7c/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/SchedConfCLI.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/SchedConfCLI.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/SchedConfCLI.java new file mode 100644 index 000..e17062e --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/SchedConfCLI.java @@ -0,0 +1,238 @@ +/** +* Licensed to the Apache Software Foundation (ASF) under one +* or more contributor license agreements. See the NOTICE file +* distributed with this work for additional information +* regarding copyright ownership. The ASF licenses this file +* to you under the Apache License, Version 2.0 (the +* "License"); you may not use this file except in compliance +* with the License. You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distribu
[10/18] hadoop git commit: YARN-5953 addendum: Move QueueConfigInfo and SchedConfUpdateInfo to package org.apache.hadoop.yarn.webapp.dao
YARN-5953 addendum: Move QueueConfigInfo and SchedConfUpdateInfo to package org.apache.hadoop.yarn.webapp.dao Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/16b27573 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/16b27573 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/16b27573 Branch: refs/heads/branch-2 Commit: 16b27573efe6e4098e457f3fde5879e7f12f129c Parents: 96f4cf7 Author: XuanAuthored: Mon Jul 31 11:49:05 2017 -0700 Committer: Jonathan Hung Committed: Mon Oct 9 11:12:07 2017 -0700 -- .../hadoop/yarn/webapp/dao/QueueConfigInfo.java | 57 + .../yarn/webapp/dao/SchedConfUpdateInfo.java| 85 .../webapp/dao/QueueConfigInfo.java | 57 - .../webapp/dao/SchedConfUpdateInfo.java | 85 4 files changed, 142 insertions(+), 142 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/16b27573/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/dao/QueueConfigInfo.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/dao/QueueConfigInfo.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/dao/QueueConfigInfo.java new file mode 100644 index 000..d1d91c2 --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/dao/QueueConfigInfo.java @@ -0,0 +1,57 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.hadoop.yarn.webapp.dao; + +import java.util.HashMap; +import java.util.Map; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlRootElement; + +/** + * Information for adding or updating a queue to scheduler configuration + * for this queue. + */ +@XmlRootElement +@XmlAccessorType(XmlAccessType.FIELD) +public class QueueConfigInfo { + + @XmlElement(name = "queueName") + private String queue; + + private HashMap params = new HashMap<>(); + + public QueueConfigInfo() { } + + public QueueConfigInfo(String queue, Map params) { +this.queue = queue; +this.params = new HashMap<>(params); + } + + public String getQueue() { +return this.queue; + } + + public HashMap getParams() { +return this.params; + } + +} http://git-wip-us.apache.org/repos/asf/hadoop/blob/16b27573/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/dao/SchedConfUpdateInfo.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/dao/SchedConfUpdateInfo.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/dao/SchedConfUpdateInfo.java new file mode 100644 index 000..bb84096 --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/dao/SchedConfUpdateInfo.java @@ -0,0 +1,85 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY
[05/18] hadoop git commit: YARN-5948. Implement MutableConfigurationManager for handling storage into configuration store
YARN-5948. Implement MutableConfigurationManager for handling storage into configuration store Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/072527b3 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/072527b3 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/072527b3 Branch: refs/heads/branch-2 Commit: 072527b31a3cdfde821adef4a332b9d7dc855c8a Parents: 38cf9cc Author: Jonathan HungAuthored: Wed Mar 1 16:03:01 2017 -0800 Committer: Jonathan Hung Committed: Mon Oct 9 11:12:07 2017 -0700 -- .../hadoop/yarn/conf/YarnConfiguration.java | 6 ++ .../src/main/resources/yarn-default.xml | 12 +++ .../scheduler/MutableConfigurationProvider.java | 35 .../scheduler/capacity/CapacityScheduler.java | 14 ++- .../CapacitySchedulerConfiguration.java | 3 + .../capacity/conf/CSConfigurationProvider.java | 3 +- .../conf/MutableCSConfigurationProvider.java| 94 .../conf/YarnConfigurationStoreFactory.java | 46 ++ .../TestMutableCSConfigurationProvider.java | 83 + 9 files changed, 291 insertions(+), 5 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/072527b3/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java index 117c8ce..4bbb335 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java @@ -609,6 +609,12 @@ public class YarnConfiguration extends Configuration { public static final String DEFAULT_RM_CONFIGURATION_PROVIDER_CLASS = "org.apache.hadoop.yarn.LocalConfigurationProvider"; + public static final String SCHEDULER_CONFIGURATION_STORE_CLASS = + YARN_PREFIX + "scheduler.configuration.store.class"; + public static final String MEMORY_CONFIGURATION_STORE = "memory"; + public static final String DEFAULT_CONFIGURATION_STORE = + MEMORY_CONFIGURATION_STORE; + public static final String YARN_AUTHORIZATION_PROVIDER = YARN_PREFIX + "authorization-provider"; private static final List RM_SERVICES_ADDRESS_CONF_KEYS_HTTP = http://git-wip-us.apache.org/repos/asf/hadoop/blob/072527b3/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml index d898dbc..f857551 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml @@ -3192,4 +3192,16 @@ + + + The type of configuration store to use for storing scheduler + configurations, if using a mutable configuration provider. + Keywords such as "memory" map to certain configuration store + implementations. If keyword is not found, try to load this + value as a class. + +yarn.scheduler.configuration.store.class +memory + + http://git-wip-us.apache.org/repos/asf/hadoop/blob/072527b3/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/MutableConfigurationProvider.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/MutableConfigurationProvider.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/MutableConfigurationProvider.java new file mode 100644 index 000..da30a2b --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/MutableConfigurationProvider.java @@ -0,0 +1,35 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + *
[02/18] hadoop git commit: YARN-6840. Implement zookeeper based store for scheduler configuration updates. (Jonathan Hung via wangda)
YARN-6840. Implement zookeeper based store for scheduler configuration updates. (Jonathan Hung via wangda) Change-Id: I9debea674fe8c7e4109d4ca136965a1ea4c48bcc Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/887b366d Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/887b366d Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/887b366d Branch: refs/heads/branch-2 Commit: 887b366d5fd8191f9f970587b743891d0fd72da9 Parents: 36cda2f Author: Wangda TanAuthored: Mon Sep 18 09:53:42 2017 -0700 Committer: Jonathan Hung Committed: Mon Oct 9 11:12:07 2017 -0700 -- .../hadoop/yarn/conf/YarnConfiguration.java | 14 +- .../src/main/resources/yarn-default.xml | 15 +- .../server/resourcemanager/AdminService.java| 18 +- .../server/resourcemanager/ResourceManager.java | 24 +- .../RMStateVersionIncompatibleException.java| 2 +- .../recovery/ZKRMStateStore.java| 5 +- .../scheduler/MutableConfScheduler.java | 22 +- .../scheduler/MutableConfigurationProvider.java | 36 ++- .../scheduler/capacity/CapacityScheduler.java | 22 +- .../conf/InMemoryConfigurationStore.java| 71 +++-- .../conf/LeveldbConfigurationStore.java | 168 +- .../conf/MutableCSConfigurationProvider.java| 148 + .../capacity/conf/YarnConfigurationStore.java | 132 .../capacity/conf/ZKConfigurationStore.java | 235 ++ .../resourcemanager/webapp/RMWebServices.java | 28 +- .../conf/ConfigurationStoreBaseTest.java| 90 ++ .../conf/TestInMemoryConfigurationStore.java| 30 ++ .../TestMutableCSConfigurationProvider.java | 18 +- .../conf/TestYarnConfigurationStore.java| 71 - .../capacity/conf/TestZKConfigurationStore.java | 312 +++ 20 files changed, 1038 insertions(+), 423 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/887b366d/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java index 84465eb..d20d4c9 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java @@ -613,6 +613,7 @@ public class YarnConfiguration extends Configuration { YARN_PREFIX + "scheduler.configuration.store.class"; public static final String MEMORY_CONFIGURATION_STORE = "memory"; public static final String LEVELDB_CONFIGURATION_STORE = "leveldb"; + public static final String ZK_CONFIGURATION_STORE = "zk"; public static final String DEFAULT_CONFIGURATION_STORE = MEMORY_CONFIGURATION_STORE; public static final String RM_SCHEDCONF_STORE_PATH = YARN_PREFIX @@ -624,9 +625,16 @@ public class YarnConfiguration extends Configuration { public static final long DEFAULT_RM_SCHEDCONF_LEVELDB_COMPACTION_INTERVAL_SECS = 60 * 60 * 24L; - public static final String RM_SCHEDCONF_LEVELDB_MAX_LOGS = - YARN_PREFIX + "scheduler.configuration.leveldb-store.max-logs"; - public static final int DEFAULT_RM_SCHEDCONF_LEVELDB_MAX_LOGS = 1000; + public static final String RM_SCHEDCONF_MAX_LOGS = + YARN_PREFIX + "scheduler.configuration.store.max-logs"; + public static final long DEFAULT_RM_SCHEDCONF_LEVELDB_MAX_LOGS = 1000; + public static final long DEFAULT_RM_SCHEDCONF_ZK_MAX_LOGS = 1000; + + /** Parent znode path under which ZKConfigurationStore will create znodes. */ + public static final String RM_SCHEDCONF_STORE_ZK_PARENT_PATH = YARN_PREFIX + + "scheduler.configuration.zk-store.parent-path"; + public static final String DEFAULT_RM_SCHEDCONF_STORE_ZK_PARENT_PATH = + "/confstore"; public static final String RM_SCHEDULER_MUTATION_ACL_POLICY_CLASS = YARN_PREFIX + "scheduler.configuration.mutation.acl-policy.class"; http://git-wip-us.apache.org/repos/asf/hadoop/blob/887b366d/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml index c4a761d..f415b4b 100644 ---
[13/18] hadoop git commit: YARN-5946: Create YarnConfigurationStore interface and InMemoryConfigurationStore class. Contributed by Jonathan Hung
YARN-5946: Create YarnConfigurationStore interface and InMemoryConfigurationStore class. Contributed by Jonathan Hung Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/38cf9ccd Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/38cf9ccd Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/38cf9ccd Branch: refs/heads/branch-2 Commit: 38cf9ccd5b28cc2e22060672d01c8cf1da9a7111 Parents: cd4bc54 Author: XuanAuthored: Fri Feb 24 15:58:12 2017 -0800 Committer: Jonathan Hung Committed: Mon Oct 9 11:12:07 2017 -0700 -- .../conf/InMemoryConfigurationStore.java| 86 +++ .../capacity/conf/YarnConfigurationStore.java | 154 +++ .../conf/TestYarnConfigurationStore.java| 70 + 3 files changed, 310 insertions(+) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/38cf9ccd/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/conf/InMemoryConfigurationStore.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/conf/InMemoryConfigurationStore.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/conf/InMemoryConfigurationStore.java new file mode 100644 index 000..a208fb9 --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/conf/InMemoryConfigurationStore.java @@ -0,0 +1,86 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.conf; + +import org.apache.hadoop.conf.Configuration; + +import java.util.LinkedList; +import java.util.List; +import java.util.Map; + +/** + * A default implementation of {@link YarnConfigurationStore}. Doesn't offer + * persistent configuration storage, just stores the configuration in memory. + */ +public class InMemoryConfigurationStore implements YarnConfigurationStore { + + private Configuration schedConf; + private LinkedList pendingMutations; + private long pendingId; + + @Override + public void initialize(Configuration conf, Configuration schedConf) { +this.schedConf = schedConf; +this.pendingMutations = new LinkedList<>(); +this.pendingId = 0; + } + + @Override + public synchronized long logMutation(LogMutation logMutation) { +logMutation.setId(++pendingId); +pendingMutations.add(logMutation); +return pendingId; + } + + @Override + public synchronized boolean confirmMutation(long id, boolean isValid) { +LogMutation mutation = pendingMutations.poll(); +// If confirmMutation is called out of order, discard mutations until id +// is reached. +while (mutation != null) { + if (mutation.getId() == id) { +if (isValid) { + Map mutations = mutation.getUpdates(); + for (Map.Entry kv : mutations.entrySet()) { +schedConf.set(kv.getKey(), kv.getValue()); + } +} +return true; + } + mutation = pendingMutations.poll(); +} +return false; + } + + @Override + public synchronized Configuration retrieve() { +return schedConf; + } + + @Override + public synchronized List getPendingMutations() { +return pendingMutations; + } + + @Override + public List getConfirmedConfHistory(long fromId) { +// Unimplemented. +return null; + } +}
[07/18] hadoop git commit: YARN-6575. Support global configuration mutation in MutableConfProvider. (Jonathan Hung via Xuan Gong)
YARN-6575. Support global configuration mutation in MutableConfProvider. (Jonathan Hung via Xuan Gong) Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/3c500842 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/3c500842 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/3c500842 Branch: refs/heads/branch-2 Commit: 3c50084219c8899d512e03c5a327feb99839d6e8 Parents: a47823c Author: XuanAuthored: Mon Jun 5 16:30:38 2017 -0700 Committer: Jonathan Hung Committed: Mon Oct 9 11:12:07 2017 -0700 -- .../ConfigurationMutationACLPolicy.java | 4 +- .../DefaultConfigurationMutationACLPolicy.java | 4 +- .../scheduler/MutableConfScheduler.java | 4 +- .../scheduler/MutableConfigurationProvider.java | 4 +- .../scheduler/capacity/CapacityScheduler.java | 4 +- .../conf/MutableCSConfigurationProvider.java| 10 +- ...ueueAdminConfigurationMutationACLPolicy.java | 22 +++- .../resourcemanager/webapp/RMWebServices.java | 4 +- .../webapp/dao/QueueConfigsUpdateInfo.java | 60 --- .../webapp/dao/SchedConfUpdateInfo.java | 69 + .../TestConfigurationMutationACLPolicies.java | 28 - .../TestMutableCSConfigurationProvider.java | 10 +- .../TestRMWebServicesConfigurationMutation.java | 101 +-- 13 files changed, 205 insertions(+), 119 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/3c500842/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/ConfigurationMutationACLPolicy.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/ConfigurationMutationACLPolicy.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/ConfigurationMutationACLPolicy.java index 724487b..3a388fe 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/ConfigurationMutationACLPolicy.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/ConfigurationMutationACLPolicy.java @@ -21,7 +21,7 @@ package org.apache.hadoop.yarn.server.resourcemanager.scheduler; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.security.UserGroupInformation; import org.apache.hadoop.yarn.server.resourcemanager.RMContext; -import org.apache.hadoop.yarn.server.resourcemanager.webapp.dao.QueueConfigsUpdateInfo; +import org.apache.hadoop.yarn.server.resourcemanager.webapp.dao.SchedConfUpdateInfo; /** * Interface for determining whether configuration mutations are allowed. @@ -41,7 +41,7 @@ public interface ConfigurationMutationACLPolicy { * @param confUpdate configurations to be updated * @return whether provided mutation is allowed or not */ - boolean isMutationAllowed(UserGroupInformation user, QueueConfigsUpdateInfo + boolean isMutationAllowed(UserGroupInformation user, SchedConfUpdateInfo confUpdate); } http://git-wip-us.apache.org/repos/asf/hadoop/blob/3c500842/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/DefaultConfigurationMutationACLPolicy.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/DefaultConfigurationMutationACLPolicy.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/DefaultConfigurationMutationACLPolicy.java index 680c3b8..6648668 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/DefaultConfigurationMutationACLPolicy.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/DefaultConfigurationMutationACLPolicy.java @@ -22,7 +22,7 @@ import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.security.UserGroupInformation; import
[18/18] hadoop git commit: Merge branch 'YARN-5734-branch-2' into branch-2. (xgong)
Merge branch 'YARN-5734-branch-2' into branch-2. (xgong) Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/6cdc6771 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/6cdc6771 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/6cdc6771 Branch: refs/heads/branch-2 Commit: 6cdc6771eaa1570914a2d41492ef7e33b241fe2d Parents: 1ddc495 4bd3f0d Author: Xuan <xg...@apache.org> Authored: Mon Oct 9 13:53:24 2017 -0700 Committer: Xuan <xg...@apache.org> Committed: Mon Oct 9 13:53:24 2017 -0700 -- hadoop-yarn-project/hadoop-yarn/bin/yarn| 4 + hadoop-yarn-project/hadoop-yarn/bin/yarn.cmd| 6 + .../hadoop/yarn/conf/YarnConfiguration.java | 61 +++ .../hadoop/yarn/client/cli/SchedConfCLI.java| 254 + .../yarn/client/cli/TestSchedConfCLI.java | 158 ++ .../hadoop/yarn/webapp/dao/QueueConfigInfo.java | 57 +++ .../yarn/webapp/dao/SchedConfUpdateInfo.java| 85 +++ .../hadoop/yarn/webapp/dao/package-info.java| 27 + .../yarn/webapp/util/YarnWebServiceUtils.java | 14 + .../src/main/resources/yarn-default.xml | 64 +++ .../server/resourcemanager/AdminService.java| 24 +- .../server/resourcemanager/ResourceManager.java | 24 +- .../RMStateVersionIncompatibleException.java| 2 +- .../recovery/ZKRMStateStore.java| 5 +- .../ConfigurationMutationACLPolicy.java | 47 ++ .../ConfigurationMutationACLPolicyFactory.java | 49 ++ .../DefaultConfigurationMutationACLPolicy.java | 45 ++ .../scheduler/MutableConfScheduler.java | 53 ++ .../scheduler/MutableConfigurationProvider.java | 66 +++ .../scheduler/capacity/CapacityScheduler.java | 66 ++- .../capacity/CapacitySchedulerContext.java | 6 + .../capacity/CapacitySchedulerQueueManager.java | 11 +- .../capacity/conf/CSConfigurationProvider.java | 47 ++ .../conf/FileBasedCSConfigurationProvider.java | 67 +++ .../conf/InMemoryConfigurationStore.java| 95 .../conf/LeveldbConfigurationStore.java | 322 .../conf/MutableCSConfigurationProvider.java| 284 ++ ...ueueAdminConfigurationMutationACLPolicy.java | 110 .../capacity/conf/YarnConfigurationStore.java | 178 +++ .../conf/YarnConfigurationStoreFactory.java | 46 ++ .../capacity/conf/ZKConfigurationStore.java | 235 + .../scheduler/capacity/conf/package-info.java | 29 ++ .../resourcemanager/webapp/RMWebServices.java | 67 ++- .../resourcemanager/TestRMAdminService.java | 23 + .../TestConfigurationMutationACLPolicies.java | 172 +++ .../capacity/TestCapacityScheduler.java | 4 +- .../conf/ConfigurationStoreBaseTest.java| 92 .../conf/TestInMemoryConfigurationStore.java| 30 ++ .../conf/TestLeveldbConfigurationStore.java | 211 .../TestMutableCSConfigurationProvider.java | 102 .../capacity/conf/TestZKConfigurationStore.java | 412 +++ .../TestRMWebServicesConfigurationMutation.java | 513 +++ .../src/site/markdown/CapacityScheduler.md | 25 +- .../src/site/markdown/ResourceManagerRest.md| 188 +++ .../src/site/markdown/YarnCommands.md | 13 + 45 files changed, 4344 insertions(+), 49 deletions(-) -- - To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-commits-h...@hadoop.apache.org
[16/18] hadoop git commit: YARN-7046. Add closing logic to configuration store
YARN-7046. Add closing logic to configuration store Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/c8f9fe88 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/c8f9fe88 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/c8f9fe88 Branch: refs/heads/branch-2 Commit: c8f9fe88d5fa207804385784387c609d95e320b2 Parents: 887b366 Author: Jonathan HungAuthored: Fri Sep 22 10:18:27 2017 -0700 Committer: Jonathan Hung Committed: Mon Oct 9 11:12:08 2017 -0700 -- .../scheduler/MutableConfigurationProvider.java | 8 + .../scheduler/capacity/CapacityScheduler.java | 3 + .../conf/LeveldbConfigurationStore.java | 44 ++-- .../conf/MutableCSConfigurationProvider.java| 6 + .../capacity/conf/YarnConfigurationStore.java | 6 + .../conf/ConfigurationStoreBaseTest.java| 2 + .../conf/TestLeveldbConfigurationStore.java | 213 +++ 7 files changed, 270 insertions(+), 12 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/c8f9fe88/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/MutableConfigurationProvider.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/MutableConfigurationProvider.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/MutableConfigurationProvider.java index f8e8814..2b9b25a 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/MutableConfigurationProvider.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/MutableConfigurationProvider.java @@ -21,6 +21,8 @@ package org.apache.hadoop.yarn.server.resourcemanager.scheduler; import org.apache.hadoop.security.UserGroupInformation; import org.apache.hadoop.yarn.webapp.dao.SchedConfUpdateInfo; +import java.io.IOException; + /** * Interface for allowing changing scheduler configurations. */ @@ -55,4 +57,10 @@ public interface MutableConfigurationProvider { * @throws Exception if confirming mutation fails */ void confirmPendingMutation(boolean isValid) throws Exception; + + /** + * Closes the configuration provider, releasing any required resources. + * @throws IOException on failure to close + */ + void close() throws IOException; } http://git-wip-us.apache.org/repos/asf/hadoop/blob/c8f9fe88/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacityScheduler.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacityScheduler.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacityScheduler.java index 6e1e1cd..ea77b56 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacityScheduler.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacityScheduler.java @@ -412,6 +412,9 @@ public class CapacityScheduler extends writeLock.unlock(); } +if (isConfigurationMutable()) { + ((MutableConfigurationProvider) csConfProvider).close(); +} super.serviceStop(); } http://git-wip-us.apache.org/repos/asf/hadoop/blob/c8f9fe88/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/conf/LeveldbConfigurationStore.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/conf/LeveldbConfigurationStore.java
[03/18] hadoop git commit: YARN-7024: Fix issues on recovery in LevelDB store. Contributed by Jonathan Hung
YARN-7024: Fix issues on recovery in LevelDB store. Contributed by Jonathan Hung Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/36cda2ff Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/36cda2ff Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/36cda2ff Branch: refs/heads/branch-2 Commit: 36cda2ff806372cb945fe8e8d07b6facbea66bca Parents: 3a31c38 Author: XuanAuthored: Wed Aug 23 11:11:41 2017 -0700 Committer: Jonathan Hung Committed: Mon Oct 9 11:12:07 2017 -0700 -- .../scheduler/capacity/conf/InMemoryConfigurationStore.java | 2 +- .../scheduler/capacity/conf/LeveldbConfigurationStore.java | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/36cda2ff/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/conf/InMemoryConfigurationStore.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/conf/InMemoryConfigurationStore.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/conf/InMemoryConfigurationStore.java index b97be1b..c63734d 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/conf/InMemoryConfigurationStore.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/conf/InMemoryConfigurationStore.java @@ -79,7 +79,7 @@ public class InMemoryConfigurationStore implements YarnConfigurationStore { @Override public synchronized List getPendingMutations() { -return pendingMutations; +return new LinkedList<>(pendingMutations); } @Override http://git-wip-us.apache.org/repos/asf/hadoop/blob/36cda2ff/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/conf/LeveldbConfigurationStore.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/conf/LeveldbConfigurationStore.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/conf/LeveldbConfigurationStore.java index 1534685..1280fab 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/conf/LeveldbConfigurationStore.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/conf/LeveldbConfigurationStore.java @@ -65,6 +65,7 @@ public class LeveldbConfigurationStore implements YarnConfigurationStore { private static final String LOG_COMMITTED_TXN = "committedTxn"; private DB db; + // Txnid for the last transaction logged to the store. private long txnId = 0; private long minTxn = 0; private long maxLogs; @@ -92,6 +93,7 @@ public class LeveldbConfigurationStore implements YarnConfigurationStore { break; } pendingMutations.add(deserLogMutation(entry.getValue())); +txnId++; } // Get the earliest txnId stored in logs itr.seekToFirst(); @@ -278,7 +280,7 @@ public class LeveldbConfigurationStore implements YarnConfigurationStore { @Override public List getPendingMutations() { -return pendingMutations; +return new LinkedList<>(pendingMutations); } @Override - To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-commits-h...@hadoop.apache.org
hadoop git commit: YARN-7259. Add size-based rolling policy to LogAggregationIndexedFileController. (xgong via wangda)
Repository: hadoop Updated Branches: refs/heads/branch-3.0 aef3e4b6a -> c2f751cb0 YARN-7259. Add size-based rolling policy to LogAggregationIndexedFileController. (xgong via wangda) Change-Id: Ifaf82c0aee6b73b9b6ebf103aa72e131e3942f31 (cherry picked from commit 280080fad01304c85a9ede4d4f7b707eb36c0155) Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/c2f751cb Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/c2f751cb Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/c2f751cb Branch: refs/heads/branch-3.0 Commit: c2f751cb0f002214d6fc8f9c9a50522b397b070a Parents: aef3e4b Author: Wangda Tan <wan...@apache.org> Authored: Mon Oct 2 15:30:22 2017 -0700 Committer: Xuan <xg...@apache.org> Committed: Mon Oct 2 16:37:27 2017 -0700 -- .../ifile/IndexedFileAggregatedLogsBlock.java | 14 +- .../LogAggregationIndexedFileController.java| 397 +-- .../TestLogAggregationIndexFileController.java | 67 +++- 3 files changed, 340 insertions(+), 138 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/c2f751cb/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/logaggregation/filecontroller/ifile/IndexedFileAggregatedLogsBlock.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/logaggregation/filecontroller/ifile/IndexedFileAggregatedLogsBlock.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/logaggregation/filecontroller/ifile/IndexedFileAggregatedLogsBlock.java index c4cbfda..5439b53 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/logaggregation/filecontroller/ifile/IndexedFileAggregatedLogsBlock.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/logaggregation/filecontroller/ifile/IndexedFileAggregatedLogsBlock.java @@ -101,10 +101,9 @@ public class IndexedFileAggregatedLogsBlock extends LogAggregationHtmlBlock { return; } -Map<String, FileStatus> checkSumFiles; +Map<String, Long> checkSumFiles; try { - checkSumFiles = fileController.filterFiles(nodeFiles, - LogAggregationIndexedFileController.CHECK_SUM_FILE_SUFFIX); + checkSumFiles = fileController.parseCheckSumFiles(nodeFiles); } catch (IOException ex) { LOG.error("Error getting logs for " + logEntity, ex); html.h1("Error getting logs for " + logEntity); @@ -125,12 +124,11 @@ public class IndexedFileAggregatedLogsBlock extends LogAggregationHtmlBlock { String desiredLogType = $(CONTAINER_LOG_TYPE); try { for (FileStatus thisNodeFile : fileToRead) { -FileStatus checkSum = fileController.getAllChecksumFiles( -checkSumFiles, thisNodeFile.getPath().getName()); +Long checkSumIndex = checkSumFiles.get( +thisNodeFile.getPath().getName()); long endIndex = -1; -if (checkSum != null) { - endIndex = fileController.loadIndexedLogsCheckSum( - checkSum.getPath()); +if (checkSumIndex != null) { + endIndex = checkSumIndex.longValue(); } IndexedLogsMeta indexedLogsMeta = null; try { http://git-wip-us.apache.org/repos/asf/hadoop/blob/c2f751cb/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/logaggregation/filecontroller/ifile/LogAggregationIndexedFileController.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/logaggregation/filecontroller/ifile/LogAggregationIndexedFileController.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/logaggregation/filecontroller/ifile/LogAggregationIndexedFileController.java index 243945e..800c0a2 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/logaggregation/filecontroller/ifile/LogAggregationIndexedFileController.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/logaggregation/filecontroller/ifile/LogAggregationIndexedFileController.java @@ -29,6 +29,8 @@ import java.io.InputStream; import java.io.OutputStream; import java.io.Serializable; import java.nio.charset.Charset; +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; import java.security.PrivilegedExceptionAction; import java.util.ArrayList; import java.util.Arrays; @@ -41,7 +43,6 @@ import java.util.List; import java
hadoop git commit: YARN-7194. Log aggregation status is always Failed with the newly added log aggregation IndexedFileFormat. Contributed by Xuan Gong.
Repository: hadoop Updated Branches: refs/heads/branch-3.0 eb76d3dbe -> aef3e4b6a YARN-7194. Log aggregation status is always Failed with the newly added log aggregation IndexedFileFormat. Contributed by Xuan Gong. (cherry picked from commit c92c1d521eadfd8a4cd8205cc6aee74816f353f4) Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/aef3e4b6 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/aef3e4b6 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/aef3e4b6 Branch: refs/heads/branch-3.0 Commit: aef3e4b6af0368bfdc47fbdca3899d337e0d94bf Parents: eb76d3d Author: Junping DuAuthored: Wed Sep 13 22:16:06 2017 -0700 Committer: Xuan Committed: Mon Oct 2 16:35:27 2017 -0700 -- .../ifile/LogAggregationIndexedFileController.java | 3 ++- .../ifile/TestLogAggregationIndexFileController.java | 6 ++ 2 files changed, 4 insertions(+), 5 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/aef3e4b6/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/logaggregation/filecontroller/ifile/LogAggregationIndexedFileController.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/logaggregation/filecontroller/ifile/LogAggregationIndexedFileController.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/logaggregation/filecontroller/ifile/LogAggregationIndexedFileController.java index 6cb2062..243945e 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/logaggregation/filecontroller/ifile/LogAggregationIndexedFileController.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/logaggregation/filecontroller/ifile/LogAggregationIndexedFileController.java @@ -392,7 +392,8 @@ public class LogAggregationIndexedFileController this.fsDataOStream.writeInt(length); byte[] separator = this.uuid.getBytes(Charset.forName("UTF-8")); this.fsDataOStream.write(separator); -if (logAggregationSuccessfullyInThisCyCle) { +if (logAggregationSuccessfullyInThisCyCle && +record.isLogAggregationInRolling()) { deleteFileWithRetries(fc, ugi, remoteLogCheckSumFile); } } http://git-wip-us.apache.org/repos/asf/hadoop/blob/aef3e4b6/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/logaggregation/filecontroller/ifile/TestLogAggregationIndexFileController.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/logaggregation/filecontroller/ifile/TestLogAggregationIndexFileController.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/logaggregation/filecontroller/ifile/TestLogAggregationIndexFileController.java index 5f61710..f77ad96 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/logaggregation/filecontroller/ifile/TestLogAggregationIndexFileController.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/logaggregation/filecontroller/ifile/TestLogAggregationIndexFileController.java @@ -164,9 +164,7 @@ public class TestLogAggregationIndexFileController { fileFormat.initializeWriter(context); fileFormat.write(key1, value); -LogAggregationFileControllerContext record = mock( -LogAggregationFileControllerContext.class); -fileFormat.postWrite(record); +fileFormat.postWrite(context); fileFormat.closeWriter(); ContainerLogsRequest logRequest = new ContainerLogsRequest(); @@ -267,7 +265,7 @@ public class TestLogAggregationIndexFileController { // first write and second write fileFormat.initializeWriter(context); fileFormat.write(key1, value2); -fileFormat.postWrite(record); +fileFormat.postWrite(context); fileFormat.closeWriter(); fileFormat.readAggregatedLogsMeta( logRequest); - To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-commits-h...@hadoop.apache.org
hadoop git commit: YARN-7257. AggregatedLogsBlock reports a bad 'end' value as a bad 'start' value. Contributed by Jason Lowe
Repository: hadoop Updated Branches: refs/heads/branch-2 c570ddaa6 -> c143708ac YARN-7257. AggregatedLogsBlock reports a bad 'end' value as a bad 'start' value. Contributed by Jason Lowe (cherry picked from commit 28c4957fccebe2d7e63ec9fe9af58313b4f21d4f) (cherry picked from commit 81e78727938a1c0369f164849cc3a08add31be46) Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/c143708a Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/c143708a Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/c143708a Branch: refs/heads/branch-2 Commit: c143708acfb17e91c5e4fc9bd9b496fc7d2db29c Parents: c570dda Author: XuanAuthored: Wed Sep 27 15:46:18 2017 -0700 Committer: Xuan Committed: Wed Sep 27 16:04:06 2017 -0700 -- .../org/apache/hadoop/yarn/webapp/log/AggregatedLogsBlock.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/c143708a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/log/AggregatedLogsBlock.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/log/AggregatedLogsBlock.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/log/AggregatedLogsBlock.java index 1c0b990..d1abce4 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/log/AggregatedLogsBlock.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/log/AggregatedLogsBlock.java @@ -68,7 +68,7 @@ public class AggregatedLogsBlock extends HtmlBlock { LogAggregationWebUtils.getLogEndIndex( html, $("end")); } catch (NumberFormatException ne) { - html.h1()._("Invalid log start value: " + $("end"))._(); + html.h1()._("Invalid log end value: " + $("end"))._(); isValid = false; } @@ -133,4 +133,4 @@ public class AggregatedLogsBlock extends HtmlBlock { sb.append(scheme).append(nodeId).append("/node/application/").append(appId); return sb.toString(); } -} \ No newline at end of file +} - To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-commits-h...@hadoop.apache.org
hadoop git commit: YARN-7257. AggregatedLogsBlock reports a bad 'end' value as a bad 'start' value. Contributed by Jason Lowe
Repository: hadoop Updated Branches: refs/heads/branch-3.0 ad7ed9d04 -> 81e787279 YARN-7257. AggregatedLogsBlock reports a bad 'end' value as a bad 'start' value. Contributed by Jason Lowe (cherry picked from commit 28c4957fccebe2d7e63ec9fe9af58313b4f21d4f) Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/81e78727 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/81e78727 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/81e78727 Branch: refs/heads/branch-3.0 Commit: 81e78727938a1c0369f164849cc3a08add31be46 Parents: ad7ed9d Author: XuanAuthored: Wed Sep 27 15:46:18 2017 -0700 Committer: Xuan Committed: Wed Sep 27 15:47:45 2017 -0700 -- .../org/apache/hadoop/yarn/webapp/log/AggregatedLogsBlock.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/81e78727/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/log/AggregatedLogsBlock.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/log/AggregatedLogsBlock.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/log/AggregatedLogsBlock.java index f6fea74..ef6876a 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/log/AggregatedLogsBlock.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/log/AggregatedLogsBlock.java @@ -67,7 +67,7 @@ public class AggregatedLogsBlock extends HtmlBlock { LogAggregationWebUtils.getLogEndIndex( html, $("end")); } catch (NumberFormatException ne) { - html.h1().__("Invalid log start value: " + $("end")).__(); + html.h1().__("Invalid log end value: " + $("end")).__(); isValid = false; } - To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-commits-h...@hadoop.apache.org
hadoop git commit: YARN-7257. AggregatedLogsBlock reports a bad 'end' value as a bad 'start' value. Contributed by Jason Lowe
Repository: hadoop Updated Branches: refs/heads/trunk c87db8d15 -> 28c4957fc YARN-7257. AggregatedLogsBlock reports a bad 'end' value as a bad 'start' value. Contributed by Jason Lowe Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/28c4957f Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/28c4957f Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/28c4957f Branch: refs/heads/trunk Commit: 28c4957fccebe2d7e63ec9fe9af58313b4f21d4f Parents: c87db8d Author: XuanAuthored: Wed Sep 27 15:46:18 2017 -0700 Committer: Xuan Committed: Wed Sep 27 15:46:18 2017 -0700 -- .../org/apache/hadoop/yarn/webapp/log/AggregatedLogsBlock.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/28c4957f/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/log/AggregatedLogsBlock.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/log/AggregatedLogsBlock.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/log/AggregatedLogsBlock.java index f6fea74..ef6876a 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/log/AggregatedLogsBlock.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/log/AggregatedLogsBlock.java @@ -67,7 +67,7 @@ public class AggregatedLogsBlock extends HtmlBlock { LogAggregationWebUtils.getLogEndIndex( html, $("end")); } catch (NumberFormatException ne) { - html.h1().__("Invalid log start value: " + $("end")).__(); + html.h1().__("Invalid log end value: " + $("end")).__(); isValid = false; } - To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-commits-h...@hadoop.apache.org
hadoop git commit: YARN-6570. No logs were found for running application, running container. (Contributed by Junping Du)
Repository: hadoop Updated Branches: refs/heads/branch-2.8 1132f4825 -> e103acc8f YARN-6570. No logs were found for running application, running container. (Contributed by Junping Du) Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/e103acc8 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/e103acc8 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/e103acc8 Branch: refs/heads/branch-2.8 Commit: e103acc8f495135e52ec1e700dc33747e735967e Parents: 1132f48 Author: XuanAuthored: Fri Sep 22 14:48:12 2017 -0700 Committer: Xuan Committed: Fri Sep 22 14:48:12 2017 -0700 -- .../hadoop/yarn/api/records/ContainerState.java| 17 +++-- .../src/main/proto/yarn_protos.proto | 1 + .../containermanager/container/ContainerImpl.java | 2 ++ .../yarn/server/nodemanager/TestEventFlow.java | 3 ++- .../server/nodemanager/TestNodeManagerResync.java | 8 .../nodemanager/TestNodeManagerShutdown.java | 2 +- .../containermanager/container/TestContainer.java | 3 +++ 7 files changed, 28 insertions(+), 8 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/e103acc8/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/api/records/ContainerState.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/api/records/ContainerState.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/api/records/ContainerState.java index 323d31d..3ced112 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/api/records/ContainerState.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/api/records/ContainerState.java @@ -20,6 +20,7 @@ package org.apache.hadoop.yarn.api.records; import org.apache.hadoop.classification.InterfaceAudience.Public; import org.apache.hadoop.classification.InterfaceStability.Stable; +import org.apache.hadoop.classification.InterfaceStability.Unstable; /** * State of a Container. @@ -28,11 +29,15 @@ import org.apache.hadoop.classification.InterfaceStability.Stable; @Stable public enum ContainerState { /** New container */ - NEW, - + NEW, + /** Running container */ - RUNNING, - + RUNNING, + /** Completed container */ - COMPLETE -} \ No newline at end of file + COMPLETE, + + /** Scheduled (awaiting resources) at the NM. */ + @Unstable + SCHEDULED +} http://git-wip-us.apache.org/repos/asf/hadoop/blob/e103acc8/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/proto/yarn_protos.proto -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/proto/yarn_protos.proto b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/proto/yarn_protos.proto index 8c847b2..8727505 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/proto/yarn_protos.proto +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/proto/yarn_protos.proto @@ -82,6 +82,7 @@ enum ContainerStateProto { C_NEW = 1; C_RUNNING = 2; C_COMPLETE = 3; + C_SCHEDULED = 4; } message ContainerProto { http://git-wip-us.apache.org/repos/asf/hadoop/blob/e103acc8/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/container/ContainerImpl.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/container/ContainerImpl.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/container/ContainerImpl.java index 7dc8ab6..9e72b13 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/container/ContainerImpl.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/container/ContainerImpl.java @@ -363,9 +363,11 @@ public class ContainerImpl implements Container { public org.apache.hadoop.yarn.api.records.ContainerState getCurrentState() { switch (stateMachine.getCurrentState()) { case NEW: + return org.apache.hadoop.yarn.api.records.ContainerState.NEW; case LOCALIZING: case
hadoop git commit: YARN-6570. No logs were found for running application, running container. Contributed by Junping Du
Repository: hadoop Updated Branches: refs/heads/branch-2 74708d381 -> 6aaca3d08 YARN-6570. No logs were found for running application, running container. Contributed by Junping Du (cherry picked from commit 7c732924a889cd280e972882619a1827877fbafa) (cherry picked from commit e91447ccc9ff438dd300e2564c251b2c4b0f369a) Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/6aaca3d0 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/6aaca3d0 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/6aaca3d0 Branch: refs/heads/branch-2 Commit: 6aaca3d08edf02925bcc0b4521b21b6bf9aacb99 Parents: 74708d3 Author: XuanAuthored: Mon Sep 18 14:04:05 2017 -0700 Committer: Xuan Committed: Mon Sep 18 14:05:36 2017 -0700 -- .../nodemanager/containermanager/container/ContainerImpl.java | 1 + .../org/apache/hadoop/yarn/server/nodemanager/TestEventFlow.java | 3 ++- .../nodemanager/containermanager/container/TestContainer.java | 3 +++ 3 files changed, 6 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/6aaca3d0/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/container/ContainerImpl.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/container/ContainerImpl.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/container/ContainerImpl.java index aabb551..6f68bb9 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/container/ContainerImpl.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/container/ContainerImpl.java @@ -601,6 +601,7 @@ public class ContainerImpl implements Container { public org.apache.hadoop.yarn.api.records.ContainerState getCurrentState() { switch (stateMachine.getCurrentState()) { case NEW: + return org.apache.hadoop.yarn.api.records.ContainerState.NEW; case LOCALIZING: case LOCALIZATION_FAILED: case SCHEDULED: http://git-wip-us.apache.org/repos/asf/hadoop/blob/6aaca3d0/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/TestEventFlow.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/TestEventFlow.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/TestEventFlow.java index 8e4522b..9e59449 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/TestEventFlow.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/TestEventFlow.java @@ -159,7 +159,8 @@ public class TestEventFlow { containerManager.startContainers(allRequests); BaseContainerManagerTest.waitForContainerState(containerManager, cID, -Arrays.asList(ContainerState.RUNNING, ContainerState.SCHEDULED), 20); +Arrays.asList(ContainerState.RUNNING, ContainerState.SCHEDULED, +ContainerState.NEW), 20); List containerIds = new ArrayList(); containerIds.add(cID); http://git-wip-us.apache.org/repos/asf/hadoop/blob/6aaca3d0/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/container/TestContainer.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/container/TestContainer.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/container/TestContainer.java index 64e6cf0..b44b500 100644 ---
hadoop git commit: YARN-6570. No logs were found for running application, running container. Contributed by Junping Du
Repository: hadoop Updated Branches: refs/heads/branch-3.0 a57f76a3c -> e91447ccc YARN-6570. No logs were found for running application, running container. Contributed by Junping Du (cherry picked from commit 7c732924a889cd280e972882619a1827877fbafa) Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/e91447cc Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/e91447cc Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/e91447cc Branch: refs/heads/branch-3.0 Commit: e91447ccc9ff438dd300e2564c251b2c4b0f369a Parents: a57f76a Author: XuanAuthored: Mon Sep 18 14:04:05 2017 -0700 Committer: Xuan Committed: Mon Sep 18 14:05:02 2017 -0700 -- .../nodemanager/containermanager/container/ContainerImpl.java | 1 + .../org/apache/hadoop/yarn/server/nodemanager/TestEventFlow.java | 3 ++- .../nodemanager/containermanager/container/TestContainer.java | 3 +++ 3 files changed, 6 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/e91447cc/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/container/ContainerImpl.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/container/ContainerImpl.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/container/ContainerImpl.java index e028f38..3300e5e 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/container/ContainerImpl.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/container/ContainerImpl.java @@ -529,6 +529,7 @@ public class ContainerImpl implements Container { public org.apache.hadoop.yarn.api.records.ContainerState getCurrentState() { switch (stateMachine.getCurrentState()) { case NEW: + return org.apache.hadoop.yarn.api.records.ContainerState.NEW; case LOCALIZING: case LOCALIZATION_FAILED: case SCHEDULED: http://git-wip-us.apache.org/repos/asf/hadoop/blob/e91447cc/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/TestEventFlow.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/TestEventFlow.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/TestEventFlow.java index 8e4522b..9e59449 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/TestEventFlow.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/TestEventFlow.java @@ -159,7 +159,8 @@ public class TestEventFlow { containerManager.startContainers(allRequests); BaseContainerManagerTest.waitForContainerState(containerManager, cID, -Arrays.asList(ContainerState.RUNNING, ContainerState.SCHEDULED), 20); +Arrays.asList(ContainerState.RUNNING, ContainerState.SCHEDULED, +ContainerState.NEW), 20); List containerIds = new ArrayList(); containerIds.add(cID); http://git-wip-us.apache.org/repos/asf/hadoop/blob/e91447cc/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/container/TestContainer.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/container/TestContainer.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/container/TestContainer.java index 34bf134..a907812 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/container/TestContainer.java +++
hadoop git commit: YARN-6570. No logs were found for running application, running container. Contributed by Junping Du
Repository: hadoop Updated Branches: refs/heads/trunk 29dd55153 -> 7c732924a YARN-6570. No logs were found for running application, running container. Contributed by Junping Du Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/7c732924 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/7c732924 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/7c732924 Branch: refs/heads/trunk Commit: 7c732924a889cd280e972882619a1827877fbafa Parents: 29dd551 Author: XuanAuthored: Mon Sep 18 14:04:05 2017 -0700 Committer: Xuan Committed: Mon Sep 18 14:04:05 2017 -0700 -- .../nodemanager/containermanager/container/ContainerImpl.java | 1 + .../org/apache/hadoop/yarn/server/nodemanager/TestEventFlow.java | 3 ++- .../nodemanager/containermanager/container/TestContainer.java | 3 +++ 3 files changed, 6 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/7c732924/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/container/ContainerImpl.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/container/ContainerImpl.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/container/ContainerImpl.java index df107a7..836e70e 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/container/ContainerImpl.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/container/ContainerImpl.java @@ -616,6 +616,7 @@ public class ContainerImpl implements Container { public org.apache.hadoop.yarn.api.records.ContainerState getCurrentState() { switch (stateMachine.getCurrentState()) { case NEW: + return org.apache.hadoop.yarn.api.records.ContainerState.NEW; case LOCALIZING: case LOCALIZATION_FAILED: case SCHEDULED: http://git-wip-us.apache.org/repos/asf/hadoop/blob/7c732924/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/TestEventFlow.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/TestEventFlow.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/TestEventFlow.java index 8e4522b..9e59449 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/TestEventFlow.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/TestEventFlow.java @@ -159,7 +159,8 @@ public class TestEventFlow { containerManager.startContainers(allRequests); BaseContainerManagerTest.waitForContainerState(containerManager, cID, -Arrays.asList(ContainerState.RUNNING, ContainerState.SCHEDULED), 20); +Arrays.asList(ContainerState.RUNNING, ContainerState.SCHEDULED, +ContainerState.NEW), 20); List containerIds = new ArrayList(); containerIds.add(cID); http://git-wip-us.apache.org/repos/asf/hadoop/blob/7c732924/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/container/TestContainer.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/container/TestContainer.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/container/TestContainer.java index 64e6cf0..b44b500 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/container/TestContainer.java +++
[1/2] hadoop git commit: YARN-7072. Add a new log aggregation file format controller (xgong)
Repository: hadoop Updated Branches: refs/heads/branch-2 23dc6ef8b -> 02ae3f820 http://git-wip-us.apache.org/repos/asf/hadoop/blob/02ae3f82/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/logaggregation/filecontroller/tfile/LogAggregationTFileController.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/logaggregation/filecontroller/tfile/LogAggregationTFileController.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/logaggregation/filecontroller/tfile/LogAggregationTFileController.java index aaed538..989b326 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/logaggregation/filecontroller/tfile/LogAggregationTFileController.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/logaggregation/filecontroller/tfile/LogAggregationTFileController.java @@ -27,7 +27,6 @@ import java.security.PrivilegedExceptionAction; import java.util.ArrayList; import java.util.List; import java.util.Map; -import org.apache.commons.lang.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.commons.math3.util.Pair; @@ -192,7 +191,7 @@ public class LogAggregationTFileController while (valueStream != null) { if (getAllContainers || (key.toString().equals(containerIdStr))) { if (createPrintStream) { -os = createPrintStream( +os = LogToolUtils.createPrintStream( logRequest.getOutputLocalDir(), thisNodeFile.getPath().getName(), key.toString()); } @@ -209,12 +208,7 @@ public class LogAggregationTFileController Times.format(thisNodeFile.getModificationTime()), valueStream, os, buf, ContainerLogAggregationType.AGGREGATED); - StringBuilder sb = new StringBuilder(); - String endOfFile = "End of LogType:" + fileType; - sb.append("\n" + endOfFile + "\n"); - sb.append(StringUtils.repeat("*", endOfFile.length() + 50) - + "\n\n"); - byte[] b = sb.toString().getBytes( + byte[] b = aggregatedLogSuffix(fileType).getBytes( Charset.forName("UTF-8")); os.write(b, 0, b.length); findLogs = true; http://git-wip-us.apache.org/repos/asf/hadoop/blob/02ae3f82/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/logaggregation/filecontroller/ifile/TestLogAggregationIndexFileController.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/logaggregation/filecontroller/ifile/TestLogAggregationIndexFileController.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/logaggregation/filecontroller/ifile/TestLogAggregationIndexFileController.java new file mode 100644 index 000..5f61710 --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/logaggregation/filecontroller/ifile/TestLogAggregationIndexFileController.java @@ -0,0 +1,316 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.hadoop.yarn.logaggregation.filecontroller.ifile; + +import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +import java.io.ByteArrayOutputStream; +import java.io.File; +import java.io.FileWriter; +import java.io.IOException; +import java.io.PrintStream; +import java.io.Writer; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import org.apache.commons.io.IOUtils; +import
[2/2] hadoop git commit: YARN-7072. Add a new log aggregation file format controller (xgong)
YARN-7072. Add a new log aggregation file format controller (xgong) Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/02ae3f82 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/02ae3f82 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/02ae3f82 Branch: refs/heads/branch-2 Commit: 02ae3f8202f11155b2f7f9b91e9c7c2158afd865 Parents: 23dc6ef Author: Xuan <xg...@apache.org> Authored: Sun Sep 10 23:18:31 2017 -0700 Committer: Xuan <xg...@apache.org> Committed: Sun Sep 10 23:18:31 2017 -0700 -- .../file/tfile/BoundedRangeFileInputStream.java |2 +- .../hadoop/io/file/tfile/Compression.java |6 +- .../file/tfile/SimpleBufferedOutputStream.java |2 +- .../apache/hadoop/yarn/client/cli/LogsCLI.java | 25 +- .../logaggregation/ContainerLogFileInfo.java| 93 ++ .../yarn/logaggregation/ContainerLogMeta.java |8 +- .../logaggregation/LogAggregationUtils.java | 27 + .../yarn/logaggregation/LogCLIHelpers.java | 20 +- .../yarn/logaggregation/LogToolUtils.java | 26 + .../logaggregation/PerContainerLogFileInfo.java | 93 -- .../LogAggregationFileController.java | 45 +- .../ifile/IndexedFileAggregatedLogsBlock.java | 275 + .../LogAggregationIndexedFileController.java| 1056 ++ .../filecontroller/ifile/package-info.java | 21 + .../tfile/LogAggregationTFileController.java| 10 +- .../TestLogAggregationIndexFileController.java | 316 ++ .../webapp/TestAHSWebServices.java |8 +- .../server/webapp/dao/ContainerLogsInfo.java| 10 +- .../webapp/dao/NMContainerLogsInfo.java |8 +- .../nodemanager/webapp/TestNMWebServices.java |8 +- 20 files changed, 1886 insertions(+), 173 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/02ae3f82/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/file/tfile/BoundedRangeFileInputStream.java -- diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/file/tfile/BoundedRangeFileInputStream.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/file/tfile/BoundedRangeFileInputStream.java index 5fbd508..5a000d3 100644 --- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/file/tfile/BoundedRangeFileInputStream.java +++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/file/tfile/BoundedRangeFileInputStream.java @@ -28,7 +28,7 @@ import org.apache.hadoop.fs.FSDataInputStream; * BoundedRangeFileInputStream on top of the same FSDataInputStream and they * would not interfere with each other. */ -class BoundedRangeFileInputStream extends InputStream { +public class BoundedRangeFileInputStream extends InputStream { private FSDataInputStream in; private long pos; http://git-wip-us.apache.org/repos/asf/hadoop/blob/02ae3f82/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/file/tfile/Compression.java -- diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/file/tfile/Compression.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/file/tfile/Compression.java index 2298dc0..260ee4b 100644 --- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/file/tfile/Compression.java +++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/file/tfile/Compression.java @@ -43,7 +43,7 @@ import static org.apache.hadoop.fs.CommonConfigurationKeysPublic.IO_FILE_BUFFER_ /** * Compression related stuff. */ -final class Compression { +public final class Compression { static final Logger LOG = LoggerFactory.getLogger(Compression.class); /** @@ -75,7 +75,7 @@ final class Compression { /** * Compression algorithms. */ - static enum Algorithm { + public static enum Algorithm { LZO(TFile.COMPRESSION_LZO) { private transient boolean checked = false; private static final String defaultClazz = @@ -348,7 +348,7 @@ final class Compression { } } - static Algorithm getCompressionAlgorithmByName(String compressName) { + public static Algorithm getCompressionAlgorithmByName(String compressName) { Algorithm[] algos = Algorithm.class.getEnumConstants(); for (Algorithm a : algos) { http://git-wip-us.apache.org/repos/asf/hadoop/blob/02ae3f82/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/file/tfile/SimpleBufferedOutputStream.java -- diff --git a/hadoop-common-project/hadoop-common/src/main/jav
hadoop git commit: YARN-7024: Fix issues on recovery in LevelDB store. Contributed by Jonathan Hung
Repository: hadoop Updated Branches: refs/heads/YARN-5734 e7e0b71cd -> 98c4a5299 YARN-7024: Fix issues on recovery in LevelDB store. Contributed by Jonathan Hung Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/98c4a529 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/98c4a529 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/98c4a529 Branch: refs/heads/YARN-5734 Commit: 98c4a5299905d951c6e9c312495bd93644ceba99 Parents: e7e0b71 Author: XuanAuthored: Wed Aug 23 11:11:41 2017 -0700 Committer: Xuan Committed: Wed Aug 23 11:11:41 2017 -0700 -- .../scheduler/capacity/conf/InMemoryConfigurationStore.java | 2 +- .../scheduler/capacity/conf/LeveldbConfigurationStore.java | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/98c4a529/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/conf/InMemoryConfigurationStore.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/conf/InMemoryConfigurationStore.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/conf/InMemoryConfigurationStore.java index b97be1b..c63734d 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/conf/InMemoryConfigurationStore.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/conf/InMemoryConfigurationStore.java @@ -79,7 +79,7 @@ public class InMemoryConfigurationStore implements YarnConfigurationStore { @Override public synchronized List getPendingMutations() { -return pendingMutations; +return new LinkedList<>(pendingMutations); } @Override http://git-wip-us.apache.org/repos/asf/hadoop/blob/98c4a529/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/conf/LeveldbConfigurationStore.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/conf/LeveldbConfigurationStore.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/conf/LeveldbConfigurationStore.java index 1534685..1280fab 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/conf/LeveldbConfigurationStore.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/conf/LeveldbConfigurationStore.java @@ -65,6 +65,7 @@ public class LeveldbConfigurationStore implements YarnConfigurationStore { private static final String LOG_COMMITTED_TXN = "committedTxn"; private DB db; + // Txnid for the last transaction logged to the store. private long txnId = 0; private long minTxn = 0; private long maxLogs; @@ -92,6 +93,7 @@ public class LeveldbConfigurationStore implements YarnConfigurationStore { break; } pendingMutations.add(deserLogMutation(entry.getValue())); +txnId++; } // Get the earliest txnId stored in logs itr.seekToFirst(); @@ -278,7 +280,7 @@ public class LeveldbConfigurationStore implements YarnConfigurationStore { @Override public List getPendingMutations() { -return pendingMutations; +return new LinkedList<>(pendingMutations); } @Override - To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-commits-h...@hadoop.apache.org
[04/11] hadoop git commit: YARN-5952. Create REST API for changing YARN scheduler configurations. (Jonathan Hung via wangda)
YARN-5952. Create REST API for changing YARN scheduler configurations. (Jonathan Hung via wangda) Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/c7428cc6 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/c7428cc6 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/c7428cc6 Branch: refs/heads/YARN-5734 Commit: c7428cc687b6164b8a8e374eeba7d1f5017827f0 Parents: 81a13aa Author: Wangda TanAuthored: Mon Apr 3 10:12:01 2017 -0700 Committer: Xuan Committed: Wed Aug 23 11:02:12 2017 -0700 -- .../scheduler/MutableConfScheduler.java | 40 ++ .../scheduler/MutableConfigurationProvider.java | 5 +- .../scheduler/capacity/CapacityScheduler.java | 16 +- .../conf/InMemoryConfigurationStore.java| 6 +- .../conf/MutableCSConfigurationProvider.java| 24 +- .../resourcemanager/webapp/RMWebServices.java | 172 ++- .../webapp/dao/QueueConfigInfo.java | 57 +++ .../webapp/dao/QueueConfigsUpdateInfo.java | 60 +++ .../TestMutableCSConfigurationProvider.java | 6 +- .../TestRMWebServicesConfigurationMutation.java | 477 +++ 10 files changed, 851 insertions(+), 12 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/c7428cc6/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/MutableConfScheduler.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/MutableConfScheduler.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/MutableConfScheduler.java new file mode 100644 index 000..35e36e1 --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/MutableConfScheduler.java @@ -0,0 +1,40 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.hadoop.yarn.server.resourcemanager.scheduler; + +import org.apache.hadoop.security.UserGroupInformation; + +import java.io.IOException; +import java.util.Map; + +/** + * Interface for a scheduler that supports changing configuration at runtime. + * + */ +public interface MutableConfScheduler extends ResourceScheduler { + + /** + * Update the scheduler's configuration. + * @param user Caller of this update + * @param confUpdate key-value map of the configuration update + * @throws IOException if update is invalid + */ + void updateConfiguration(UserGroupInformation user, + Map confUpdate) throws IOException; + +} http://git-wip-us.apache.org/repos/asf/hadoop/blob/c7428cc6/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/MutableConfigurationProvider.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/MutableConfigurationProvider.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/MutableConfigurationProvider.java index da30a2b..889c3bc 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/MutableConfigurationProvider.java +++
[11/11] hadoop git commit: YARN-5953:Create CLI for changing YARN configurations. (Jonathan Hung via xgong)
YARN-5953:Create CLI for changing YARN configurations. (Jonathan Hung via xgong) Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/217fd99f Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/217fd99f Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/217fd99f Branch: refs/heads/YARN-5734 Commit: 217fd99fc0ccf0330ac585f777406ab239ef195b Parents: cc813e5 Author: Xuan <xg...@apache.org> Authored: Fri Jul 7 14:16:46 2017 -0700 Committer: Xuan <xg...@apache.org> Committed: Wed Aug 23 11:05:56 2017 -0700 -- hadoop-yarn-project/hadoop-yarn/bin/yarn| 3 + hadoop-yarn-project/hadoop-yarn/bin/yarn.cmd| 5 + .../hadoop/yarn/client/cli/SchedConfCLI.java| 238 +++ .../yarn/client/cli/TestSchedConfCLI.java | 160 + .../hadoop/yarn/webapp/dao/package-info.java| 27 +++ .../yarn/webapp/util/YarnWebServiceUtils.java | 14 ++ .../ConfigurationMutationACLPolicy.java | 2 +- .../DefaultConfigurationMutationACLPolicy.java | 2 +- .../scheduler/MutableConfScheduler.java | 2 +- .../scheduler/MutableConfigurationProvider.java | 2 +- .../scheduler/capacity/CapacityScheduler.java | 2 +- .../conf/MutableCSConfigurationProvider.java| 4 +- ...ueueAdminConfigurationMutationACLPolicy.java | 4 +- .../resourcemanager/webapp/RMWebServices.java | 1 + .../webapp/dao/QueueConfigInfo.java | 4 +- .../webapp/dao/SchedConfUpdateInfo.java | 18 +- .../TestConfigurationMutationACLPolicies.java | 4 +- .../TestMutableCSConfigurationProvider.java | 4 +- .../TestRMWebServicesConfigurationMutation.java | 65 +++-- 19 files changed, 507 insertions(+), 54 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/217fd99f/hadoop-yarn-project/hadoop-yarn/bin/yarn -- diff --git a/hadoop-yarn-project/hadoop-yarn/bin/yarn b/hadoop-yarn-project/hadoop-yarn/bin/yarn index dcde0dc..331fcfe 100755 --- a/hadoop-yarn-project/hadoop-yarn/bin/yarn +++ b/hadoop-yarn-project/hadoop-yarn/bin/yarn @@ -142,6 +142,9 @@ function yarncmd_case HADOOP_SUBCMD_SUPPORTDAEMONIZATION="true" HADOOP_CLASSNAME='org.apache.hadoop.yarn.server.router.Router' ;; +schedconf) +HADOOP_CLASSNAME='org.apache.hadoop.yarn.client.cli.SchedConfCLI' +;; scmadmin) HADOOP_CLASSNAME='org.apache.hadoop.yarn.client.SCMAdmin' ;; http://git-wip-us.apache.org/repos/asf/hadoop/blob/217fd99f/hadoop-yarn-project/hadoop-yarn/bin/yarn.cmd -- diff --git a/hadoop-yarn-project/hadoop-yarn/bin/yarn.cmd b/hadoop-yarn-project/hadoop-yarn/bin/yarn.cmd index 690badf..7ec9848 100644 --- a/hadoop-yarn-project/hadoop-yarn/bin/yarn.cmd +++ b/hadoop-yarn-project/hadoop-yarn/bin/yarn.cmd @@ -295,6 +295,11 @@ goto :eof set YARN_OPTS=%YARN_OPTS% %YARN_CLIENT_OPTS% goto :eof +:schedconf + set CLASS=org.apache.hadoop.yarn.client.cli.SchedConfCLI + set YARN_OPTS=%YARN_OPTS% %YARN_CLIENT_OPTS% + goto :eof + @rem This changes %1, %2 etc. Hence those cannot be used after calling this. :make_command_arguments if "%1" == "--config" ( http://git-wip-us.apache.org/repos/asf/hadoop/blob/217fd99f/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/SchedConfCLI.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/SchedConfCLI.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/SchedConfCLI.java new file mode 100644 index 000..e17062e --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/SchedConfCLI.java @@ -0,0 +1,238 @@ +/** +* Licensed to the Apache Software Foundation (ASF) under one +* or more contributor license agreements. See the NOTICE file +* distributed with this work for additional information +* regarding copyright ownership. The ASF licenses this file +* to you under the Apache License, Version 2.0 (the +* "License"); you may not use this file except in compliance +* with the License. You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under
[06/11] hadoop git commit: YARN-6575. Support global configuration mutation in MutableConfProvider. (Jonathan Hung via Xuan Gong)
YARN-6575. Support global configuration mutation in MutableConfProvider. (Jonathan Hung via Xuan Gong) Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/cc813e51 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/cc813e51 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/cc813e51 Branch: refs/heads/YARN-5734 Commit: cc813e512d516a1e1a7e718f92976236ace29c2b Parents: 3901e96 Author: XuanAuthored: Mon Jun 5 16:30:38 2017 -0700 Committer: Xuan Committed: Wed Aug 23 11:02:13 2017 -0700 -- .../ConfigurationMutationACLPolicy.java | 4 +- .../DefaultConfigurationMutationACLPolicy.java | 4 +- .../scheduler/MutableConfScheduler.java | 4 +- .../scheduler/MutableConfigurationProvider.java | 4 +- .../scheduler/capacity/CapacityScheduler.java | 4 +- .../conf/MutableCSConfigurationProvider.java| 10 +- ...ueueAdminConfigurationMutationACLPolicy.java | 22 +++- .../resourcemanager/webapp/RMWebServices.java | 4 +- .../webapp/dao/QueueConfigsUpdateInfo.java | 60 --- .../webapp/dao/SchedConfUpdateInfo.java | 69 + .../TestConfigurationMutationACLPolicies.java | 28 - .../TestMutableCSConfigurationProvider.java | 10 +- .../TestRMWebServicesConfigurationMutation.java | 101 +-- 13 files changed, 205 insertions(+), 119 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/cc813e51/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/ConfigurationMutationACLPolicy.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/ConfigurationMutationACLPolicy.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/ConfigurationMutationACLPolicy.java index 724487b..3a388fe 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/ConfigurationMutationACLPolicy.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/ConfigurationMutationACLPolicy.java @@ -21,7 +21,7 @@ package org.apache.hadoop.yarn.server.resourcemanager.scheduler; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.security.UserGroupInformation; import org.apache.hadoop.yarn.server.resourcemanager.RMContext; -import org.apache.hadoop.yarn.server.resourcemanager.webapp.dao.QueueConfigsUpdateInfo; +import org.apache.hadoop.yarn.server.resourcemanager.webapp.dao.SchedConfUpdateInfo; /** * Interface for determining whether configuration mutations are allowed. @@ -41,7 +41,7 @@ public interface ConfigurationMutationACLPolicy { * @param confUpdate configurations to be updated * @return whether provided mutation is allowed or not */ - boolean isMutationAllowed(UserGroupInformation user, QueueConfigsUpdateInfo + boolean isMutationAllowed(UserGroupInformation user, SchedConfUpdateInfo confUpdate); } http://git-wip-us.apache.org/repos/asf/hadoop/blob/cc813e51/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/DefaultConfigurationMutationACLPolicy.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/DefaultConfigurationMutationACLPolicy.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/DefaultConfigurationMutationACLPolicy.java index 680c3b8..6648668 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/DefaultConfigurationMutationACLPolicy.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/DefaultConfigurationMutationACLPolicy.java @@ -22,7 +22,7 @@ import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.security.UserGroupInformation; import
[07/11] hadoop git commit: YARN-5949. Add pluggable configuration ACL policy interface and implementation. (Jonathan Hung via wangda)
YARN-5949. Add pluggable configuration ACL policy interface and implementation. (Jonathan Hung via wangda) Change-Id: Ib98e82ff753bede21fcab2e6ca9ec1e7a5a2008f Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/3901e967 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/3901e967 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/3901e967 Branch: refs/heads/YARN-5734 Commit: 3901e9673fc84a4a5cc81f418a25b4b9f577592b Parents: c7428cc Author: Wangda TanAuthored: Mon May 22 13:38:31 2017 -0700 Committer: Xuan Committed: Wed Aug 23 11:02:13 2017 -0700 -- .../hadoop/yarn/conf/YarnConfiguration.java | 3 + .../src/main/resources/yarn-default.xml | 11 ++ .../ConfigurationMutationACLPolicy.java | 47 ++ .../ConfigurationMutationACLPolicyFactory.java | 49 ++ .../DefaultConfigurationMutationACLPolicy.java | 45 ++ .../scheduler/MutableConfScheduler.java | 19 ++- .../scheduler/MutableConfigurationProvider.java | 8 +- .../scheduler/capacity/CapacityScheduler.java | 6 +- .../conf/MutableCSConfigurationProvider.java| 151 +- ...ueueAdminConfigurationMutationACLPolicy.java | 96 .../resourcemanager/webapp/RMWebServices.java | 131 +--- .../TestConfigurationMutationACLPolicies.java | 154 +++ .../TestMutableCSConfigurationProvider.java | 40 +++-- 13 files changed, 610 insertions(+), 150 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/3901e967/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java index b52fbb5..3c001ff 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java @@ -645,6 +645,9 @@ public class YarnConfiguration extends Configuration { public static final String DEFAULT_CONFIGURATION_STORE = MEMORY_CONFIGURATION_STORE; + public static final String RM_SCHEDULER_MUTATION_ACL_POLICY_CLASS = + YARN_PREFIX + "scheduler.configuration.mutation.acl-policy.class"; + public static final String YARN_AUTHORIZATION_PROVIDER = YARN_PREFIX + "authorization-provider"; private static final List RM_SERVICES_ADDRESS_CONF_KEYS_HTTP = http://git-wip-us.apache.org/repos/asf/hadoop/blob/3901e967/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml index f5b0c88..a15dbe9 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml @@ -3238,4 +3238,15 @@ memory + + + The class to use for configuration mutation ACL policy if using a mutable + configuration provider. Controls whether a mutation request is allowed. + The DefaultConfigurationMutationACLPolicy checks if the requestor is a + YARN admin. + +yarn.scheduler.configuration.mutation.acl-policy.class + org.apache.hadoop.yarn.server.resourcemanager.scheduler.DefaultConfigurationMutationACLPolicy + + http://git-wip-us.apache.org/repos/asf/hadoop/blob/3901e967/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/ConfigurationMutationACLPolicy.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/ConfigurationMutationACLPolicy.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/ConfigurationMutationACLPolicy.java new file mode 100644 index 000..724487b --- /dev/null +++
[09/11] hadoop git commit: YARN-6322: Disable queue refresh when configuration mutation is enabled. Contributed by Jonathan Hung
YARN-6322: Disable queue refresh when configuration mutation is enabled. Contributed by Jonathan Hung Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/e7e0b71c Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/e7e0b71c Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/e7e0b71c Branch: refs/heads/YARN-5734 Commit: e7e0b71cd4e4b4688fcf1802f80526b7d9e90c8b Parents: b06edf0 Author: XuanAuthored: Tue Aug 1 08:48:04 2017 -0700 Committer: Xuan Committed: Wed Aug 23 11:05:56 2017 -0700 -- .../server/resourcemanager/AdminService.java| 12 +- .../scheduler/MutableConfScheduler.java | 12 -- .../scheduler/MutableConfigurationProvider.java | 4 +++- .../scheduler/capacity/CapacityScheduler.java | 9 ++-- .../conf/MutableCSConfigurationProvider.java| 11 +- .../resourcemanager/TestRMAdminService.java | 23 .../TestMutableCSConfigurationProvider.java | 14 +++- 7 files changed, 67 insertions(+), 18 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/e7e0b71c/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/AdminService.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/AdminService.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/AdminService.java index 3457ae3..fd9e849 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/AdminService.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/AdminService.java @@ -29,6 +29,7 @@ import java.util.Set; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.apache.hadoop.classification.InterfaceAudience.Private; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.CommonConfigurationKeysPublic; import org.apache.hadoop.ha.HAServiceProtocol; @@ -92,6 +93,8 @@ import org.apache.hadoop.yarn.server.resourcemanager.reservation.ReservationSyst import org.apache.hadoop.yarn.server.resourcemanager.resource.DynamicResourceConfiguration; import org.apache.hadoop.yarn.server.resourcemanager.rmnode.RMNode; import org.apache.hadoop.yarn.server.resourcemanager.rmnode.RMNodeResourceUpdateEvent; +import org.apache.hadoop.yarn.server.resourcemanager.scheduler.MutableConfScheduler; +import org.apache.hadoop.yarn.server.resourcemanager.scheduler.ResourceScheduler; import org.apache.hadoop.yarn.server.resourcemanager.security.authorize.RMPolicyProvider; import com.google.common.annotations.VisibleForTesting; @@ -384,6 +387,12 @@ public class AdminService extends CompositeService implements RefreshQueuesResponse response = recordFactory.newRecordInstance(RefreshQueuesResponse.class); try { + ResourceScheduler scheduler = rm.getRMContext().getScheduler(); + if (scheduler instanceof MutableConfScheduler + && ((MutableConfScheduler) scheduler).isConfigurationMutable()) { +throw new IOException("Scheduler configuration is mutable. " + +operation + " is not allowed in this scenario."); + } refreshQueues(); RMAuditLogger.logSuccess(user.getShortUserName(), operation, "AdminService"); @@ -393,7 +402,8 @@ public class AdminService extends CompositeService implements } } - private void refreshQueues() throws IOException, YarnException { + @Private + public void refreshQueues() throws IOException, YarnException { rm.getRMContext().getScheduler().reinitialize(getConfig(), this.rm.getRMContext()); // refresh the reservation system http://git-wip-us.apache.org/repos/asf/hadoop/blob/e7e0b71c/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/MutableConfScheduler.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/MutableConfScheduler.java
[02/11] hadoop git commit: YARN-5946: Create YarnConfigurationStore interface and InMemoryConfigurationStore class. Contributed by Jonathan Hung
YARN-5946: Create YarnConfigurationStore interface and InMemoryConfigurationStore class. Contributed by Jonathan Hung Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/3e25331f Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/3e25331f Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/3e25331f Branch: refs/heads/YARN-5734 Commit: 3e25331fcc4b5b7ad12d59409cab2d4955da7274 Parents: 807a134 Author: XuanAuthored: Fri Feb 24 15:58:12 2017 -0800 Committer: Xuan Committed: Wed Aug 23 10:59:52 2017 -0700 -- .../conf/InMemoryConfigurationStore.java| 86 +++ .../capacity/conf/YarnConfigurationStore.java | 154 +++ .../conf/TestYarnConfigurationStore.java| 70 + 3 files changed, 310 insertions(+) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/3e25331f/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/conf/InMemoryConfigurationStore.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/conf/InMemoryConfigurationStore.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/conf/InMemoryConfigurationStore.java new file mode 100644 index 000..a208fb9 --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/conf/InMemoryConfigurationStore.java @@ -0,0 +1,86 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.conf; + +import org.apache.hadoop.conf.Configuration; + +import java.util.LinkedList; +import java.util.List; +import java.util.Map; + +/** + * A default implementation of {@link YarnConfigurationStore}. Doesn't offer + * persistent configuration storage, just stores the configuration in memory. + */ +public class InMemoryConfigurationStore implements YarnConfigurationStore { + + private Configuration schedConf; + private LinkedList pendingMutations; + private long pendingId; + + @Override + public void initialize(Configuration conf, Configuration schedConf) { +this.schedConf = schedConf; +this.pendingMutations = new LinkedList<>(); +this.pendingId = 0; + } + + @Override + public synchronized long logMutation(LogMutation logMutation) { +logMutation.setId(++pendingId); +pendingMutations.add(logMutation); +return pendingId; + } + + @Override + public synchronized boolean confirmMutation(long id, boolean isValid) { +LogMutation mutation = pendingMutations.poll(); +// If confirmMutation is called out of order, discard mutations until id +// is reached. +while (mutation != null) { + if (mutation.getId() == id) { +if (isValid) { + Map mutations = mutation.getUpdates(); + for (Map.Entry kv : mutations.entrySet()) { +schedConf.set(kv.getKey(), kv.getValue()); + } +} +return true; + } + mutation = pendingMutations.poll(); +} +return false; + } + + @Override + public synchronized Configuration retrieve() { +return schedConf; + } + + @Override + public synchronized List getPendingMutations() { +return pendingMutations; + } + + @Override + public List getConfirmedConfHistory(long fromId) { +// Unimplemented. +return null; + } +}
[08/11] hadoop git commit: YARN-5953 addendum: Move QueueConfigInfo and SchedConfUpdateInfo to package org.apache.hadoop.yarn.webapp.dao
YARN-5953 addendum: Move QueueConfigInfo and SchedConfUpdateInfo to package org.apache.hadoop.yarn.webapp.dao Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/b659581d Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/b659581d Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/b659581d Branch: refs/heads/YARN-5734 Commit: b659581dbb2e7bf0567af184eeea38c6f81a6720 Parents: 217fd99 Author: XuanAuthored: Mon Jul 31 11:49:05 2017 -0700 Committer: Xuan Committed: Wed Aug 23 11:05:56 2017 -0700 -- .../hadoop/yarn/webapp/dao/QueueConfigInfo.java | 57 + .../yarn/webapp/dao/SchedConfUpdateInfo.java| 85 .../webapp/dao/QueueConfigInfo.java | 57 - .../webapp/dao/SchedConfUpdateInfo.java | 85 4 files changed, 142 insertions(+), 142 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/b659581d/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/dao/QueueConfigInfo.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/dao/QueueConfigInfo.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/dao/QueueConfigInfo.java new file mode 100644 index 000..d1d91c2 --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/dao/QueueConfigInfo.java @@ -0,0 +1,57 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.hadoop.yarn.webapp.dao; + +import java.util.HashMap; +import java.util.Map; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlRootElement; + +/** + * Information for adding or updating a queue to scheduler configuration + * for this queue. + */ +@XmlRootElement +@XmlAccessorType(XmlAccessType.FIELD) +public class QueueConfigInfo { + + @XmlElement(name = "queueName") + private String queue; + + private HashMap params = new HashMap<>(); + + public QueueConfigInfo() { } + + public QueueConfigInfo(String queue, Map params) { +this.queue = queue; +this.params = new HashMap<>(params); + } + + public String getQueue() { +return this.queue; + } + + public HashMap getParams() { +return this.params; + } + +} http://git-wip-us.apache.org/repos/asf/hadoop/blob/b659581d/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/dao/SchedConfUpdateInfo.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/dao/SchedConfUpdateInfo.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/dao/SchedConfUpdateInfo.java new file mode 100644 index 000..bb84096 --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/dao/SchedConfUpdateInfo.java @@ -0,0 +1,85 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
[01/11] hadoop git commit: YARN-6251. Do async container release to prevent deadlock during container updates. (Arun Suresh via wangda) [Forced Update!]
Repository: hadoop Updated Branches: refs/heads/YARN-5734 236b85d9c -> e7e0b71cd (forced update) YARN-6251. Do async container release to prevent deadlock during container updates. (Arun Suresh via wangda) Change-Id: I6c67d20c5dd4d22752830ebf0ed2340824976ecb Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/f49843a9 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/f49843a9 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/f49843a9 Branch: refs/heads/YARN-5734 Commit: f49843a9888ad8fe5c1bb4c16bfb5217d693009d Parents: 4249172 Author: Wangda TanAuthored: Wed Aug 23 09:56:20 2017 -0700 Committer: Wangda Tan Committed: Wed Aug 23 09:56:20 2017 -0700 -- ...pportunisticContainerAllocatorAMService.java | 2 + .../scheduler/AbstractYarnScheduler.java| 12 - .../scheduler/SchedulerApplicationAttempt.java | 12 +++-- .../scheduler/capacity/CapacityScheduler.java | 12 + .../distributed/NodeQueueLoadMonitor.java | 4 ++ .../scheduler/event/ReleaseContainerEvent.java | 46 .../scheduler/event/SchedulerEventType.java | 3 ++ .../scheduler/fair/FairScheduler.java | 13 ++ .../scheduler/fifo/FifoScheduler.java | 15 ++- .../yarn/server/resourcemanager/MockNodes.java | 2 +- ...pportunisticContainerAllocatorAMService.java | 36 +-- .../capacity/TestContainerResizing.java | 31 - .../capacity/TestIncreaseAllocationExpirer.java | 27 +--- 13 files changed, 188 insertions(+), 27 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/f49843a9/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/OpportunisticContainerAllocatorAMService.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/OpportunisticContainerAllocatorAMService.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/OpportunisticContainerAllocatorAMService.java index 3c278de..4fc2916 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/OpportunisticContainerAllocatorAMService.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/OpportunisticContainerAllocatorAMService.java @@ -391,6 +391,8 @@ public class OpportunisticContainerAllocatorAMService break; case NODE_LABELS_UPDATE: break; +case RELEASE_CONTAINER: + break; // <-- IGNORED EVENTS : END --> default: LOG.error("Unknown event arrived at" + http://git-wip-us.apache.org/repos/asf/hadoop/blob/f49843a9/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/AbstractYarnScheduler.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/AbstractYarnScheduler.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/AbstractYarnScheduler.java index c3879dd..2c27017 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/AbstractYarnScheduler.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/AbstractYarnScheduler.java @@ -67,7 +67,6 @@ import org.apache.hadoop.yarn.server.resourcemanager.RMAuditLogger.AuditConstant import org.apache.hadoop.yarn.server.resourcemanager.RMContext; import org.apache.hadoop.yarn.server.resourcemanager.RMServerUtils; import org.apache.hadoop.yarn.server.resourcemanager.ResourceManager; -import org.apache.hadoop.yarn.server.resourcemanager.nodelabels.RMNodeLabelsManager; import org.apache.hadoop.yarn.server.resourcemanager.rmapp.RMApp; import org.apache.hadoop.yarn.server.resourcemanager.rmapp.RMAppEvent; import org.apache.hadoop.yarn.server.resourcemanager.rmapp.RMAppEventType; @@ -89,6 +88,7 @@ import
[03/11] hadoop git commit: YARN-5951. Changes to allow CapacityScheduler to use configuration store
YARN-5951. Changes to allow CapacityScheduler to use configuration store Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/807a134e Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/807a134e Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/807a134e Branch: refs/heads/YARN-5734 Commit: 807a134e6906964fab3c93d817a15c956256cf75 Parents: f49843a Author: Jonathan HungAuthored: Mon Jan 30 19:03:48 2017 -0800 Committer: Xuan Committed: Wed Aug 23 10:59:52 2017 -0700 -- .../scheduler/capacity/CapacityScheduler.java | 37 +-- .../CapacitySchedulerConfiguration.java | 9 +++ .../capacity/conf/CSConfigurationProvider.java | 46 ++ .../conf/FileBasedCSConfigurationProvider.java | 67 .../scheduler/capacity/conf/package-info.java | 29 + .../capacity/TestCapacityScheduler.java | 4 +- 6 files changed, 170 insertions(+), 22 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/807a134e/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacityScheduler.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacityScheduler.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacityScheduler.java index fde84c4..a9c7694 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacityScheduler.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacityScheduler.java @@ -19,7 +19,6 @@ package org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity; import java.io.IOException; -import java.io.InputStream; import java.util.ArrayList; import java.util.Collection; import java.util.EnumSet; @@ -103,6 +102,8 @@ import org.apache.hadoop.yarn.server.resourcemanager.scheduler.activities.Activi import org.apache.hadoop.yarn.server.resourcemanager.scheduler.activities.ActivityDiagnosticConstant; import org.apache.hadoop.yarn.server.resourcemanager.scheduler.activities.ActivityState; import org.apache.hadoop.yarn.server.resourcemanager.scheduler.activities.AllocationState; +import org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.conf.CSConfigurationProvider; +import org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.conf.FileBasedCSConfigurationProvider; import org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.preemption.KillableContainer; import org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.preemption.PreemptionManager; import org.apache.hadoop.yarn.server.resourcemanager.scheduler.common.AssignmentInformation; @@ -167,6 +168,8 @@ public class CapacityScheduler extends private int maxAssignPerHeartbeat; + private CSConfigurationProvider csConfProvider; + @Override public void setConf(Configuration conf) { yarnConf = conf; @@ -289,7 +292,18 @@ public class CapacityScheduler extends IOException { try { writeLock.lock(); - this.conf = loadCapacitySchedulerConfiguration(configuration); + String confProviderStr = configuration.get( + CapacitySchedulerConfiguration.CS_CONF_PROVIDER, + CapacitySchedulerConfiguration.DEFAULT_CS_CONF_PROVIDER); + if (confProviderStr.equals( + CapacitySchedulerConfiguration.FILE_CS_CONF_PROVIDER)) { +this.csConfProvider = new FileBasedCSConfigurationProvider(rmContext); + } else { +throw new IOException("Invalid CS configuration provider: " + +confProviderStr); + } + this.csConfProvider.init(configuration); + this.conf = this.csConfProvider.loadConfiguration(configuration); validateConf(this.conf); this.minimumAllocation = this.conf.getMinimumAllocation(); initMaximumResourceCapability(this.conf.getMaximumAllocation()); @@ -399,7 +413,7 @@ public class CapacityScheduler extends writeLock.lock(); Configuration configuration = new Configuration(newConf); CapacitySchedulerConfiguration oldConf = this.conf; - this.conf = loadCapacitySchedulerConfiguration(configuration); + this.conf =
[05/11] hadoop git commit: YARN-5948. Implement MutableConfigurationManager for handling storage into configuration store
YARN-5948. Implement MutableConfigurationManager for handling storage into configuration store Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/81a13aaf Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/81a13aaf Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/81a13aaf Branch: refs/heads/YARN-5734 Commit: 81a13aaf72ac050d332c712fe80329d76b96 Parents: 3e25331 Author: Jonathan HungAuthored: Wed Mar 1 16:03:01 2017 -0800 Committer: Xuan Committed: Wed Aug 23 11:02:12 2017 -0700 -- .../hadoop/yarn/conf/YarnConfiguration.java | 6 ++ .../src/main/resources/yarn-default.xml | 12 +++ .../scheduler/MutableConfigurationProvider.java | 35 .../scheduler/capacity/CapacityScheduler.java | 14 ++- .../CapacitySchedulerConfiguration.java | 3 + .../capacity/conf/CSConfigurationProvider.java | 3 +- .../conf/MutableCSConfigurationProvider.java| 94 .../conf/YarnConfigurationStoreFactory.java | 46 ++ .../TestMutableCSConfigurationProvider.java | 83 + 9 files changed, 291 insertions(+), 5 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/81a13aaf/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java index 86f45b8..b52fbb5 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java @@ -639,6 +639,12 @@ public class YarnConfiguration extends Configuration { public static final String DEFAULT_RM_CONFIGURATION_PROVIDER_CLASS = "org.apache.hadoop.yarn.LocalConfigurationProvider"; + public static final String SCHEDULER_CONFIGURATION_STORE_CLASS = + YARN_PREFIX + "scheduler.configuration.store.class"; + public static final String MEMORY_CONFIGURATION_STORE = "memory"; + public static final String DEFAULT_CONFIGURATION_STORE = + MEMORY_CONFIGURATION_STORE; + public static final String YARN_AUTHORIZATION_PROVIDER = YARN_PREFIX + "authorization-provider"; private static final List RM_SERVICES_ADDRESS_CONF_KEYS_HTTP = http://git-wip-us.apache.org/repos/asf/hadoop/blob/81a13aaf/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml index f93de44..f5b0c88 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml @@ -3226,4 +3226,16 @@ false + + + The type of configuration store to use for storing scheduler + configurations, if using a mutable configuration provider. + Keywords such as "memory" map to certain configuration store + implementations. If keyword is not found, try to load this + value as a class. + +yarn.scheduler.configuration.store.class +memory + + http://git-wip-us.apache.org/repos/asf/hadoop/blob/81a13aaf/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/MutableConfigurationProvider.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/MutableConfigurationProvider.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/MutableConfigurationProvider.java new file mode 100644 index 000..da30a2b --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/MutableConfigurationProvider.java @@ -0,0 +1,35 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with
[13/20] hadoop git commit: YARN-5946: Create YarnConfigurationStore interface and InMemoryConfigurationStore class. Contributed by Jonathan Hung
YARN-5946: Create YarnConfigurationStore interface and InMemoryConfigurationStore class. Contributed by Jonathan Hung Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/6023666b Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/6023666b Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/6023666b Branch: refs/heads/YARN-5734 Commit: 6023666bd100f6b9f553f2ffc5e0ed6ed206f239 Parents: fe6832e Author: XuanAuthored: Fri Feb 24 15:58:12 2017 -0800 Committer: Xuan Committed: Tue Aug 1 08:46:36 2017 -0700 -- .../conf/InMemoryConfigurationStore.java| 86 +++ .../capacity/conf/YarnConfigurationStore.java | 154 +++ .../conf/TestYarnConfigurationStore.java| 70 + 3 files changed, 310 insertions(+) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/6023666b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/conf/InMemoryConfigurationStore.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/conf/InMemoryConfigurationStore.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/conf/InMemoryConfigurationStore.java new file mode 100644 index 000..a208fb9 --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/conf/InMemoryConfigurationStore.java @@ -0,0 +1,86 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.conf; + +import org.apache.hadoop.conf.Configuration; + +import java.util.LinkedList; +import java.util.List; +import java.util.Map; + +/** + * A default implementation of {@link YarnConfigurationStore}. Doesn't offer + * persistent configuration storage, just stores the configuration in memory. + */ +public class InMemoryConfigurationStore implements YarnConfigurationStore { + + private Configuration schedConf; + private LinkedList pendingMutations; + private long pendingId; + + @Override + public void initialize(Configuration conf, Configuration schedConf) { +this.schedConf = schedConf; +this.pendingMutations = new LinkedList<>(); +this.pendingId = 0; + } + + @Override + public synchronized long logMutation(LogMutation logMutation) { +logMutation.setId(++pendingId); +pendingMutations.add(logMutation); +return pendingId; + } + + @Override + public synchronized boolean confirmMutation(long id, boolean isValid) { +LogMutation mutation = pendingMutations.poll(); +// If confirmMutation is called out of order, discard mutations until id +// is reached. +while (mutation != null) { + if (mutation.getId() == id) { +if (isValid) { + Map mutations = mutation.getUpdates(); + for (Map.Entry kv : mutations.entrySet()) { +schedConf.set(kv.getKey(), kv.getValue()); + } +} +return true; + } + mutation = pendingMutations.poll(); +} +return false; + } + + @Override + public synchronized Configuration retrieve() { +return schedConf; + } + + @Override + public synchronized List getPendingMutations() { +return pendingMutations; + } + + @Override + public List getConfirmedConfHistory(long fromId) { +// Unimplemented. +return null; + } +}
[02/20] hadoop git commit: Revert "MAPREDUCE-5875. Make Counter limits consistent across JobClient, MRAppMaster, and YarnChild. (Gera Shegalov via kasha)"
Revert "MAPREDUCE-5875. Make Counter limits consistent across JobClient, MRAppMaster, and YarnChild. (Gera Shegalov via kasha)" This reverts commit e8a31f2e1c34514fba2f480e8db652f6e2ed65d8. Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/fbb7d6bc Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/fbb7d6bc Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/fbb7d6bc Branch: refs/heads/YARN-5734 Commit: fbb7d6bcbb887ce52ab1e9d5a1fed67a7f8a4be8 Parents: 3e23415 Author: Junping DuAuthored: Mon Jul 31 14:09:16 2017 -0700 Committer: Junping Du Committed: Mon Jul 31 14:09:16 2017 -0700 -- .../hadoop/mapreduce/v2/app/MRAppMaster.java| 3 - .../org/apache/hadoop/mapreduce/Cluster.java| 16 ++-- .../apache/hadoop/mapreduce/JobSubmitter.java | 2 - .../hadoop/mapreduce/counters/Limits.java | 5 -- .../mapreduce/jobhistory/HistoryViewer.java | 16 .../hadoop/mapreduce/v2/hs/CompletedJob.java| 15 .../apache/hadoop/mapreduce/v2/TestMRJobs.java | 87 +++- 7 files changed, 21 insertions(+), 123 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/fbb7d6bc/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/MRAppMaster.java -- diff --git a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/MRAppMaster.java b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/MRAppMaster.java index 1445481..8c9f605 100644 --- a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/MRAppMaster.java +++ b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/MRAppMaster.java @@ -62,7 +62,6 @@ import org.apache.hadoop.mapreduce.OutputFormat; import org.apache.hadoop.mapreduce.TaskAttemptContext; import org.apache.hadoop.mapreduce.TaskAttemptID; import org.apache.hadoop.mapreduce.TypeConverter; -import org.apache.hadoop.mapreduce.counters.Limits; import org.apache.hadoop.mapreduce.jobhistory.AMStartedEvent; import org.apache.hadoop.mapreduce.jobhistory.EventReader; import org.apache.hadoop.mapreduce.jobhistory.EventType; @@ -1281,8 +1280,6 @@ public class MRAppMaster extends CompositeService { // finally set the job classloader MRApps.setClassLoader(jobClassLoader, getConfig()); -// set job classloader if configured -Limits.init(getConfig()); if (initFailed) { JobEvent initFailedEvent = new JobEvent(job.getID(), JobEventType.JOB_INIT_FAILED); http://git-wip-us.apache.org/repos/asf/hadoop/blob/fbb7d6bc/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/Cluster.java -- diff --git a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/Cluster.java b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/Cluster.java index fbf6806..4245daf 100644 --- a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/Cluster.java +++ b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/Cluster.java @@ -213,15 +213,15 @@ public class Cluster { public Job getJob(JobID jobId) throws IOException, InterruptedException { JobStatus status = client.getJobStatus(jobId); if (status != null) { - final JobConf conf = new JobConf(); - final Path jobPath = new Path(client.getFilesystemName(), - status.getJobFile()); - final FileSystem fs = FileSystem.get(jobPath.toUri(), getConf()); + JobConf conf; try { -conf.addResource(fs.open(jobPath), jobPath.toString()); - } catch (FileNotFoundException fnf) { -if (LOG.isWarnEnabled()) { - LOG.warn("Job conf missing on cluster", fnf); +conf = new JobConf(status.getJobFile()); + } catch (RuntimeException ex) { +// If job file doesn't exist it means we can't find the job +if (ex.getCause() instanceof FileNotFoundException) { + return null; +} else { + throw ex; } } return Job.getInstance(this, status, conf);
[16/20] hadoop git commit: YARN-5949. Add pluggable configuration ACL policy interface and implementation. (Jonathan Hung via wangda)
YARN-5949. Add pluggable configuration ACL policy interface and implementation. (Jonathan Hung via wangda) Change-Id: Ib98e82ff753bede21fcab2e6ca9ec1e7a5a2008f Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/2c1dcf5c Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/2c1dcf5c Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/2c1dcf5c Branch: refs/heads/YARN-5734 Commit: 2c1dcf5cea698950bfa63943d78794ed59f59f92 Parents: 93c1747 Author: Wangda TanAuthored: Mon May 22 13:38:31 2017 -0700 Committer: Xuan Committed: Tue Aug 1 08:46:40 2017 -0700 -- .../hadoop/yarn/conf/YarnConfiguration.java | 3 + .../src/main/resources/yarn-default.xml | 11 ++ .../ConfigurationMutationACLPolicy.java | 47 ++ .../ConfigurationMutationACLPolicyFactory.java | 49 ++ .../DefaultConfigurationMutationACLPolicy.java | 45 ++ .../scheduler/MutableConfScheduler.java | 19 ++- .../scheduler/MutableConfigurationProvider.java | 8 +- .../scheduler/capacity/CapacityScheduler.java | 6 +- .../conf/MutableCSConfigurationProvider.java| 151 +- ...ueueAdminConfigurationMutationACLPolicy.java | 96 .../resourcemanager/webapp/RMWebServices.java | 131 +--- .../TestConfigurationMutationACLPolicies.java | 154 +++ .../TestMutableCSConfigurationProvider.java | 40 +++-- 13 files changed, 610 insertions(+), 150 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/2c1dcf5c/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java index ce413f6..01db626 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java @@ -627,6 +627,9 @@ public class YarnConfiguration extends Configuration { public static final String DEFAULT_CONFIGURATION_STORE = MEMORY_CONFIGURATION_STORE; + public static final String RM_SCHEDULER_MUTATION_ACL_POLICY_CLASS = + YARN_PREFIX + "scheduler.configuration.mutation.acl-policy.class"; + public static final String YARN_AUTHORIZATION_PROVIDER = YARN_PREFIX + "authorization-provider"; private static final List RM_SERVICES_ADDRESS_CONF_KEYS_HTTP = http://git-wip-us.apache.org/repos/asf/hadoop/blob/2c1dcf5c/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml index 74ff747..a0bed5f 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml @@ -3148,4 +3148,15 @@ memory + + + The class to use for configuration mutation ACL policy if using a mutable + configuration provider. Controls whether a mutation request is allowed. + The DefaultConfigurationMutationACLPolicy checks if the requestor is a + YARN admin. + +yarn.scheduler.configuration.mutation.acl-policy.class + org.apache.hadoop.yarn.server.resourcemanager.scheduler.DefaultConfigurationMutationACLPolicy + + http://git-wip-us.apache.org/repos/asf/hadoop/blob/2c1dcf5c/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/ConfigurationMutationACLPolicy.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/ConfigurationMutationACLPolicy.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/ConfigurationMutationACLPolicy.java new file mode 100644 index 000..724487b --- /dev/null +++
[11/20] hadoop git commit: HADOOP-14245. Use Mockito.when instead of Mockito.stub. Contributed by Andras Bokor.
HADOOP-14245. Use Mockito.when instead of Mockito.stub. Contributed by Andras Bokor. Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/b38a1eea Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/b38a1eea Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/b38a1eea Branch: refs/heads/YARN-5734 Commit: b38a1eea8e2917989d83d169a7b5773163e6832e Parents: ceacadc Author: Akira AjisakaAuthored: Tue Aug 1 15:15:43 2017 +0900 Committer: Akira Ajisaka Committed: Tue Aug 1 15:15:43 2017 +0900 -- .../org/apache/hadoop/TestGenericRefresh.java | 28 ++-- .../util/TestCgroupsLCEResourcesHandler.java| 2 +- 2 files changed, 15 insertions(+), 15 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/b38a1eea/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/TestGenericRefresh.java -- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/TestGenericRefresh.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/TestGenericRefresh.java index 3c73c28..dcd91c7 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/TestGenericRefresh.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/TestGenericRefresh.java @@ -72,16 +72,16 @@ public class TestGenericRefresh { public void setUp() throws Exception { // Register Handlers, first one just sends an ok response firstHandler = Mockito.mock(RefreshHandler.class); -Mockito.stub(firstHandler.handleRefresh(Mockito.anyString(), Mockito.any(String[].class))) - .toReturn(RefreshResponse.successResponse()); +Mockito.when(firstHandler.handleRefresh(Mockito.anyString(), Mockito.any(String[].class))) + .thenReturn(RefreshResponse.successResponse()); RefreshRegistry.defaultRegistry().register("firstHandler", firstHandler); // Second handler has conditional response for testing args secondHandler = Mockito.mock(RefreshHandler.class); -Mockito.stub(secondHandler.handleRefresh("secondHandler", new String[]{"one", "two"})) - .toReturn(new RefreshResponse(3, "three")); -Mockito.stub(secondHandler.handleRefresh("secondHandler", new String[]{"one"})) - .toReturn(new RefreshResponse(2, "two")); +Mockito.when(secondHandler.handleRefresh("secondHandler", new String[]{"one", "two"})) + .thenReturn(new RefreshResponse(3, "three")); +Mockito.when(secondHandler.handleRefresh("secondHandler", new String[]{"one"})) + .thenReturn(new RefreshResponse(2, "two")); RefreshRegistry.defaultRegistry().register("secondHandler", secondHandler); } @@ -181,12 +181,12 @@ public class TestGenericRefresh { public void testMultipleReturnCodeMerging() throws Exception { // Two handlers which return two non-zero values RefreshHandler handlerOne = Mockito.mock(RefreshHandler.class); -Mockito.stub(handlerOne.handleRefresh(Mockito.anyString(), Mockito.any(String[].class))) - .toReturn(new RefreshResponse(23, "Twenty Three")); +Mockito.when(handlerOne.handleRefresh(Mockito.anyString(), Mockito.any(String[].class))) + .thenReturn(new RefreshResponse(23, "Twenty Three")); RefreshHandler handlerTwo = Mockito.mock(RefreshHandler.class); -Mockito.stub(handlerTwo.handleRefresh(Mockito.anyString(), Mockito.any(String[].class))) - .toReturn(new RefreshResponse(10, "Ten")); +Mockito.when(handlerTwo.handleRefresh(Mockito.anyString(), Mockito.any(String[].class))) + .thenReturn(new RefreshResponse(10, "Ten")); // Then registered to the same ID RefreshRegistry.defaultRegistry().register("shared", handlerOne); @@ -210,12 +210,12 @@ public class TestGenericRefresh { public void testExceptionResultsInNormalError() throws Exception { // In this test, we ensure that all handlers are called even if we throw an exception in one RefreshHandler exceptionalHandler = Mockito.mock(RefreshHandler.class); -Mockito.stub(exceptionalHandler.handleRefresh(Mockito.anyString(), Mockito.any(String[].class))) - .toThrow(new RuntimeException("Exceptional Handler Throws Exception")); +Mockito.when(exceptionalHandler.handleRefresh(Mockito.anyString(), Mockito.any(String[].class))) + .thenThrow(new RuntimeException("Exceptional Handler Throws Exception")); RefreshHandler otherExceptionalHandler = Mockito.mock(RefreshHandler.class); -Mockito.stub(otherExceptionalHandler.handleRefresh(Mockito.anyString(), Mockito.any(String[].class))) - .toThrow(new RuntimeException("More Exceptions")); +Mockito.when(otherExceptionalHandler.handleRefresh(Mockito.anyString(),
[14/20] hadoop git commit: YARN-5948. Implement MutableConfigurationManager for handling storage into configuration store
YARN-5948. Implement MutableConfigurationManager for handling storage into configuration store Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/fc19c35f Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/fc19c35f Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/fc19c35f Branch: refs/heads/YARN-5734 Commit: fc19c35f6faa320cbee3ef5220fe5592fca6ff9e Parents: 6023666 Author: Jonathan HungAuthored: Wed Mar 1 16:03:01 2017 -0800 Committer: Xuan Committed: Tue Aug 1 08:46:37 2017 -0700 -- .../hadoop/yarn/conf/YarnConfiguration.java | 6 ++ .../src/main/resources/yarn-default.xml | 12 +++ .../scheduler/MutableConfigurationProvider.java | 35 .../scheduler/capacity/CapacityScheduler.java | 14 ++- .../CapacitySchedulerConfiguration.java | 3 + .../capacity/conf/CSConfigurationProvider.java | 3 +- .../conf/MutableCSConfigurationProvider.java| 94 .../conf/YarnConfigurationStoreFactory.java | 46 ++ .../TestMutableCSConfigurationProvider.java | 83 + 9 files changed, 291 insertions(+), 5 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/fc19c35f/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java index 93437e3..ce413f6 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java @@ -621,6 +621,12 @@ public class YarnConfiguration extends Configuration { public static final String DEFAULT_RM_CONFIGURATION_PROVIDER_CLASS = "org.apache.hadoop.yarn.LocalConfigurationProvider"; + public static final String SCHEDULER_CONFIGURATION_STORE_CLASS = + YARN_PREFIX + "scheduler.configuration.store.class"; + public static final String MEMORY_CONFIGURATION_STORE = "memory"; + public static final String DEFAULT_CONFIGURATION_STORE = + MEMORY_CONFIGURATION_STORE; + public static final String YARN_AUTHORIZATION_PROVIDER = YARN_PREFIX + "authorization-provider"; private static final List RM_SERVICES_ADDRESS_CONF_KEYS_HTTP = http://git-wip-us.apache.org/repos/asf/hadoop/blob/fc19c35f/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml index 7ddcfcd..74ff747 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml @@ -3136,4 +3136,16 @@ user-group + + + The type of configuration store to use for storing scheduler + configurations, if using a mutable configuration provider. + Keywords such as "memory" map to certain configuration store + implementations. If keyword is not found, try to load this + value as a class. + +yarn.scheduler.configuration.store.class +memory + + http://git-wip-us.apache.org/repos/asf/hadoop/blob/fc19c35f/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/MutableConfigurationProvider.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/MutableConfigurationProvider.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/MutableConfigurationProvider.java new file mode 100644 index 000..da30a2b --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/MutableConfigurationProvider.java @@ -0,0 +1,35 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed
[15/20] hadoop git commit: YARN-5952. Create REST API for changing YARN scheduler configurations. (Jonathan Hung via wangda)
YARN-5952. Create REST API for changing YARN scheduler configurations. (Jonathan Hung via wangda) Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/93c17472 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/93c17472 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/93c17472 Branch: refs/heads/YARN-5734 Commit: 93c17472ee46924c2c4e8df8400a5625166dee7f Parents: fc19c35 Author: Wangda TanAuthored: Mon Apr 3 10:12:01 2017 -0700 Committer: Xuan Committed: Tue Aug 1 08:46:38 2017 -0700 -- .../scheduler/MutableConfScheduler.java | 40 ++ .../scheduler/MutableConfigurationProvider.java | 5 +- .../scheduler/capacity/CapacityScheduler.java | 16 +- .../conf/InMemoryConfigurationStore.java| 6 +- .../conf/MutableCSConfigurationProvider.java| 24 +- .../resourcemanager/webapp/RMWebServices.java | 172 ++- .../webapp/dao/QueueConfigInfo.java | 57 +++ .../webapp/dao/QueueConfigsUpdateInfo.java | 60 +++ .../TestMutableCSConfigurationProvider.java | 6 +- .../TestRMWebServicesConfigurationMutation.java | 477 +++ 10 files changed, 851 insertions(+), 12 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/93c17472/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/MutableConfScheduler.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/MutableConfScheduler.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/MutableConfScheduler.java new file mode 100644 index 000..35e36e1 --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/MutableConfScheduler.java @@ -0,0 +1,40 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.hadoop.yarn.server.resourcemanager.scheduler; + +import org.apache.hadoop.security.UserGroupInformation; + +import java.io.IOException; +import java.util.Map; + +/** + * Interface for a scheduler that supports changing configuration at runtime. + * + */ +public interface MutableConfScheduler extends ResourceScheduler { + + /** + * Update the scheduler's configuration. + * @param user Caller of this update + * @param confUpdate key-value map of the configuration update + * @throws IOException if update is invalid + */ + void updateConfiguration(UserGroupInformation user, + Map confUpdate) throws IOException; + +} http://git-wip-us.apache.org/repos/asf/hadoop/blob/93c17472/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/MutableConfigurationProvider.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/MutableConfigurationProvider.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/MutableConfigurationProvider.java index da30a2b..889c3bc 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/MutableConfigurationProvider.java +++
[09/20] hadoop git commit: Revert "YARN-6873. Moving logging APIs over to slf4j in hadoop-yarn-server-applicationhistoryservice. Contributed by Yeliang Cang."
Revert "YARN-6873. Moving logging APIs over to slf4j in hadoop-yarn-server-applicationhistoryservice. Contributed by Yeliang Cang." This reverts commit 1a78c0ff016097930edf68e8278f826b637e918c. Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/a4aa1cb4 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/a4aa1cb4 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/a4aa1cb4 Branch: refs/heads/YARN-5734 Commit: a4aa1cb40504299d3401008fdabc795eafb28713 Parents: 9586b0e Author: Akira AjisakaAuthored: Tue Aug 1 12:12:25 2017 +0900 Committer: Akira Ajisaka Committed: Tue Aug 1 12:15:03 2017 +0900 -- .../ApplicationHistoryClientService.java| 8 ++--- .../ApplicationHistoryManagerImpl.java | 8 ++--- ...pplicationHistoryManagerOnTimelineStore.java | 8 ++--- .../ApplicationHistoryServer.java | 10 +++--- .../FileSystemApplicationHistoryStore.java | 22 ++-- .../webapp/AHSWebServices.java | 7 ++-- .../webapp/NavBlock.java| 6 ++-- .../timeline/KeyValueBasedTimelineStore.java| 8 ++--- .../server/timeline/LeveldbTimelineStore.java | 35 ++-- .../yarn/server/timeline/RollingLevelDB.java| 15 - .../timeline/RollingLevelDBTimelineStore.java | 22 ++-- .../server/timeline/TimelineDataManager.java| 7 ++-- .../recovery/LeveldbTimelineStateStore.java | 30 - .../timeline/security/TimelineACLsManager.java | 7 ++-- ...lineDelegationTokenSecretManagerService.java | 8 ++--- .../timeline/webapp/TimelineWebServices.java| 7 ++-- .../TestFileSystemApplicationHistoryStore.java | 8 ++--- .../timeline/TestLeveldbTimelineStore.java | 2 +- 18 files changed, 107 insertions(+), 111 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/a4aa1cb4/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-applicationhistoryservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/ApplicationHistoryClientService.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-applicationhistoryservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/ApplicationHistoryClientService.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-applicationhistoryservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/ApplicationHistoryClientService.java index 7d57048..73d5d39 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-applicationhistoryservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/ApplicationHistoryClientService.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-applicationhistoryservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/ApplicationHistoryClientService.java @@ -22,6 +22,8 @@ import java.io.IOException; import java.net.InetSocketAddress; import java.util.ArrayList; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.apache.hadoop.classification.InterfaceAudience.Private; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.CommonConfigurationKeysPublic; @@ -59,13 +61,11 @@ import org.apache.hadoop.yarn.ipc.YarnRPC; import org.apache.hadoop.yarn.server.timeline.security.authorize.TimelinePolicyProvider; import com.google.common.base.Preconditions; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; public class ApplicationHistoryClientService extends AbstractService implements ApplicationHistoryProtocol { - private static final Logger LOG = - LoggerFactory.getLogger(ApplicationHistoryClientService.class); + private static final Log LOG = LogFactory +.getLog(ApplicationHistoryClientService.class); private ApplicationHistoryManager history; private Server server; private InetSocketAddress bindAddress; http://git-wip-us.apache.org/repos/asf/hadoop/blob/a4aa1cb4/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-applicationhistoryservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/ApplicationHistoryManagerImpl.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-applicationhistoryservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/ApplicationHistoryManagerImpl.java
[04/20] hadoop git commit: HADOOP-14644. Increase max heap size of Maven javadoc plugin. Contributed by Andras Bokor.
HADOOP-14644. Increase max heap size of Maven javadoc plugin. Contributed by Andras Bokor. Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/2be9412b Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/2be9412b Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/2be9412b Branch: refs/heads/YARN-5734 Commit: 2be9412b73ae4308c5cee0186520fc2ad6d54e43 Parents: a7d8586 Author: Andrew WangAuthored: Mon Jul 31 15:09:34 2017 -0700 Committer: Andrew Wang Committed: Mon Jul 31 15:09:34 2017 -0700 -- hadoop-project-dist/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/2be9412b/hadoop-project-dist/pom.xml -- diff --git a/hadoop-project-dist/pom.xml b/hadoop-project-dist/pom.xml index 6e73c0e..9da5e53 100644 --- a/hadoop-project-dist/pom.xml +++ b/hadoop-project-dist/pom.xml @@ -102,7 +102,7 @@ org.apache.maven.plugins maven-javadoc-plugin - 512m + 768m true false ${maven.compile.source} - To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-commits-h...@hadoop.apache.org
[19/20] hadoop git commit: YARN-5953 addendum: Move QueueConfigInfo and SchedConfUpdateInfo to package org.apache.hadoop.yarn.webapp.dao
YARN-5953 addendum: Move QueueConfigInfo and SchedConfUpdateInfo to package org.apache.hadoop.yarn.webapp.dao Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/79701d92 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/79701d92 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/79701d92 Branch: refs/heads/YARN-5734 Commit: 79701d924a00dbfd1a78667596dd54f525de457f Parents: f15309e Author: XuanAuthored: Mon Jul 31 11:49:05 2017 -0700 Committer: Xuan Committed: Tue Aug 1 08:46:43 2017 -0700 -- .../hadoop/yarn/webapp/dao/QueueConfigInfo.java | 57 + .../yarn/webapp/dao/SchedConfUpdateInfo.java| 85 .../webapp/dao/QueueConfigInfo.java | 57 - .../webapp/dao/SchedConfUpdateInfo.java | 85 4 files changed, 142 insertions(+), 142 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/79701d92/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/dao/QueueConfigInfo.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/dao/QueueConfigInfo.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/dao/QueueConfigInfo.java new file mode 100644 index 000..d1d91c2 --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/dao/QueueConfigInfo.java @@ -0,0 +1,57 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.hadoop.yarn.webapp.dao; + +import java.util.HashMap; +import java.util.Map; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlRootElement; + +/** + * Information for adding or updating a queue to scheduler configuration + * for this queue. + */ +@XmlRootElement +@XmlAccessorType(XmlAccessType.FIELD) +public class QueueConfigInfo { + + @XmlElement(name = "queueName") + private String queue; + + private HashMap params = new HashMap<>(); + + public QueueConfigInfo() { } + + public QueueConfigInfo(String queue, Map params) { +this.queue = queue; +this.params = new HashMap<>(params); + } + + public String getQueue() { +return this.queue; + } + + public HashMap getParams() { +return this.params; + } + +} http://git-wip-us.apache.org/repos/asf/hadoop/blob/79701d92/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/dao/SchedConfUpdateInfo.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/dao/SchedConfUpdateInfo.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/dao/SchedConfUpdateInfo.java new file mode 100644 index 000..bb84096 --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/dao/SchedConfUpdateInfo.java @@ -0,0 +1,85 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
[17/20] hadoop git commit: YARN-6575. Support global configuration mutation in MutableConfProvider. (Jonathan Hung via Xuan Gong)
YARN-6575. Support global configuration mutation in MutableConfProvider. (Jonathan Hung via Xuan Gong) Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/087477c2 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/087477c2 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/087477c2 Branch: refs/heads/YARN-5734 Commit: 087477c2d366c5393caec904dc1c4c8ae2548c5d Parents: 2c1dcf5 Author: XuanAuthored: Mon Jun 5 16:30:38 2017 -0700 Committer: Xuan Committed: Tue Aug 1 08:46:41 2017 -0700 -- .../ConfigurationMutationACLPolicy.java | 4 +- .../DefaultConfigurationMutationACLPolicy.java | 4 +- .../scheduler/MutableConfScheduler.java | 4 +- .../scheduler/MutableConfigurationProvider.java | 4 +- .../scheduler/capacity/CapacityScheduler.java | 4 +- .../conf/MutableCSConfigurationProvider.java| 10 +- ...ueueAdminConfigurationMutationACLPolicy.java | 22 +++- .../resourcemanager/webapp/RMWebServices.java | 4 +- .../webapp/dao/QueueConfigsUpdateInfo.java | 60 --- .../webapp/dao/SchedConfUpdateInfo.java | 69 + .../TestConfigurationMutationACLPolicies.java | 28 - .../TestMutableCSConfigurationProvider.java | 10 +- .../TestRMWebServicesConfigurationMutation.java | 101 +-- 13 files changed, 205 insertions(+), 119 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/087477c2/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/ConfigurationMutationACLPolicy.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/ConfigurationMutationACLPolicy.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/ConfigurationMutationACLPolicy.java index 724487b..3a388fe 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/ConfigurationMutationACLPolicy.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/ConfigurationMutationACLPolicy.java @@ -21,7 +21,7 @@ package org.apache.hadoop.yarn.server.resourcemanager.scheduler; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.security.UserGroupInformation; import org.apache.hadoop.yarn.server.resourcemanager.RMContext; -import org.apache.hadoop.yarn.server.resourcemanager.webapp.dao.QueueConfigsUpdateInfo; +import org.apache.hadoop.yarn.server.resourcemanager.webapp.dao.SchedConfUpdateInfo; /** * Interface for determining whether configuration mutations are allowed. @@ -41,7 +41,7 @@ public interface ConfigurationMutationACLPolicy { * @param confUpdate configurations to be updated * @return whether provided mutation is allowed or not */ - boolean isMutationAllowed(UserGroupInformation user, QueueConfigsUpdateInfo + boolean isMutationAllowed(UserGroupInformation user, SchedConfUpdateInfo confUpdate); } http://git-wip-us.apache.org/repos/asf/hadoop/blob/087477c2/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/DefaultConfigurationMutationACLPolicy.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/DefaultConfigurationMutationACLPolicy.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/DefaultConfigurationMutationACLPolicy.java index 680c3b8..6648668 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/DefaultConfigurationMutationACLPolicy.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/DefaultConfigurationMutationACLPolicy.java @@ -22,7 +22,7 @@ import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.security.UserGroupInformation; import
[03/20] hadoop git commit: HADOOP-14420. generateReports property is not applicable for maven-site-plugin:attach-descriptor goal. Contributed by Andras Bokor.
HADOOP-14420. generateReports property is not applicable for maven-site-plugin:attach-descriptor goal. Contributed by Andras Bokor. Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/a7d85866 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/a7d85866 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/a7d85866 Branch: refs/heads/YARN-5734 Commit: a7d858668ab0e458867b659499fe6a4363284ee2 Parents: fbb7d6b Author: Andrew WangAuthored: Mon Jul 31 15:07:22 2017 -0700 Committer: Andrew Wang Committed: Mon Jul 31 15:07:22 2017 -0700 -- pom.xml | 3 --- 1 file changed, 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/a7d85866/pom.xml -- diff --git a/pom.xml b/pom.xml index 29524a4..d82cd9f 100644 --- a/pom.xml +++ b/pom.xml @@ -389,9 +389,6 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xs attach-descriptor - - true - - To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-commits-h...@hadoop.apache.org
[20/20] hadoop git commit: YARN-5947: Create LeveldbConfigurationStore class using Leveldb as backing store. Contributed by Jonathan Hung
YARN-5947: Create LeveldbConfigurationStore class using Leveldb as backing store. Contributed by Jonathan Hung Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/d3e2b6fd Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/d3e2b6fd Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/d3e2b6fd Branch: refs/heads/YARN-5734 Commit: d3e2b6fd5b7701a7d5f2ac33b09c72f520da8d6e Parents: 79701d9 Author: XuanAuthored: Mon Jul 31 16:48:40 2017 -0700 Committer: Xuan Committed: Tue Aug 1 08:46:44 2017 -0700 -- .../hadoop/yarn/conf/YarnConfiguration.java | 13 + .../src/main/resources/yarn-default.xml | 29 ++ .../scheduler/MutableConfigurationProvider.java | 6 + .../scheduler/capacity/CapacityScheduler.java | 3 + .../conf/LeveldbConfigurationStore.java | 314 +++ .../conf/MutableCSConfigurationProvider.java| 38 ++- .../capacity/conf/YarnConfigurationStore.java | 14 +- .../conf/TestYarnConfigurationStore.java| 3 +- 8 files changed, 414 insertions(+), 6 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/d3e2b6fd/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java index 01db626..c3644cd 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java @@ -624,8 +624,21 @@ public class YarnConfiguration extends Configuration { public static final String SCHEDULER_CONFIGURATION_STORE_CLASS = YARN_PREFIX + "scheduler.configuration.store.class"; public static final String MEMORY_CONFIGURATION_STORE = "memory"; + public static final String LEVELDB_CONFIGURATION_STORE = "leveldb"; public static final String DEFAULT_CONFIGURATION_STORE = MEMORY_CONFIGURATION_STORE; + public static final String RM_SCHEDCONF_STORE_PATH = YARN_PREFIX + + "scheduler.configuration.leveldb-store.path"; + + public static final String RM_SCHEDCONF_LEVELDB_COMPACTION_INTERVAL_SECS = + YARN_PREFIX + + "scheduler.configuration.leveldb-store.compaction-interval-secs"; + public static final long + DEFAULT_RM_SCHEDCONF_LEVELDB_COMPACTION_INTERVAL_SECS = 60 * 60 * 24L; + + public static final String RM_SCHEDCONF_LEVELDB_MAX_LOGS = + YARN_PREFIX + "scheduler.configuration.leveldb-store.max-logs"; + public static final int DEFAULT_RM_SCHEDCONF_LEVELDB_MAX_LOGS = 1000; public static final String RM_SCHEDULER_MUTATION_ACL_POLICY_CLASS = YARN_PREFIX + "scheduler.configuration.mutation.acl-policy.class"; http://git-wip-us.apache.org/repos/asf/hadoop/blob/d3e2b6fd/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml index a0bed5f..6de9ab6 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml @@ -3159,4 +3159,33 @@ org.apache.hadoop.yarn.server.resourcemanager.scheduler.DefaultConfigurationMutationACLPolicy + + + The storage path for LevelDB implementation of configuration store, + when yarn.scheduler.configuration.store.class is configured to be + "leveldb". + +yarn.scheduler.configuration.leveldb-store.path +${hadoop.tmp.dir}/yarn/system/confstore + + + + + The compaction interval for LevelDB configuration store in secs, + when yarn.scheduler.configuration.store.class is configured to be + "leveldb". Default is one day. + + yarn.scheduler.configuration.leveldb-store.compaction-interval-secs +86400 + + + + + The max number of configuration change log entries kept in LevelDB config + store, when yarn.scheduler.configuration.store.class is configured to be + "leveldb". Default is 1000. + +yarn.scheduler.configuration.leveldb-store.max-logs +1000 +
[10/20] hadoop git commit: MAPREDUCE-6921. TestUmbilicalProtocolWithJobToken#testJobTokenRpc fails.
MAPREDUCE-6921. TestUmbilicalProtocolWithJobToken#testJobTokenRpc fails. Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/ceacadc5 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/ceacadc5 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/ceacadc5 Branch: refs/heads/YARN-5734 Commit: ceacadc51e58bb94ad3f3669488515a61e886d88 Parents: a4aa1cb Author: Akira AjisakaAuthored: Tue Aug 1 14:56:42 2017 +0900 Committer: Akira Ajisaka Committed: Tue Aug 1 14:56:42 2017 +0900 -- .../TestUmbilicalProtocolWithJobToken.java | 22 +--- 1 file changed, 10 insertions(+), 12 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/ceacadc5/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapreduce/security/TestUmbilicalProtocolWithJobToken.java -- diff --git a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapreduce/security/TestUmbilicalProtocolWithJobToken.java b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapreduce/security/TestUmbilicalProtocolWithJobToken.java index d1004b6..5d53663 100644 --- a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapreduce/security/TestUmbilicalProtocolWithJobToken.java +++ b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapreduce/security/TestUmbilicalProtocolWithJobToken.java @@ -29,12 +29,10 @@ import static org.mockito.Mockito.doReturn; import java.net.InetSocketAddress; import java.security.PrivilegedExceptionAction; -import org.apache.commons.logging.*; -import org.apache.commons.logging.impl.Log4JLogger; - import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.io.Text; +import org.apache.hadoop.test.GenericTestUtils; import org.apache.hadoop.ipc.Client; import org.apache.hadoop.ipc.RPC; import org.apache.hadoop.ipc.Server; @@ -49,9 +47,10 @@ import org.apache.hadoop.security.SaslRpcClient; import org.apache.hadoop.security.SaslRpcServer; import org.apache.hadoop.security.SecurityUtil; import org.apache.hadoop.security.UserGroupInformation; - -import org.apache.log4j.Level; +import org.slf4j.Logger; +import org.slf4j.event.Level; import org.junit.Test; +import static org.slf4j.LoggerFactory.getLogger; /** Unit tests for using Job Token over RPC. * @@ -62,8 +61,7 @@ import org.junit.Test; public class TestUmbilicalProtocolWithJobToken { private static final String ADDRESS = "0.0.0.0"; - public static final Log LOG = LogFactory - .getLog(TestUmbilicalProtocolWithJobToken.class); + public static final Logger LOG = getLogger(TestUmbilicalProtocolWithJobToken.class); private static Configuration conf; static { @@ -73,11 +71,11 @@ public class TestUmbilicalProtocolWithJobToken { } static { -((Log4JLogger) Client.LOG).getLogger().setLevel(Level.ALL); -((Log4JLogger) Server.LOG).getLogger().setLevel(Level.ALL); -((Log4JLogger) SaslRpcClient.LOG).getLogger().setLevel(Level.ALL); -((Log4JLogger) SaslRpcServer.LOG).getLogger().setLevel(Level.ALL); -((Log4JLogger) SaslInputStream.LOG).getLogger().setLevel(Level.ALL); +GenericTestUtils.setLogLevel(Client.LOG, Level.TRACE); +GenericTestUtils.setLogLevel(Server.LOG, Level.TRACE); +GenericTestUtils.setLogLevel(SaslRpcClient.LOG, Level.TRACE); +GenericTestUtils.setLogLevel(SaslRpcServer.LOG, Level.TRACE); +GenericTestUtils.setLogLevel(SaslInputStream.LOG, Level.TRACE); } @Test - To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-commits-h...@hadoop.apache.org
[08/20] hadoop git commit: HADOOP-14397. Pull up the builder pattern to FileSystem and add AbstractContractCreateTest for it. (Lei (Eddy) Xu)
HADOOP-14397. Pull up the builder pattern to FileSystem and add AbstractContractCreateTest for it. (Lei (Eddy) Xu) Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/9586b0e2 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/9586b0e2 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/9586b0e2 Branch: refs/heads/YARN-5734 Commit: 9586b0e24fce29c278134658e68b8c47cd9d8c51 Parents: abbf412 Author: Lei XuAuthored: Mon Jul 31 20:04:57 2017 -0700 Committer: Lei Xu Committed: Mon Jul 31 20:12:40 2017 -0700 -- .../hadoop/fs/FSDataOutputStreamBuilder.java| 4 +- .../java/org/apache/hadoop/fs/FileSystem.java | 24 -- .../apache/hadoop/fs/TestLocalFileSystem.java | 2 +- .../fs/contract/AbstractContractAppendTest.java | 33 ++- .../fs/contract/AbstractContractCreateTest.java | 90 ++-- .../hadoop/fs/contract/ContractTestUtils.java | 43 -- .../hadoop/hdfs/DistributedFileSystem.java | 3 +- 7 files changed, 154 insertions(+), 45 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/9586b0e2/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FSDataOutputStreamBuilder.java -- diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FSDataOutputStreamBuilder.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FSDataOutputStreamBuilder.java index 0527202..8608a7b 100644 --- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FSDataOutputStreamBuilder.java +++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FSDataOutputStreamBuilder.java @@ -44,8 +44,8 @@ import static org.apache.hadoop.fs.CommonConfigurationKeysPublic.IO_FILE_BUFFER_ * * To create missing parent directory, use {@link #recursive()}. */ -@InterfaceAudience.Private -@InterfaceStability.Unstable +@InterfaceAudience.Public +@InterfaceStability.Evolving public abstract class FSDataOutputStreamBuilder > { private final FileSystem fs; http://git-wip-us.apache.org/repos/asf/hadoop/blob/9586b0e2/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FileSystem.java -- diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FileSystem.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FileSystem.java index d7cd7dd..fc7b9b2 100644 --- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FileSystem.java +++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FileSystem.java @@ -4153,9 +4153,21 @@ public abstract class FileSystem extends Configured implements Closeable { @Override public FSDataOutputStream build() throws IOException { - return getFS().create(getPath(), getPermission(), getFlags(), - getBufferSize(), getReplication(), getBlockSize(), getProgress(), - getChecksumOpt()); + if (getFlags().contains(CreateFlag.CREATE) || + getFlags().contains(CreateFlag.OVERWRITE)) { +if (isRecursive()) { + return getFS().create(getPath(), getPermission(), getFlags(), + getBufferSize(), getReplication(), getBlockSize(), getProgress(), + getChecksumOpt()); +} else { + return getFS().createNonRecursive(getPath(), getPermission(), + getFlags(), getBufferSize(), getReplication(), getBlockSize(), + getProgress()); +} + } else if (getFlags().contains(CreateFlag.APPEND)) { +return getFS().append(getPath(), getBufferSize(), getProgress()); + } + throw new IOException("Must specify either create, overwrite or append"); } @Override @@ -4174,8 +4186,7 @@ public abstract class FileSystem extends Configured implements Closeable { * HADOOP-14384. Temporarily reduce the visibility of method before the * builder interface becomes stable. */ - @InterfaceAudience.Private - protected FSDataOutputStreamBuilder createFile(Path path) { + public FSDataOutputStreamBuilder createFile(Path path) { return new FileSystemDataOutputStreamBuilder(this, path) .create().overwrite(true); } @@ -4185,8 +4196,7 @@ public abstract class FileSystem extends Configured implements Closeable { * @param path file path. * @return a {@link FSDataOutputStreamBuilder} to build file append request. */ - @InterfaceAudience.Private - protected FSDataOutputStreamBuilder appendFile(Path path) { + public FSDataOutputStreamBuilder appendFile(Path path) { return new
[06/20] hadoop git commit: YARN-6873. Moving logging APIs over to slf4j in hadoop-yarn-server-applicationhistoryservice. Contributed by Yeliang Cang.
YARN-6873. Moving logging APIs over to slf4j in hadoop-yarn-server-applicationhistoryservice. Contributed by Yeliang Cang. Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/1a78c0ff Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/1a78c0ff Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/1a78c0ff Branch: refs/heads/YARN-5734 Commit: 1a78c0ff016097930edf68e8278f826b637e918c Parents: ea56812 Author: Akira AjisakaAuthored: Tue Aug 1 10:53:32 2017 +0900 Committer: Akira Ajisaka Committed: Tue Aug 1 10:53:32 2017 +0900 -- .../ApplicationHistoryClientService.java| 8 ++--- .../ApplicationHistoryManagerImpl.java | 8 ++--- ...pplicationHistoryManagerOnTimelineStore.java | 8 ++--- .../ApplicationHistoryServer.java | 10 +++--- .../FileSystemApplicationHistoryStore.java | 22 ++-- .../webapp/AHSWebServices.java | 7 ++-- .../webapp/NavBlock.java| 6 ++-- .../timeline/KeyValueBasedTimelineStore.java| 8 ++--- .../server/timeline/LeveldbTimelineStore.java | 35 ++-- .../yarn/server/timeline/RollingLevelDB.java| 15 + .../timeline/RollingLevelDBTimelineStore.java | 22 ++-- .../server/timeline/TimelineDataManager.java| 7 ++-- .../recovery/LeveldbTimelineStateStore.java | 30 - .../timeline/security/TimelineACLsManager.java | 7 ++-- ...lineDelegationTokenSecretManagerService.java | 8 ++--- .../timeline/webapp/TimelineWebServices.java| 7 ++-- .../TestFileSystemApplicationHistoryStore.java | 8 ++--- .../timeline/TestLeveldbTimelineStore.java | 2 +- 18 files changed, 111 insertions(+), 107 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/1a78c0ff/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-applicationhistoryservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/ApplicationHistoryClientService.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-applicationhistoryservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/ApplicationHistoryClientService.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-applicationhistoryservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/ApplicationHistoryClientService.java index 73d5d39..7d57048 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-applicationhistoryservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/ApplicationHistoryClientService.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-applicationhistoryservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/ApplicationHistoryClientService.java @@ -22,8 +22,6 @@ import java.io.IOException; import java.net.InetSocketAddress; import java.util.ArrayList; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; import org.apache.hadoop.classification.InterfaceAudience.Private; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.CommonConfigurationKeysPublic; @@ -61,11 +59,13 @@ import org.apache.hadoop.yarn.ipc.YarnRPC; import org.apache.hadoop.yarn.server.timeline.security.authorize.TimelinePolicyProvider; import com.google.common.base.Preconditions; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class ApplicationHistoryClientService extends AbstractService implements ApplicationHistoryProtocol { - private static final Log LOG = LogFactory -.getLog(ApplicationHistoryClientService.class); + private static final Logger LOG = + LoggerFactory.getLogger(ApplicationHistoryClientService.class); private ApplicationHistoryManager history; private Server server; private InetSocketAddress bindAddress; http://git-wip-us.apache.org/repos/asf/hadoop/blob/1a78c0ff/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-applicationhistoryservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/ApplicationHistoryManagerImpl.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-applicationhistoryservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/ApplicationHistoryManagerImpl.java
[12/20] hadoop git commit: YARN-5951. Changes to allow CapacityScheduler to use configuration store
YARN-5951. Changes to allow CapacityScheduler to use configuration store Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/fe6832ec Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/fe6832ec Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/fe6832ec Branch: refs/heads/YARN-5734 Commit: fe6832ec5f09468c4eaef1ec0afc9563fea010fe Parents: b38a1ee Author: Jonathan HungAuthored: Mon Jan 30 19:03:48 2017 -0800 Committer: Xuan Committed: Tue Aug 1 08:46:35 2017 -0700 -- .../scheduler/capacity/CapacityScheduler.java | 36 +-- .../CapacitySchedulerConfiguration.java | 10 +++ .../capacity/conf/CSConfigurationProvider.java | 46 ++ .../conf/FileBasedCSConfigurationProvider.java | 67 .../scheduler/capacity/conf/package-info.java | 29 + .../capacity/TestCapacityScheduler.java | 4 +- 6 files changed, 170 insertions(+), 22 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/fe6832ec/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacityScheduler.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacityScheduler.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacityScheduler.java index 2ccaf63..a6feb09 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacityScheduler.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacityScheduler.java @@ -19,7 +19,6 @@ package org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity; import java.io.IOException; -import java.io.InputStream; import java.util.ArrayList; import java.util.Collection; import java.util.EnumSet; @@ -105,6 +104,8 @@ import org.apache.hadoop.yarn.server.resourcemanager.scheduler.activities.Activi import org.apache.hadoop.yarn.server.resourcemanager.scheduler.activities.ActivityDiagnosticConstant; import org.apache.hadoop.yarn.server.resourcemanager.scheduler.activities.ActivityState; import org.apache.hadoop.yarn.server.resourcemanager.scheduler.activities.AllocationState; +import org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.conf.CSConfigurationProvider; +import org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.conf.FileBasedCSConfigurationProvider; import org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.preemption.KillableContainer; import org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.preemption.PreemptionManager; import org.apache.hadoop.yarn.server.resourcemanager.scheduler.common.AssignmentInformation; @@ -163,6 +164,7 @@ public class CapacityScheduler extends private int offswitchPerHeartbeatLimit; + private CSConfigurationProvider csConfProvider; @Override public void setConf(Configuration conf) { @@ -286,7 +288,18 @@ public class CapacityScheduler extends IOException { try { writeLock.lock(); - this.conf = loadCapacitySchedulerConfiguration(configuration); + String confProviderStr = configuration.get( + CapacitySchedulerConfiguration.CS_CONF_PROVIDER, + CapacitySchedulerConfiguration.DEFAULT_CS_CONF_PROVIDER); + if (confProviderStr.equals( + CapacitySchedulerConfiguration.FILE_CS_CONF_PROVIDER)) { +this.csConfProvider = new FileBasedCSConfigurationProvider(rmContext); + } else { +throw new IOException("Invalid CS configuration provider: " + +confProviderStr); + } + this.csConfProvider.init(configuration); + this.conf = this.csConfProvider.loadConfiguration(configuration); validateConf(this.conf); this.minimumAllocation = this.conf.getMinimumAllocation(); initMaximumResourceCapability(this.conf.getMaximumAllocation()); @@ -393,7 +406,7 @@ public class CapacityScheduler extends writeLock.lock(); Configuration configuration = new Configuration(newConf); CapacitySchedulerConfiguration oldConf = this.conf; - this.conf = loadCapacitySchedulerConfiguration(configuration); + this.conf = csConfProvider.loadConfiguration(configuration);
[07/20] hadoop git commit: HADOOP-14343. Wrong pid file name in error message when starting secure daemon
HADOOP-14343. Wrong pid file name in error message when starting secure daemon Signed-off-by: Allen WittenauerProject: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/abbf4129 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/abbf4129 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/abbf4129 Branch: refs/heads/YARN-5734 Commit: abbf4129a24c99fbce6d70b191ec19cf0d17e9be Parents: 1a78c0f Author: Andras Bokor Authored: Mon Jul 31 20:03:43 2017 -0700 Committer: Allen Wittenauer Committed: Mon Jul 31 20:03:43 2017 -0700 -- .../hadoop-common/src/main/bin/hadoop-functions.sh | 6 ++ 1 file changed, 2 insertions(+), 4 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/abbf4129/hadoop-common-project/hadoop-common/src/main/bin/hadoop-functions.sh -- diff --git a/hadoop-common-project/hadoop-common/src/main/bin/hadoop-functions.sh b/hadoop-common-project/hadoop-common/src/main/bin/hadoop-functions.sh index 8ac1b0c..2744643 100755 --- a/hadoop-common-project/hadoop-common/src/main/bin/hadoop-functions.sh +++ b/hadoop-common-project/hadoop-common/src/main/bin/hadoop-functions.sh @@ -1873,11 +1873,9 @@ function hadoop_start_secure_daemon_wrapper (( counter++ )) done - # this is for the daemon pid creation #shellcheck disable=SC2086 - echo $! > "${jsvcpidfile}" 2>/dev/null - if [[ $? -gt 0 ]]; then -hadoop_error "ERROR: Cannot write ${daemonname} pid ${daemonpidfile}." + if ! echo $! > "${jsvcpidfile}"; then +hadoop_error "ERROR: Cannot write ${daemonname} pid ${jsvcpidfile}." fi sleep 1 - To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-commits-h...@hadoop.apache.org
[01/20] hadoop git commit: HDFS-12082. BlockInvalidateLimit value is incorrectly set after namenode heartbeat interval reconfigured. Contributed by Weiwei Yang. [Forced Update!]
Repository: hadoop Updated Branches: refs/heads/YARN-5734 fa2c5451f -> d3e2b6fd5 (forced update) HDFS-12082. BlockInvalidateLimit value is incorrectly set after namenode heartbeat interval reconfigured. Contributed by Weiwei Yang. Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/3e23415a Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/3e23415a Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/3e23415a Branch: refs/heads/YARN-5734 Commit: 3e23415a92d43ce8818124f0b180227a52a33eaf Parents: 0fd6d0f Author: Arpit AgarwalAuthored: Mon Jul 31 11:33:55 2017 -0700 Committer: Arpit Agarwal Committed: Mon Jul 31 11:33:55 2017 -0700 -- .../server/blockmanagement/DatanodeManager.java | 20 +++ .../namenode/TestNameNodeReconfigure.java | 36 2 files changed, 50 insertions(+), 6 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/3e23415a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/DatanodeManager.java -- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/DatanodeManager.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/DatanodeManager.java index 1d09751..2c5779a 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/DatanodeManager.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/DatanodeManager.java @@ -290,12 +290,19 @@ public class DatanodeManager { DFSConfigKeys.DFS_NAMENODE_HEARTBEAT_RECHECK_INTERVAL_DEFAULT); // 5 minutes this.heartbeatExpireInterval = 2 * heartbeatRecheckInterval + 10 * 1000 * heartbeatIntervalSeconds; -final int blockInvalidateLimit = Math.max(20*(int)(heartbeatIntervalSeconds), + +// Effected block invalidate limit is the bigger value between +// value configured in hdfs-site.xml, and 20 * HB interval. +final int configuredBlockInvalidateLimit = conf.getInt( +DFSConfigKeys.DFS_BLOCK_INVALIDATE_LIMIT_KEY, DFSConfigKeys.DFS_BLOCK_INVALIDATE_LIMIT_DEFAULT); -this.blockInvalidateLimit = conf.getInt( -DFSConfigKeys.DFS_BLOCK_INVALIDATE_LIMIT_KEY, blockInvalidateLimit); +final int countedBlockInvalidateLimit = 20*(int)(heartbeatIntervalSeconds); +this.blockInvalidateLimit = Math.max(countedBlockInvalidateLimit, +configuredBlockInvalidateLimit); LOG.info(DFSConfigKeys.DFS_BLOCK_INVALIDATE_LIMIT_KEY -+ "=" + this.blockInvalidateLimit); ++ ": configured=" + configuredBlockInvalidateLimit ++ ", counted=" + countedBlockInvalidateLimit ++ ", effected=" + blockInvalidateLimit); this.checkIpHostnameInRegistration = conf.getBoolean( DFSConfigKeys.DFS_NAMENODE_DATANODE_REGISTRATION_IP_HOSTNAME_CHECK_KEY, @@ -403,7 +410,8 @@ public class DatanodeManager { return fsClusterStats; } - int getBlockInvalidateLimit() { + @VisibleForTesting + public int getBlockInvalidateLimit() { return blockInvalidateLimit; } @@ -1911,7 +1919,7 @@ public class DatanodeManager { this.heartbeatExpireInterval = 2L * recheckInterval + 10 * 1000 * intervalSeconds; this.blockInvalidateLimit = Math.max(20 * (int) (intervalSeconds), -DFSConfigKeys.DFS_BLOCK_INVALIDATE_LIMIT_DEFAULT); +blockInvalidateLimit); } /** http://git-wip-us.apache.org/repos/asf/hadoop/blob/3e23415a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestNameNodeReconfigure.java -- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestNameNodeReconfigure.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestNameNodeReconfigure.java index 6b553df..c0de63a 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestNameNodeReconfigure.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestNameNodeReconfigure.java @@ -40,6 +40,7 @@ import static org.apache.hadoop.hdfs.DFSConfigKeys.DFS_HEARTBEAT_INTERVAL_KEY; import static org.apache.hadoop.hdfs.DFSConfigKeys.DFS_HEARTBEAT_INTERVAL_DEFAULT; import static org.apache.hadoop.hdfs.DFSConfigKeys.DFS_NAMENODE_HEARTBEAT_RECHECK_INTERVAL_KEY; import static org.apache.hadoop.hdfs.DFSConfigKeys.DFS_NAMENODE_HEARTBEAT_RECHECK_INTERVAL_DEFAULT; +import static
hadoop git commit: YARN-5947: Create LeveldbConfigurationStore class using Leveldb as backing store. Contributed by Jonathan Hung
Repository: hadoop Updated Branches: refs/heads/YARN-5734 7418ef399 -> fa2c5451f YARN-5947: Create LeveldbConfigurationStore class using Leveldb as backing store. Contributed by Jonathan Hung Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/fa2c5451 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/fa2c5451 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/fa2c5451 Branch: refs/heads/YARN-5734 Commit: fa2c5451fd3841da79a03409ebe30838d47f3659 Parents: 7418ef3 Author: XuanAuthored: Mon Jul 31 16:48:40 2017 -0700 Committer: Xuan Committed: Mon Jul 31 16:48:40 2017 -0700 -- .../hadoop/yarn/conf/YarnConfiguration.java | 13 + .../src/main/resources/yarn-default.xml | 29 ++ .../scheduler/MutableConfigurationProvider.java | 6 + .../scheduler/capacity/CapacityScheduler.java | 3 + .../conf/LeveldbConfigurationStore.java | 314 +++ .../conf/MutableCSConfigurationProvider.java| 38 ++- .../capacity/conf/YarnConfigurationStore.java | 14 +- .../conf/TestYarnConfigurationStore.java| 3 +- 8 files changed, 414 insertions(+), 6 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/fa2c5451/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java index 01db626..c3644cd 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java @@ -624,8 +624,21 @@ public class YarnConfiguration extends Configuration { public static final String SCHEDULER_CONFIGURATION_STORE_CLASS = YARN_PREFIX + "scheduler.configuration.store.class"; public static final String MEMORY_CONFIGURATION_STORE = "memory"; + public static final String LEVELDB_CONFIGURATION_STORE = "leveldb"; public static final String DEFAULT_CONFIGURATION_STORE = MEMORY_CONFIGURATION_STORE; + public static final String RM_SCHEDCONF_STORE_PATH = YARN_PREFIX + + "scheduler.configuration.leveldb-store.path"; + + public static final String RM_SCHEDCONF_LEVELDB_COMPACTION_INTERVAL_SECS = + YARN_PREFIX + + "scheduler.configuration.leveldb-store.compaction-interval-secs"; + public static final long + DEFAULT_RM_SCHEDCONF_LEVELDB_COMPACTION_INTERVAL_SECS = 60 * 60 * 24L; + + public static final String RM_SCHEDCONF_LEVELDB_MAX_LOGS = + YARN_PREFIX + "scheduler.configuration.leveldb-store.max-logs"; + public static final int DEFAULT_RM_SCHEDCONF_LEVELDB_MAX_LOGS = 1000; public static final String RM_SCHEDULER_MUTATION_ACL_POLICY_CLASS = YARN_PREFIX + "scheduler.configuration.mutation.acl-policy.class"; http://git-wip-us.apache.org/repos/asf/hadoop/blob/fa2c5451/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml index a0bed5f..6de9ab6 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml @@ -3159,4 +3159,33 @@ org.apache.hadoop.yarn.server.resourcemanager.scheduler.DefaultConfigurationMutationACLPolicy + + + The storage path for LevelDB implementation of configuration store, + when yarn.scheduler.configuration.store.class is configured to be + "leveldb". + +yarn.scheduler.configuration.leveldb-store.path +${hadoop.tmp.dir}/yarn/system/confstore + + + + + The compaction interval for LevelDB configuration store in secs, + when yarn.scheduler.configuration.store.class is configured to be + "leveldb". Default is one day. + + yarn.scheduler.configuration.leveldb-store.compaction-interval-secs +86400 + + + + + The max number of configuration change log entries kept in LevelDB config + store, when yarn.scheduler.configuration.store.class is configured to be + "leveldb". Default is 1000. + +yarn.scheduler.configuration.leveldb-store.max-logs +1000 +
hadoop git commit: YARN-5953 addendum: Move QueueConfigInfo and SchedConfUpdateInfo to package org.apache.hadoop.yarn.webapp.dao
Repository: hadoop Updated Branches: refs/heads/YARN-5734 7915ee3da -> 7418ef399 YARN-5953 addendum: Move QueueConfigInfo and SchedConfUpdateInfo to package org.apache.hadoop.yarn.webapp.dao Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/7418ef39 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/7418ef39 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/7418ef39 Branch: refs/heads/YARN-5734 Commit: 7418ef3995865362cb138589caa2a99eda48cc9e Parents: 7915ee3 Author: XuanAuthored: Mon Jul 31 11:49:05 2017 -0700 Committer: Xuan Committed: Mon Jul 31 11:49:05 2017 -0700 -- .../hadoop/yarn/webapp/dao/QueueConfigInfo.java | 57 + .../yarn/webapp/dao/SchedConfUpdateInfo.java| 85 .../webapp/dao/QueueConfigInfo.java | 57 - .../webapp/dao/SchedConfUpdateInfo.java | 85 4 files changed, 142 insertions(+), 142 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/7418ef39/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/dao/QueueConfigInfo.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/dao/QueueConfigInfo.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/dao/QueueConfigInfo.java new file mode 100644 index 000..d1d91c2 --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/dao/QueueConfigInfo.java @@ -0,0 +1,57 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.hadoop.yarn.webapp.dao; + +import java.util.HashMap; +import java.util.Map; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlRootElement; + +/** + * Information for adding or updating a queue to scheduler configuration + * for this queue. + */ +@XmlRootElement +@XmlAccessorType(XmlAccessType.FIELD) +public class QueueConfigInfo { + + @XmlElement(name = "queueName") + private String queue; + + private HashMap params = new HashMap<>(); + + public QueueConfigInfo() { } + + public QueueConfigInfo(String queue, Map params) { +this.queue = queue; +this.params = new HashMap<>(params); + } + + public String getQueue() { +return this.queue; + } + + public HashMap getParams() { +return this.params; + } + +} http://git-wip-us.apache.org/repos/asf/hadoop/blob/7418ef39/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/dao/SchedConfUpdateInfo.java -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/dao/SchedConfUpdateInfo.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/dao/SchedConfUpdateInfo.java new file mode 100644 index 000..bb84096 --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/dao/SchedConfUpdateInfo.java @@ -0,0 +1,85 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is
[35/50] [abbrv] hadoop git commit: HADOOP-14229. hadoop.security.auth_to_local example is incorrect in the documentation. Contributed by Andras Bokor.
HADOOP-14229. hadoop.security.auth_to_local example is incorrect in the documentation. Contributed by Andras Bokor. Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/746189ad Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/746189ad Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/746189ad Branch: refs/heads/YARN-5734 Commit: 746189ad8cdf90ab35baec9364b2e02956a1e70c Parents: 480c8db Author: Ravi PrakashAuthored: Fri Jul 28 11:43:36 2017 -0700 Committer: Ravi Prakash Committed: Fri Jul 28 11:43:36 2017 -0700 -- .../hadoop-common/src/site/markdown/SecureMode.md | 9 +++-- 1 file changed, 3 insertions(+), 6 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/746189ad/hadoop-common-project/hadoop-common/src/site/markdown/SecureMode.md -- diff --git a/hadoop-common-project/hadoop-common/src/site/markdown/SecureMode.md b/hadoop-common-project/hadoop-common/src/site/markdown/SecureMode.md index e1aad5a..5a62c4f 100644 --- a/hadoop-common-project/hadoop-common/src/site/markdown/SecureMode.md +++ b/hadoop-common-project/hadoop-common/src/site/markdown/SecureMode.md @@ -142,12 +142,9 @@ In a typical cluster HDFS and YARN services will be launched as the system `hdfs hadoop.security.auth_to_local -RULE:[2:$1@$0](nn/.*@.*REALM.TLD)s/.*/hdfs/ -RULE:[2:$1@$0](jn/.*@.*REALM.TLD)s/.*/hdfs/ -RULE:[2:$1@$0](dn/.*@.*REALM.TLD)s/.*/hdfs/ -RULE:[2:$1@$0](nm/.*@.*REALM.TLD)s/.*/yarn/ -RULE:[2:$1@$0](rm/.*@.*REALM.TLD)s/.*/yarn/ -RULE:[2:$1@$0](jhs/.*@.*REALM.TLD)s/.*/mapred/ +RULE:[2:$1/$2@$0]([ndj]n/.*@REALM.TLD)s/.*/hdfs/ +RULE:[2:$1/$2@$0]([rn]m/.*@REALM.TLD)s/.*/yarn/ +RULE:[2:$1/$2@$0](jhs/.*@REALM.TLD)s/.*/mapred/ DEFAULT - To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-commits-h...@hadoop.apache.org