hadoop git commit: HDDS-909 : Default implementation for Ozone acls. Contributed by Ajay Kumar.
Repository: hadoop Updated Branches: refs/heads/trunk 8fc0d0451 -> 5e773efd7 HDDS-909 : Default implementation for Ozone acls. Contributed by Ajay Kumar. Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/5e773efd Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/5e773efd Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/5e773efd Branch: refs/heads/trunk Commit: 5e773efd7839c4807f98f00d286b9325c1fe81df Parents: 8fc0d04 Author: Anu Engineer Authored: Fri Dec 7 23:20:19 2018 -0800 Committer: Anu Engineer Committed: Fri Dec 7 23:20:19 2018 -0800 -- .../apache/hadoop/ozone/OzoneConfigKeys.java| 8 + .../common/src/main/resources/ozone-default.xml | 17 +- .../security/acl/OzoneAccessAuthorizer.java | 29 +++ .../ozone/security/acl/OzoneAclException.java | 20 +- .../hadoop/ozone/security/acl/OzoneObj.java | 24 ++- .../hadoop/ozone/security/acl/OzoneObjInfo.java | 118 .../ozone/security/acl/RequestContext.java | 6 +- .../ozone/security/acl/TestOzoneObjInfo.java| 87 + .../org/apache/hadoop/ozone/om/TestOmAcls.java | 176 ++ .../hadoop/ozone/om/TestOzoneManager.java | 2 + .../apache/hadoop/ozone/om/OzoneManager.java| 183 ++- 11 files changed, 653 insertions(+), 17 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/5e773efd/hadoop-hdds/common/src/main/java/org/apache/hadoop/ozone/OzoneConfigKeys.java -- diff --git a/hadoop-hdds/common/src/main/java/org/apache/hadoop/ozone/OzoneConfigKeys.java b/hadoop-hdds/common/src/main/java/org/apache/hadoop/ozone/OzoneConfigKeys.java index a331f48..bac07d5 100644 --- a/hadoop-hdds/common/src/main/java/org/apache/hadoop/ozone/OzoneConfigKeys.java +++ b/hadoop-hdds/common/src/main/java/org/apache/hadoop/ozone/OzoneConfigKeys.java @@ -346,6 +346,14 @@ public final class OzoneConfigKeys { public static final int OZONE_CLIENT_BYTES_PER_CHECKSUM_DEFAULT_BYTES = 1024 * 1024; public static final int OZONE_CLIENT_BYTES_PER_CHECKSUM_MIN_SIZE = 256 * 1024; + public static final String OZONE_ACL_AUTHORIZER_CLASS = + "ozone.acl.authorizer.class"; + public static final String OZONE_ACL_AUTHORIZER_CLASS_DEFAULT = + "org.apache.hadoop.ozone.security.acl.OzoneAccessAuthorizer"; + public static final String OZONE_ACL_ENABLED = + "ozone.acl.enabled"; + public static final boolean OZONE_ACL_ENABLED_DEFAULT = + false; /** * There is no need to instantiate this class. http://git-wip-us.apache.org/repos/asf/hadoop/blob/5e773efd/hadoop-hdds/common/src/main/resources/ozone-default.xml -- diff --git a/hadoop-hdds/common/src/main/resources/ozone-default.xml b/hadoop-hdds/common/src/main/resources/ozone-default.xml index 001153b..2d62baa 100644 --- a/hadoop-hdds/common/src/main/resources/ozone-default.xml +++ b/hadoop-hdds/common/src/main/resources/ozone-default.xml @@ -1138,7 +1138,8 @@ ozone.tags.system - OZONE,MANAGEMENT,SECURITY,PERFORMANCE,DEBUG,CLIENT,SERVER,OM,SCM,CRITICAL,RATIS,CONTAINER,REQUIRED,REST,STORAGE,PIPELINE,STANDALONE,S3GATEWAY +OZONE,MANAGEMENT,SECURITY,PERFORMANCE,DEBUG,CLIENT,SERVER,OM,SCM, + CRITICAL,RATIS,CONTAINER,REQUIRED,REST,STORAGE,PIPELINE,STANDALONE,S3GATEWAY,ACL @@ -1512,4 +1513,18 @@ + +ozone.acl.authorizer.class +org.apache.hadoop.ozone.security.acl.OzoneAccessAuthorizer +OZONE, SECURITY, ACL +Acl authorizer for Ozone. + + + +ozone.acl.enabled +false +OZONE, SECURITY, ACL +Key to enable/disable ozone acls. + + http://git-wip-us.apache.org/repos/asf/hadoop/blob/5e773efd/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/security/acl/OzoneAccessAuthorizer.java -- diff --git a/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/security/acl/OzoneAccessAuthorizer.java b/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/security/acl/OzoneAccessAuthorizer.java new file mode 100644 index 000..db3a579 --- /dev/null +++ b/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/security/acl/OzoneAccessAuthorizer.java @@ -0,0 +1,29 @@ +/** + * 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 + * +
[Hadoop Wiki] Update of "GitAndHadoop" by AkiraAjisaka
Dear Wiki user, You have subscribed to a wiki page or wiki category on "Hadoop Wiki" for change notification. The "GitAndHadoop" page has been changed by AkiraAjisaka: https://wiki.apache.org/hadoop/GitAndHadoop?action=diff=26=27 Comment: Fix typo Content moved to https://cwiki.apache.org/confluence/display/HADOOP/Git+And+Hadoop - Please email common-...@hadoop.apache.org for cwiki access. + Please email common-...@hadoop.apache.org for cwiki access. - To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-commits-h...@hadoop.apache.org
hadoop git commit: HDFS-14001. [PROVIDED Storage] bootstrapStandby should manage the InMemoryAliasMap. Contributed by Virajith Jalaparti.
Repository: hadoop Updated Branches: refs/heads/trunk 154449fbd -> 8fc0d0451 HDFS-14001. [PROVIDED Storage] bootstrapStandby should manage the InMemoryAliasMap. Contributed by Virajith Jalaparti. Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/8fc0d045 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/8fc0d045 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/8fc0d045 Branch: refs/heads/trunk Commit: 8fc0d04517912766a3102f3e611f7d0fabd2f815 Parents: 154449f Author: Inigo Goiri Authored: Fri Dec 7 18:30:36 2018 -0800 Committer: Inigo Goiri Committed: Fri Dec 7 18:30:36 2018 -0800 -- .../hdfs/server/aliasmap/InMemoryAliasMap.java | 216 +-- .../aliasmap/InMemoryLevelDBAliasMapServer.java | 8 + .../hdfs/server/namenode/ImageServlet.java | 32 ++- .../hadoop/hdfs/server/namenode/NameNode.java | 11 + .../server/namenode/NameNodeHttpServer.java | 15 ++ .../hdfs/server/namenode/TransferFsImage.java | 21 +- .../server/namenode/ha/BootstrapStandby.java| 91 +++- .../namenode/metrics/NameNodeMetrics.java | 6 + .../org/apache/hadoop/hdfs/MiniDFSCluster.java | 23 ++ .../server/aliasmap/ITestInMemoryAliasMap.java | 30 +++ .../server/aliasmap/TestInMemoryAliasMap.java | 45 .../impl/TestInMemoryLevelDBAliasMapClient.java | 9 - .../namenode/ha/TestBootstrapAliasmap.java | 99 + .../namenode/ITestProvidedImplementation.java | 139 +++- 14 files changed, 669 insertions(+), 76 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/8fc0d045/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/aliasmap/InMemoryAliasMap.java -- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/aliasmap/InMemoryAliasMap.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/aliasmap/InMemoryAliasMap.java index 142a040..2a3 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/aliasmap/InMemoryAliasMap.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/aliasmap/InMemoryAliasMap.java @@ -19,10 +19,14 @@ package org.apache.hadoop.hdfs.server.aliasmap; import com.google.common.annotations.VisibleForTesting; import com.google.common.collect.Lists; import com.google.protobuf.InvalidProtocolBufferException; +import org.apache.commons.compress.archivers.tar.TarArchiveEntry; +import org.apache.commons.compress.archivers.tar.TarArchiveOutputStream; +import org.apache.commons.compress.compressors.gzip.GzipCompressorOutputStream; import org.apache.hadoop.classification.InterfaceAudience; import org.apache.hadoop.classification.InterfaceStability; import org.apache.hadoop.conf.Configurable; import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.fs.FileUtil; import org.apache.hadoop.hdfs.DFSConfigKeys; import org.apache.hadoop.hdfs.protocol.Block; import org.apache.hadoop.hdfs.protocol.ProvidedStorageLocation; @@ -30,17 +34,28 @@ import org.apache.hadoop.hdfs.protocol.proto.HdfsProtos.BlockProto; import org.apache.hadoop.hdfs.protocol.proto.HdfsProtos.ProvidedStorageLocationProto; import org.apache.hadoop.hdfs.protocolPB.PBHelperClient; import org.apache.hadoop.hdfs.server.common.FileRegion; +import org.apache.hadoop.hdfs.server.namenode.ImageServlet; +import org.apache.hadoop.hdfs.server.namenode.TransferFsImage; +import org.apache.hadoop.hdfs.util.DataTransferThrottler; +import org.apache.hadoop.io.IOUtils; import org.fusesource.leveldbjni.JniDBFactory; import org.iq80.leveldb.DB; import org.iq80.leveldb.DBIterator; import org.iq80.leveldb.Options; +import org.iq80.leveldb.ReadOptions; +import org.iq80.leveldb.Snapshot; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.annotation.Nonnull; +import javax.servlet.http.HttpServletResponse; +import java.io.BufferedOutputStream; import java.io.ByteArrayOutputStream; import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; import java.io.IOException; +import java.net.URI; import java.util.ArrayList; import java.util.Map; import java.util.Optional; @@ -57,6 +72,9 @@ public class InMemoryAliasMap implements InMemoryAliasMapProtocol, private static final Logger LOG = LoggerFactory .getLogger(InMemoryAliasMap.class); + private static final String SNAPSHOT_COPY_DIR = "aliasmap_snapshot"; + private static final String TAR_NAME = "aliasmap.tar.gz"; + private final URI aliasMapURI; private final DB levelDb; private Configuration conf; private String blockPoolID; @@ -71,22 +89,15 @@ public class InMemoryAliasMap implements
[4/5] hadoop git commit: YARN-8914. Add xtermjs to YARN UI2. Contributed by Eric Yang and Akhil PB
http://git-wip-us.apache.org/repos/asf/hadoop/blob/154449fb/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/resources/TERMINAL/xterm/dist/addons/zmodem/zmodem.js -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/resources/TERMINAL/xterm/dist/addons/zmodem/zmodem.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/resources/TERMINAL/xterm/dist/addons/zmodem/zmodem.js new file mode 100644 index 000..70a7ff7 --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/resources/TERMINAL/xterm/dist/addons/zmodem/zmodem.js @@ -0,0 +1,45 @@ +(function(f){if(typeof exports==="object"& module!=="undefined"){module.exports=f()}else if(typeof define==="function"&){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.zmodem = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&if(!f&)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&,i=0;ihttp://git-wip-us.apache.org/repos/asf/hadoop/blob/154449fb/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/resources/TERMINAL/xterm/dist/addons/zmodem/zmodem.js.map -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/resources/TERMINAL/xterm/dist/addons/zmodem/zmodem.js.map b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/resources/TERMINAL/xterm/dist/addons/zmodem/zmodem.js.map new file mode 100644 index 000..74927e7 --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/resources/TERMINAL/xterm/dist/addons/zmodem/zmodem.js.map @@ -0,0 +1 @@ +{"version":3,"file":"zmodem.js","sources":["../../../src/addons/zmodem/zmodem.ts","../../../node_modules/browser-pack/_prelude.js"],"sourcesContent":["/**\n * Copyright (c) 2017 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { Terminal } from 'xterm';\n\n/**\n *\n * Allow xterm.js to handle ZMODEM uploads and downloads.\n *\n * This addon is a wrapper around zmodem.js. It adds the following to the\n * Terminal class:\n *\n * - function `zmodemAttach(, )` - creates a Zmodem.Sentry\n * on the passed WebSocket object. The Object passed is optional and\n * can contain:\n * - noTerminalWriteOutsideSession: Suppress writes from the Sentry\n *object to the Terminal while there is no active Session. This\n *is necessary for compatibility with, for example, the\n * `attach.js` addon.\n *\n * - event `zmodemDetect` - fired on Zmodem.Sentryâs `on_detect` callback.\n * Passes the zmodem. js Detection object.\n *\n * - event `zmodemRetract` - fired on Zmodem.Sentryâs `on_retract` callback.\n *\n * Youâll need to provide logic to handle uploads and downloads.\n * See zmodem.jsâs documentation for more details.\n *\n * **IMPORTANT:** After you confirm() a zmodem.js Detection, if you have\n * used the `attach` or `terminado` addons, youâll need to suspend their\n * operation for the duration of the ZMODEM session. (The demo does this\n * via `detach()` and a re-`attach()`.)\n */\n\nlet zmodem;\n\nexport interface IZmodemOptions {\n noTerminalWriteOutsideSession?: boolean;\n}\n\nfunction zmodemAttach(ws: WebSocket, opts: IZmodemOptions = {}): void {\n const term = this;\n const senderFunc = (octets: ArrayLike) => ws.send(new Uint8Array(octets));\n\n let zsentry;\n\n function shouldWrite(): boolean {\nreturn !!zsentry.get_confirmed_session() || !opts.noTerminalWriteOutsideSession;\n }\n\n zsentry = new zmodem.Sentry({\n to_terminal: (octet s: ArrayLike) => {\n if (shouldWrite()) {\nterm.write(\n String.fromCharCode.apply(String, octets)\n);\n }\n },\nsender: senderFunc,\non_retract: () => (term).emit('zmodemRetract'),\non_detect: (detection: any) => (term).emit('zmodemDetect', detection)\n });\n\n function handleWSMessage(evt: MessageEvent): void {\n\n// In testing with xterm.jsâs demo the first message was\n// always text even if the rest were binary. While that\n// may be specific to xterm.jsâs demo, ultimately we\n// should reject anything that isnât
[5/5] hadoop git commit: YARN-8914. Add xtermjs to YARN UI2. Contributed by Eric Yang and Akhil PB
YARN-8914. Add xtermjs to YARN UI2. Contributed by Eric Yang and Akhil PB Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/154449fb Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/154449fb Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/154449fb Branch: refs/heads/trunk Commit: 154449fbd80d1b357063ec675d12b17b6c6e20fc Parents: cc51607 Author: Billie Rinaldi Authored: Fri Dec 7 10:55:13 2018 -0800 Committer: Billie Rinaldi Committed: Fri Dec 7 10:56:17 2018 -0800 -- LICENSE.txt | 33 + NOTICE.txt |7 + .../hadoop-client-minicluster/pom.xml |8 + .../hadoop-yarn-server-nodemanager/pom.xml |1 + .../nodemanager/webapp/TerminalServlet.java | 49 + .../server/nodemanager/webapp/WebServer.java|9 +- .../src/main/resources/TERMINAL/css/style.css | 33 + .../main/resources/TERMINAL/terminal.template | 110 + .../TERMINAL/xterm/dist/addons/attach/attach.js | 104 + .../xterm/dist/addons/attach/attach.js.map |1 + .../TERMINAL/xterm/dist/addons/fit/fit.js | 51 + .../TERMINAL/xterm/dist/addons/fit/fit.js.map |1 + .../xterm/dist/addons/fullscreen/fullscreen.css | 10 + .../xterm/dist/addons/fullscreen/fullscreen.js | 27 + .../dist/addons/fullscreen/fullscreen.js.map|1 + .../TERMINAL/xterm/dist/addons/search/search.js | 166 + .../xterm/dist/addons/search/search.js.map |1 + .../xterm/dist/addons/terminado/terminado.js| 69 + .../dist/addons/terminado/terminado.js.map |1 + .../xterm/dist/addons/webLinks/webLinks.js | 41 + .../xterm/dist/addons/webLinks/webLinks.js.map |1 + .../dist/addons/winptyCompat/winptyCompat.js| 31 + .../addons/winptyCompat/winptyCompat.js.map |1 + .../TERMINAL/xterm/dist/addons/zmodem/zmodem.js | 45 + .../xterm/dist/addons/zmodem/zmodem.js.map |1 + .../resources/TERMINAL/xterm/dist/xterm.css | 164 + .../main/resources/TERMINAL/xterm/dist/xterm.js | 8907 ++ .../resources/TERMINAL/xterm/dist/xterm.js.map |1 + .../nodemanager/webapp/TestNMWebTerminal.java | 124 + .../hadoop-yarn/hadoop-yarn-ui/pom.xml | 41 + .../main/webapp/app/components/timeline-view.js | 19 +- .../main/webapp/app/models/yarn-container.js|2 +- .../app/models/yarn-timeline-container.js |2 +- .../main/webapp/app/routes/yarn-app-attempt.js |5 + .../templates/components/container-table.hbs|6 + .../app/templates/components/timeline-view.hbs |2 +- .../webapp/app/templates/yarn-app-attempt.hbs |1 + 37 files changed, 10070 insertions(+), 6 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/154449fb/LICENSE.txt -- diff --git a/LICENSE.txt b/LICENSE.txt index dd7195e..a01cff4 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -2793,6 +2793,38 @@ available under the Creative Commons By Attribution 3.0 License. this trademark restriction does not form part of this License. Creative Commons may be contacted at https://creativecommons.org/. + + + +For: /hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server +/hadoop-yarn-server-nodemanager/src/main/resources/TERMINAL + +xterm.js 3.8.0 +The source and binary distribution of this product bundles these dependencies +under the following license: + +Copyright (c) 2017-2018, The xterm.js authors (https://github.com/xtermjs/xterm.js) +Copyright (c) 2014-2016, SourceLair Private Company (https://www.sourcelair.com) +Copyright (c) 2012-2013, Christopher Jeffrey (https://github.com/chjj/) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
[1/5] hadoop git commit: YARN-8914. Add xtermjs to YARN UI2. Contributed by Eric Yang and Akhil PB
Repository: hadoop Updated Branches: refs/heads/trunk cc51607cc -> 154449fbd http://git-wip-us.apache.org/repos/asf/hadoop/blob/154449fb/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/webapp/TestNMWebTerminal.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/webapp/TestNMWebTerminal.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/webapp/TestNMWebTerminal.java new file mode 100644 index 000..8589b94 --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/webapp/TestNMWebTerminal.java @@ -0,0 +1,124 @@ +/** +* 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.nodemanager.webapp; + +import static org.junit.Assert.assertEquals; + +import java.io.File; +import java.io.IOException; + +import javax.ws.rs.core.MediaType; + +import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.http.JettyUtils; +import org.apache.hadoop.util.NodeHealthScriptRunner; +import org.apache.hadoop.yarn.conf.YarnConfiguration; +import org.apache.hadoop.yarn.server.nodemanager.Context; +import org.apache.hadoop.yarn.server.nodemanager.LocalDirsHandlerService; +import org.apache.hadoop.yarn.server.nodemanager.NodeHealthCheckerService; +import org.apache.hadoop.yarn.server.nodemanager.NodeManager; +import org.apache.hadoop.yarn.server.nodemanager.ResourceView; +import org.apache.hadoop.yarn.server.security.ApplicationACLsManager; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +import com.sun.jersey.api.client.Client; +import com.sun.jersey.api.client.ClientResponse; +import com.sun.jersey.api.client.WebResource.Builder; + +/** + * Unit test for hosting web terminal servlet in node manager. + */ +public class TestNMWebTerminal { + private static final File TESTROOTDIR = new File("target", + TestNMWebServer.class.getSimpleName()); + private static File TESTLOGDIR = new File("target", + TestNMWebServer.class.getSimpleName() + "LogDir"); + private NodeHealthCheckerService healthChecker; + private WebServer server; + private int port; + + private NodeHealthCheckerService createNodeHealthCheckerService( + Configuration conf) { +NodeHealthScriptRunner scriptRunner = NodeManager +.getNodeHealthScriptRunner(conf); +LocalDirsHandlerService dirsHandler = new LocalDirsHandlerService(); +return new NodeHealthCheckerService(scriptRunner, dirsHandler); + } + + private int startNMWebAppServer(String webAddr) { +Configuration conf = new Configuration(); +Context nmContext = new NodeManager.NMContext(null, null, null, null, +null, false, conf); +ResourceView resourceView = new ResourceView() { + @Override + public long getVmemAllocatedForContainers() { +return 0; + } + @Override + public long getPmemAllocatedForContainers() { +return 0; + } + @Override + public long getVCoresAllocatedForContainers() { +return 0; + } + @Override + public boolean isVmemCheckEnabled() { +return true; + } + @Override + public boolean isPmemCheckEnabled() { +return true; + } +}; +conf.set(YarnConfiguration.NM_LOCAL_DIRS, TESTROOTDIR.getAbsolutePath()); +conf.set(YarnConfiguration.NM_LOG_DIRS, TESTLOGDIR.getAbsolutePath()); +healthChecker = createNodeHealthCheckerService(conf); +healthChecker.init(conf); +LocalDirsHandlerService dirsHandler = healthChecker.getDiskHandler(); +conf.set(YarnConfiguration.NM_WEBAPP_ADDRESS, webAddr); +server = new WebServer(nmContext, resourceView, +new ApplicationACLsManager(conf), dirsHandler); +server.init(conf); +server.start(); +return server.getPort(); + } + + @Before + public void setUp() { +port =
[2/5] hadoop git commit: YARN-8914. Add xtermjs to YARN UI2. Contributed by Eric Yang and Akhil PB
http://git-wip-us.apache.org/repos/asf/hadoop/blob/154449fb/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/resources/TERMINAL/xterm/dist/xterm.js.map -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/resources/TERMINAL/xterm/dist/xterm.js.map b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/resources/TERMINAL/xterm/dist/xterm.js.map new file mode 100644 index 000..9ea86f3 --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/resources/TERMINAL/xterm/dist/xterm.js.map @@ -0,0 +1 @@ +{"version":3,"file":"xterm.js","sources":["../src/xterm.ts","../src/utils/MouseHelper.ts","../src/utils/Clone.ts","../src/ui/ScreenDprMonitor.ts","../src/ui/RenderDebouncer.ts","../src/ui/MouseZoneManager.ts","../src/ui/Lifecycle.ts","../src/ui/CharMeasure.ts","../src/shared/utils/Browser.ts","../src/shared/atlas/Types.ts","../src/shared/atlas/CharAtlasGenerator.ts","../src/renderer/dom/DomRendererRowFactory.ts","../src/renderer/dom/DomRenderer.ts","../src/renderer/atlas/Types.ts","../src/renderer/atlas/StaticCharAtlas.ts","../src/renderer/atlas/NoneCharAtlas.ts","../src/renderer/atlas/LRUMap.ts","../src/renderer/atlas/DynamicCharAtlas.ts","../src/renderer/atlas/CharAtlasUtils.ts","../src/renderer/atlas/CharAtlasCache.ts","../src/renderer/atlas/BaseCharAtlas.ts","../src/renderer/TextRenderLayer.ts","../src/renderer/SelectionRenderLayer.ts","../src/renderer/Renderer.ts","../src/renderer/LinkRenderLayer.ts","../src/renderer/GridCache.ts","../src/renderer/CursorRenderLayer.ts","../src/ renderer/ColorManager.ts","../src/renderer/CharacterJoinerRegistry.ts","../src/renderer/BaseRenderLayer.ts","../src/public/Terminal.ts","../src/handlers/Clipboard.ts","../src/handlers/AltClickHandler.ts","../src/core/input/Keyboard.ts","../src/core/data/Charsets.ts","../src/common/data/EscapeSequences.ts","../src/common/Lifecycle.ts","../src/common/EventEmitter.ts","../src/common/CircularList.ts","../src/Viewport.ts","../src/Terminal.ts","../src/Strings.ts","../src/SoundManager.ts","../src/SelectionModel.ts","../src/SelectionManager.ts","../src/Linkifier.ts","../src/InputHandler.ts","../src/EscapeSequenceParser.ts","../src/CompositionHelper.ts","../src/CharWidth.ts","../src/BufferSet.ts","../src/BufferLine.ts","../src/Buffer.ts","../src/AccessibilityManager.ts","../node_modules/browser-pack/_prelude.js"],"sourcesContent":["/**\n * Copyright (c) 2017 The xterm.js authors. All rights reserved.\n * @license MIT\n *\n * This file is the entry point for browserify.\n */\n\nimport { Termi nal } from './public/Terminal';\n\nmodule.exports = Terminal;\n","/**\n * Copyright (c) 2017 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { ICharMeasure } from '../Types';\nimport { IRenderer } from '../renderer/Types';\n\nexport class MouseHelper {\n constructor(private _renderer: IRenderer) {}\n\n public static getCoordsRelativeToElement(event: {pageX: number, pageY: number}, element: HTMLElement): [number, number] {\n // Ignore browsers that don't support MouseEvent.pageX\nif (event.pageX === null || event.pageX === undefined) {\n return null;\n}\n\nconst originalElement = element;\nlet x = event.pageX;\nlet y = event.pageY;\n\n// Converts the coordinates from being relative to the document to being\n// relative to the terminal.\nwhile (element) {\n x -= element.offsetLeft;\n y -= element.offsetTop;\n element = element.offsetParent;\n}\nelement = originalElement;\n while (element && element !== element.ownerDocument.body) {\n x += element.scrollLeft;\n y += element.scrollTop;\n element = element.parentElement;\n}\nreturn [x, y];\n }\n\n /**\n * Gets coordinates within the terminal for a particular mouse event. The result\n * is returned as an array in the form [x, y] instead of an object as it's a\n * little faster and this function is used in some low level code.\n * @param event The mouse event.\n * @param element The terminal's container element.\n * @param charMeasure The char measure object used to determine character sizes.\n * @param colCount The number of columns in the terminal.\n * @param rowCount The number of rows n the terminal.\n * @param isSelection Whether the request is for the selection or not. This will\n * apply an offset to the x value such that the left half of the cell will\n * select that cell and the right half will select the next cell.\n */\n public getCoords( event: {pageX: number, pageY: number}, element: HTMLElement, charMeasure: ICharMeasure, lineHeight: number, colCount: number, rowCount: number, isSelection?: boolean): [number, number] {\n// Coordinates cannot be measured if
[3/5] hadoop git commit: YARN-8914. Add xtermjs to YARN UI2. Contributed by Eric Yang and Akhil PB
http://git-wip-us.apache.org/repos/asf/hadoop/blob/154449fb/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/resources/TERMINAL/xterm/dist/xterm.js -- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/resources/TERMINAL/xterm/dist/xterm.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/resources/TERMINAL/xterm/dist/xterm.js new file mode 100644 index 000..eb44f54 --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/resources/TERMINAL/xterm/dist/xterm.js @@ -0,0 +1,8907 @@ +(function(f){if(typeof exports==="object"& module!=="undefined"){module.exports=f()}else if(typeof define==="function"&){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.Terminal = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&if(!f&)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&,i=0;i rows) { +this._rowContainer.removeChild(this._rowElements.pop()); +} +this._rowElements[this._rowElements.length - 1].addEventListener('focus', this._bottomBoundaryFocusListener); +this._refreshRowsDimensions(); +}; +AccessibilityManager.prototype._createAccessibilityTreeNode = function () { +var element = document.createElement('div'); +element.setAttribute('role', 'listitem'); +element.tabIndex = -1; +this._refreshRowDimensions(element); +return element; +}; +AccessibilityManager.prototype._onTab = function (spaceCount) { +for (var i = 0; i < spaceCount; i++) { +this._onChar(' '); +} +}; +AccessibilityManager.prototype._onChar = function (char) { +var _this = this; +if (this._liveRegionLineCount < MAX_ROWS_TO_READ + 1) { +if (this._charsToConsume.length > 0) { +var shiftedChar = this._charsToConsume.shift(); +if (shiftedChar !== char) { +this._announceCharacter(char); +} +} +else { +this._announceCharacter(char); +} +if (char === '\n') { +this._liveRegionLineCount++; +if (this._liveRegionLineCount === MAX_ROWS_TO_READ + 1) { +this._liveRegion.textContent += Strings.tooMuchOutput; +} +} +if (Browser_1.isMac) { +if (this._liveRegion.textContent && this._liveRegion.textContent.length > 0 && !this._liveRegion.parentNode) { +setTimeout(function () { + _this._accessibilityTreeRoot.appendChild(_this._liveRegion); +}, 0); +} +} +} +}; +AccessibilityManager.prototype._clearLiveRegion = function () { +this._liveRegion.textContent = ''; +this._liveRegionLineCount = 0; +if (Browser_1.isMac) { +if (this._liveRegion.parentNode) { +this._accessibilityTreeRoot.removeChild(this._liveRegion); +} +} +}; +AccessibilityManager.prototype._onKey = function (keyChar) { +this._clearLiveRegion(); +this._charsToConsume.push(keyChar); +}; +AccessibilityManager.prototype._refreshRows = function (start, end) { +this._renderRowsDebouncer.refresh(start, end); +}; +AccessibilityManager.prototype._renderRows = function (start, end) { +var buffer = this._terminal.buffer; +var setSize = buffer.lines.length.toString(); +for (var i = start; i <= end; i++) { +var lineData = buffer.translateBufferLineToString(buffer.ydisp + i, true); +var posInSet = (buffer.ydisp + i + 1).toString(); +var element = this._rowElements[i]; +element.textContent = lineData.length === 0 ? Strings.blankLine : lineData; +element.setAttribute('aria-posinset', posInSet); +element.setAttribute('aria-setsize', setSize); +} +}; +AccessibilityManager.prototype._refreshRowsDimensions = function () { +if (!this._terminal.renderer.dimensions.actualCellHeight) { +return; +} +if (this._rowElements.length !== this._terminal.rows) { +this._onResize(this._terminal.rows); +} +for (var i = 0; i <
hadoop git commit: YARN-9085. Add Guaranteed and MaxCapacity to CSQueueMetrics
Repository: hadoop Updated Branches: refs/heads/branch-2.9 61a3bf465 -> df9a01810 YARN-9085. Add Guaranteed and MaxCapacity to CSQueueMetrics (cherry picked from commit cc51607ccdf60f4ebecf7afa3e2056297ca0ac5f) (cherry picked from commit eb8b1eaa9a8aa1424864c94a7f796f33dd425f07) Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/df9a0181 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/df9a0181 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/df9a0181 Branch: refs/heads/branch-2.9 Commit: df9a018109b841744128369cadffda5ac87f373e Parents: 61a3bf4 Author: Jonathan Hung Authored: Fri Dec 7 10:32:53 2018 -0800 Committer: Jonathan Hung Committed: Fri Dec 7 10:50:06 2018 -0800 -- .../scheduler/capacity/CSQueueMetrics.java | 39 + .../scheduler/capacity/CSQueueUtils.java| 17 .../scheduler/capacity/LeafQueue.java | 4 ++ .../scheduler/capacity/ParentQueue.java | 4 ++ .../capacity/TestCapacityScheduler.java | 44 5 files changed, 108 insertions(+) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/df9a0181/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CSQueueMetrics.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/CSQueueMetrics.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/CSQueueMetrics.java index 87fc234..8382665 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/CSQueueMetrics.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/CSQueueMetrics.java @@ -24,6 +24,7 @@ import org.apache.hadoop.metrics2.annotation.Metric; import org.apache.hadoop.metrics2.annotation.Metrics; import org.apache.hadoop.metrics2.lib.DefaultMetricsSystem; import org.apache.hadoop.metrics2.lib.MutableGaugeFloat; +import org.apache.hadoop.metrics2.lib.MutableGaugeInt; import org.apache.hadoop.metrics2.lib.MutableGaugeLong; import org.apache.hadoop.yarn.api.records.Resource; import org.apache.hadoop.yarn.server.resourcemanager.nodelabels.RMNodeLabelsManager; @@ -46,6 +47,14 @@ public class CSQueueMetrics extends QueueMetrics { MutableGaugeFloat usedCapacity; @Metric("Percent of Absolute Capacity Used") MutableGaugeFloat absoluteUsedCapacity; + @Metric("Guaranteed memory in MB") + MutableGaugeLong guaranteedMB; + @Metric("Guaranteed CPU in virtual cores") + MutableGaugeInt guaranteedVCores; + @Metric("Maximum memory in MB") + MutableGaugeLong maxCapacityMB; + @Metric("Maximum CPU in virtual cores") + MutableGaugeInt maxCapacityVCores; CSQueueMetrics(MetricsSystem ms, String queueName, Queue parent, boolean enableUserMetrics, Configuration conf) { @@ -126,6 +135,36 @@ public class CSQueueMetrics extends QueueMetrics { } } + public long getGuaranteedMB() { +return guaranteedMB.value(); + } + + public int getGuaranteedVCores() { +return guaranteedVCores.value(); + } + + public void setGuaranteedResources(String partition, Resource res) { +if (partition == null || partition.equals(RMNodeLabelsManager.NO_LABEL)) { + guaranteedMB.set(res.getMemorySize()); + guaranteedVCores.set(res.getVirtualCores()); +} + } + + public long getMaxCapacityMB() { +return maxCapacityMB.value(); + } + + public int getMaxCapacityVCores() { +return maxCapacityVCores.value(); + } + + public void setMaxCapacityResources(String partition, Resource res) { +if (partition == null || partition.equals(RMNodeLabelsManager.NO_LABEL)) { + maxCapacityMB.set(res.getMemorySize()); + maxCapacityVCores.set(res.getVirtualCores()); +} + } + public synchronized static CSQueueMetrics forQueue(String queueName, Queue parent, boolean enableUserMetrics, Configuration conf) { MetricsSystem ms = DefaultMetricsSystem.instance(); http://git-wip-us.apache.org/repos/asf/hadoop/blob/df9a0181/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CSQueueUtils.java -- diff --git
hadoop git commit: YARN-9085. Add Guaranteed and MaxCapacity to CSQueueMetrics
Repository: hadoop Updated Branches: refs/heads/branch-2 5cef413a8 -> eb8b1eaa9 YARN-9085. Add Guaranteed and MaxCapacity to CSQueueMetrics (cherry picked from commit cc51607ccdf60f4ebecf7afa3e2056297ca0ac5f) Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/eb8b1eaa Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/eb8b1eaa Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/eb8b1eaa Branch: refs/heads/branch-2 Commit: eb8b1eaa9a8aa1424864c94a7f796f33dd425f07 Parents: 5cef413 Author: Jonathan Hung Authored: Fri Dec 7 10:32:53 2018 -0800 Committer: Jonathan Hung Committed: Fri Dec 7 10:47:45 2018 -0800 -- .../scheduler/capacity/CSQueueMetrics.java | 39 + .../scheduler/capacity/CSQueueUtils.java| 17 .../scheduler/capacity/LeafQueue.java | 4 ++ .../scheduler/capacity/ParentQueue.java | 4 ++ .../capacity/TestCapacityScheduler.java | 44 5 files changed, 108 insertions(+) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/eb8b1eaa/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CSQueueMetrics.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/CSQueueMetrics.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/CSQueueMetrics.java index 87fc234..8382665 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/CSQueueMetrics.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/CSQueueMetrics.java @@ -24,6 +24,7 @@ import org.apache.hadoop.metrics2.annotation.Metric; import org.apache.hadoop.metrics2.annotation.Metrics; import org.apache.hadoop.metrics2.lib.DefaultMetricsSystem; import org.apache.hadoop.metrics2.lib.MutableGaugeFloat; +import org.apache.hadoop.metrics2.lib.MutableGaugeInt; import org.apache.hadoop.metrics2.lib.MutableGaugeLong; import org.apache.hadoop.yarn.api.records.Resource; import org.apache.hadoop.yarn.server.resourcemanager.nodelabels.RMNodeLabelsManager; @@ -46,6 +47,14 @@ public class CSQueueMetrics extends QueueMetrics { MutableGaugeFloat usedCapacity; @Metric("Percent of Absolute Capacity Used") MutableGaugeFloat absoluteUsedCapacity; + @Metric("Guaranteed memory in MB") + MutableGaugeLong guaranteedMB; + @Metric("Guaranteed CPU in virtual cores") + MutableGaugeInt guaranteedVCores; + @Metric("Maximum memory in MB") + MutableGaugeLong maxCapacityMB; + @Metric("Maximum CPU in virtual cores") + MutableGaugeInt maxCapacityVCores; CSQueueMetrics(MetricsSystem ms, String queueName, Queue parent, boolean enableUserMetrics, Configuration conf) { @@ -126,6 +135,36 @@ public class CSQueueMetrics extends QueueMetrics { } } + public long getGuaranteedMB() { +return guaranteedMB.value(); + } + + public int getGuaranteedVCores() { +return guaranteedVCores.value(); + } + + public void setGuaranteedResources(String partition, Resource res) { +if (partition == null || partition.equals(RMNodeLabelsManager.NO_LABEL)) { + guaranteedMB.set(res.getMemorySize()); + guaranteedVCores.set(res.getVirtualCores()); +} + } + + public long getMaxCapacityMB() { +return maxCapacityMB.value(); + } + + public int getMaxCapacityVCores() { +return maxCapacityVCores.value(); + } + + public void setMaxCapacityResources(String partition, Resource res) { +if (partition == null || partition.equals(RMNodeLabelsManager.NO_LABEL)) { + maxCapacityMB.set(res.getMemorySize()); + maxCapacityVCores.set(res.getVirtualCores()); +} + } + public synchronized static CSQueueMetrics forQueue(String queueName, Queue parent, boolean enableUserMetrics, Configuration conf) { MetricsSystem ms = DefaultMetricsSystem.instance(); http://git-wip-us.apache.org/repos/asf/hadoop/blob/eb8b1eaa/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CSQueueUtils.java -- diff --git
hadoop git commit: YARN-9085. Add Guaranteed and MaxCapacity to CSQueueMetrics
Repository: hadoop Updated Branches: refs/heads/branch-3.1 6e6f43afd -> 7b523e6a7 YARN-9085. Add Guaranteed and MaxCapacity to CSQueueMetrics (cherry picked from commit 978ab3e958227220cb6f1a08ae6e7cdb8a46628b) (cherry picked from commit dca69d178dba21c41fd1293187f29143f7e81e19) Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/7b523e6a Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/7b523e6a Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/7b523e6a Branch: refs/heads/branch-3.1 Commit: 7b523e6a772019277ee0a476ab167b8203d6dccf Parents: 6e6f43a Author: Jonathan Hung Authored: Fri Dec 7 10:32:53 2018 -0800 Committer: Jonathan Hung Committed: Fri Dec 7 10:45:57 2018 -0800 -- .../scheduler/capacity/CSQueueMetrics.java | 39 + .../scheduler/capacity/CSQueueUtils.java| 17 .../scheduler/capacity/LeafQueue.java | 4 ++ .../scheduler/capacity/ParentQueue.java | 4 ++ .../capacity/TestCapacityScheduler.java | 44 5 files changed, 108 insertions(+) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/7b523e6a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CSQueueMetrics.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/CSQueueMetrics.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/CSQueueMetrics.java index 87fc234..8382665 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/CSQueueMetrics.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/CSQueueMetrics.java @@ -24,6 +24,7 @@ import org.apache.hadoop.metrics2.annotation.Metric; import org.apache.hadoop.metrics2.annotation.Metrics; import org.apache.hadoop.metrics2.lib.DefaultMetricsSystem; import org.apache.hadoop.metrics2.lib.MutableGaugeFloat; +import org.apache.hadoop.metrics2.lib.MutableGaugeInt; import org.apache.hadoop.metrics2.lib.MutableGaugeLong; import org.apache.hadoop.yarn.api.records.Resource; import org.apache.hadoop.yarn.server.resourcemanager.nodelabels.RMNodeLabelsManager; @@ -46,6 +47,14 @@ public class CSQueueMetrics extends QueueMetrics { MutableGaugeFloat usedCapacity; @Metric("Percent of Absolute Capacity Used") MutableGaugeFloat absoluteUsedCapacity; + @Metric("Guaranteed memory in MB") + MutableGaugeLong guaranteedMB; + @Metric("Guaranteed CPU in virtual cores") + MutableGaugeInt guaranteedVCores; + @Metric("Maximum memory in MB") + MutableGaugeLong maxCapacityMB; + @Metric("Maximum CPU in virtual cores") + MutableGaugeInt maxCapacityVCores; CSQueueMetrics(MetricsSystem ms, String queueName, Queue parent, boolean enableUserMetrics, Configuration conf) { @@ -126,6 +135,36 @@ public class CSQueueMetrics extends QueueMetrics { } } + public long getGuaranteedMB() { +return guaranteedMB.value(); + } + + public int getGuaranteedVCores() { +return guaranteedVCores.value(); + } + + public void setGuaranteedResources(String partition, Resource res) { +if (partition == null || partition.equals(RMNodeLabelsManager.NO_LABEL)) { + guaranteedMB.set(res.getMemorySize()); + guaranteedVCores.set(res.getVirtualCores()); +} + } + + public long getMaxCapacityMB() { +return maxCapacityMB.value(); + } + + public int getMaxCapacityVCores() { +return maxCapacityVCores.value(); + } + + public void setMaxCapacityResources(String partition, Resource res) { +if (partition == null || partition.equals(RMNodeLabelsManager.NO_LABEL)) { + maxCapacityMB.set(res.getMemorySize()); + maxCapacityVCores.set(res.getVirtualCores()); +} + } + public synchronized static CSQueueMetrics forQueue(String queueName, Queue parent, boolean enableUserMetrics, Configuration conf) { MetricsSystem ms = DefaultMetricsSystem.instance(); http://git-wip-us.apache.org/repos/asf/hadoop/blob/7b523e6a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CSQueueUtils.java -- diff --git
hadoop git commit: YARN-9085. Add Guaranteed and MaxCapacity to CSQueueMetrics
Repository: hadoop Updated Branches: refs/heads/branch-3.0 a7b402b06 -> 80ef3e758 YARN-9085. Add Guaranteed and MaxCapacity to CSQueueMetrics (cherry picked from commit 978ab3e958227220cb6f1a08ae6e7cdb8a46628b) (cherry picked from commit dca69d178dba21c41fd1293187f29143f7e81e19) Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/80ef3e75 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/80ef3e75 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/80ef3e75 Branch: refs/heads/branch-3.0 Commit: 80ef3e7581c25163a43ad4ae4d1b181379455a7a Parents: a7b402b Author: Jonathan Hung Authored: Fri Dec 7 10:32:53 2018 -0800 Committer: Jonathan Hung Committed: Fri Dec 7 10:46:07 2018 -0800 -- .../scheduler/capacity/CSQueueMetrics.java | 39 + .../scheduler/capacity/CSQueueUtils.java| 17 .../scheduler/capacity/LeafQueue.java | 4 ++ .../scheduler/capacity/ParentQueue.java | 4 ++ .../capacity/TestCapacityScheduler.java | 44 5 files changed, 108 insertions(+) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/80ef3e75/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CSQueueMetrics.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/CSQueueMetrics.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/CSQueueMetrics.java index 87fc234..8382665 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/CSQueueMetrics.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/CSQueueMetrics.java @@ -24,6 +24,7 @@ import org.apache.hadoop.metrics2.annotation.Metric; import org.apache.hadoop.metrics2.annotation.Metrics; import org.apache.hadoop.metrics2.lib.DefaultMetricsSystem; import org.apache.hadoop.metrics2.lib.MutableGaugeFloat; +import org.apache.hadoop.metrics2.lib.MutableGaugeInt; import org.apache.hadoop.metrics2.lib.MutableGaugeLong; import org.apache.hadoop.yarn.api.records.Resource; import org.apache.hadoop.yarn.server.resourcemanager.nodelabels.RMNodeLabelsManager; @@ -46,6 +47,14 @@ public class CSQueueMetrics extends QueueMetrics { MutableGaugeFloat usedCapacity; @Metric("Percent of Absolute Capacity Used") MutableGaugeFloat absoluteUsedCapacity; + @Metric("Guaranteed memory in MB") + MutableGaugeLong guaranteedMB; + @Metric("Guaranteed CPU in virtual cores") + MutableGaugeInt guaranteedVCores; + @Metric("Maximum memory in MB") + MutableGaugeLong maxCapacityMB; + @Metric("Maximum CPU in virtual cores") + MutableGaugeInt maxCapacityVCores; CSQueueMetrics(MetricsSystem ms, String queueName, Queue parent, boolean enableUserMetrics, Configuration conf) { @@ -126,6 +135,36 @@ public class CSQueueMetrics extends QueueMetrics { } } + public long getGuaranteedMB() { +return guaranteedMB.value(); + } + + public int getGuaranteedVCores() { +return guaranteedVCores.value(); + } + + public void setGuaranteedResources(String partition, Resource res) { +if (partition == null || partition.equals(RMNodeLabelsManager.NO_LABEL)) { + guaranteedMB.set(res.getMemorySize()); + guaranteedVCores.set(res.getVirtualCores()); +} + } + + public long getMaxCapacityMB() { +return maxCapacityMB.value(); + } + + public int getMaxCapacityVCores() { +return maxCapacityVCores.value(); + } + + public void setMaxCapacityResources(String partition, Resource res) { +if (partition == null || partition.equals(RMNodeLabelsManager.NO_LABEL)) { + maxCapacityMB.set(res.getMemorySize()); + maxCapacityVCores.set(res.getVirtualCores()); +} + } + public synchronized static CSQueueMetrics forQueue(String queueName, Queue parent, boolean enableUserMetrics, Configuration conf) { MetricsSystem ms = DefaultMetricsSystem.instance(); http://git-wip-us.apache.org/repos/asf/hadoop/blob/80ef3e75/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CSQueueUtils.java -- diff --git
hadoop git commit: YARN-9085. Add Guaranteed and MaxCapacity to CSQueueMetrics
Repository: hadoop Updated Branches: refs/heads/trunk 6c852f2a3 -> cc51607cc YARN-9085. Add Guaranteed and MaxCapacity to CSQueueMetrics Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/cc51607c Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/cc51607c Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/cc51607c Branch: refs/heads/trunk Commit: cc51607ccdf60f4ebecf7afa3e2056297ca0ac5f Parents: 6c852f2 Author: Jonathan Hung Authored: Fri Dec 7 10:32:53 2018 -0800 Committer: Jonathan Hung Committed: Fri Dec 7 10:45:37 2018 -0800 -- .../scheduler/capacity/CSQueueMetrics.java | 39 + .../scheduler/capacity/CSQueueUtils.java| 17 .../scheduler/capacity/LeafQueue.java | 4 ++ .../scheduler/capacity/ParentQueue.java | 4 ++ .../capacity/TestCapacityScheduler.java | 44 5 files changed, 108 insertions(+) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/cc51607c/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CSQueueMetrics.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/CSQueueMetrics.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/CSQueueMetrics.java index 87fc234..8382665 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/CSQueueMetrics.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/CSQueueMetrics.java @@ -24,6 +24,7 @@ import org.apache.hadoop.metrics2.annotation.Metric; import org.apache.hadoop.metrics2.annotation.Metrics; import org.apache.hadoop.metrics2.lib.DefaultMetricsSystem; import org.apache.hadoop.metrics2.lib.MutableGaugeFloat; +import org.apache.hadoop.metrics2.lib.MutableGaugeInt; import org.apache.hadoop.metrics2.lib.MutableGaugeLong; import org.apache.hadoop.yarn.api.records.Resource; import org.apache.hadoop.yarn.server.resourcemanager.nodelabels.RMNodeLabelsManager; @@ -46,6 +47,14 @@ public class CSQueueMetrics extends QueueMetrics { MutableGaugeFloat usedCapacity; @Metric("Percent of Absolute Capacity Used") MutableGaugeFloat absoluteUsedCapacity; + @Metric("Guaranteed memory in MB") + MutableGaugeLong guaranteedMB; + @Metric("Guaranteed CPU in virtual cores") + MutableGaugeInt guaranteedVCores; + @Metric("Maximum memory in MB") + MutableGaugeLong maxCapacityMB; + @Metric("Maximum CPU in virtual cores") + MutableGaugeInt maxCapacityVCores; CSQueueMetrics(MetricsSystem ms, String queueName, Queue parent, boolean enableUserMetrics, Configuration conf) { @@ -126,6 +135,36 @@ public class CSQueueMetrics extends QueueMetrics { } } + public long getGuaranteedMB() { +return guaranteedMB.value(); + } + + public int getGuaranteedVCores() { +return guaranteedVCores.value(); + } + + public void setGuaranteedResources(String partition, Resource res) { +if (partition == null || partition.equals(RMNodeLabelsManager.NO_LABEL)) { + guaranteedMB.set(res.getMemorySize()); + guaranteedVCores.set(res.getVirtualCores()); +} + } + + public long getMaxCapacityMB() { +return maxCapacityMB.value(); + } + + public int getMaxCapacityVCores() { +return maxCapacityVCores.value(); + } + + public void setMaxCapacityResources(String partition, Resource res) { +if (partition == null || partition.equals(RMNodeLabelsManager.NO_LABEL)) { + maxCapacityMB.set(res.getMemorySize()); + maxCapacityVCores.set(res.getVirtualCores()); +} + } + public synchronized static CSQueueMetrics forQueue(String queueName, Queue parent, boolean enableUserMetrics, Configuration conf) { MetricsSystem ms = DefaultMetricsSystem.instance(); http://git-wip-us.apache.org/repos/asf/hadoop/blob/cc51607c/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CSQueueUtils.java -- diff --git
hadoop git commit: YARN-9085. Add Guaranteed and MaxCapacity to CSQueueMetrics
Repository: hadoop Updated Branches: refs/heads/branch-3.2 298a1f29e -> 3ab6ea7ac YARN-9085. Add Guaranteed and MaxCapacity to CSQueueMetrics (cherry picked from commit 978ab3e958227220cb6f1a08ae6e7cdb8a46628b) Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/3ab6ea7a Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/3ab6ea7a Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/3ab6ea7a Branch: refs/heads/branch-3.2 Commit: 3ab6ea7aca431d32a742f92b739250f42bc95153 Parents: 298a1f2 Author: Jonathan Hung Authored: Fri Dec 7 10:32:53 2018 -0800 Committer: Jonathan Hung Committed: Fri Dec 7 10:45:47 2018 -0800 -- .../scheduler/capacity/CSQueueMetrics.java | 39 + .../scheduler/capacity/CSQueueUtils.java| 17 .../scheduler/capacity/LeafQueue.java | 4 ++ .../scheduler/capacity/ParentQueue.java | 4 ++ .../capacity/TestCapacityScheduler.java | 44 5 files changed, 108 insertions(+) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/3ab6ea7a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CSQueueMetrics.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/CSQueueMetrics.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/CSQueueMetrics.java index 87fc234..8382665 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/CSQueueMetrics.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/CSQueueMetrics.java @@ -24,6 +24,7 @@ import org.apache.hadoop.metrics2.annotation.Metric; import org.apache.hadoop.metrics2.annotation.Metrics; import org.apache.hadoop.metrics2.lib.DefaultMetricsSystem; import org.apache.hadoop.metrics2.lib.MutableGaugeFloat; +import org.apache.hadoop.metrics2.lib.MutableGaugeInt; import org.apache.hadoop.metrics2.lib.MutableGaugeLong; import org.apache.hadoop.yarn.api.records.Resource; import org.apache.hadoop.yarn.server.resourcemanager.nodelabels.RMNodeLabelsManager; @@ -46,6 +47,14 @@ public class CSQueueMetrics extends QueueMetrics { MutableGaugeFloat usedCapacity; @Metric("Percent of Absolute Capacity Used") MutableGaugeFloat absoluteUsedCapacity; + @Metric("Guaranteed memory in MB") + MutableGaugeLong guaranteedMB; + @Metric("Guaranteed CPU in virtual cores") + MutableGaugeInt guaranteedVCores; + @Metric("Maximum memory in MB") + MutableGaugeLong maxCapacityMB; + @Metric("Maximum CPU in virtual cores") + MutableGaugeInt maxCapacityVCores; CSQueueMetrics(MetricsSystem ms, String queueName, Queue parent, boolean enableUserMetrics, Configuration conf) { @@ -126,6 +135,36 @@ public class CSQueueMetrics extends QueueMetrics { } } + public long getGuaranteedMB() { +return guaranteedMB.value(); + } + + public int getGuaranteedVCores() { +return guaranteedVCores.value(); + } + + public void setGuaranteedResources(String partition, Resource res) { +if (partition == null || partition.equals(RMNodeLabelsManager.NO_LABEL)) { + guaranteedMB.set(res.getMemorySize()); + guaranteedVCores.set(res.getVirtualCores()); +} + } + + public long getMaxCapacityMB() { +return maxCapacityMB.value(); + } + + public int getMaxCapacityVCores() { +return maxCapacityVCores.value(); + } + + public void setMaxCapacityResources(String partition, Resource res) { +if (partition == null || partition.equals(RMNodeLabelsManager.NO_LABEL)) { + maxCapacityMB.set(res.getMemorySize()); + maxCapacityVCores.set(res.getVirtualCores()); +} + } + public synchronized static CSQueueMetrics forQueue(String queueName, Queue parent, boolean enableUserMetrics, Configuration conf) { MetricsSystem ms = DefaultMetricsSystem.instance(); http://git-wip-us.apache.org/repos/asf/hadoop/blob/3ab6ea7a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CSQueueUtils.java -- diff --git