|
@@ -27,50 +27,331 @@ public class YarnConfiguration extends Configuration {
|
|
private static final Splitter ADDR_SPLITTER = Splitter.on(':').trimResults();
|
|
private static final Splitter ADDR_SPLITTER = Splitter.on(':').trimResults();
|
|
private static final Joiner JOINER = Joiner.on("");
|
|
private static final Joiner JOINER = Joiner.on("");
|
|
|
|
|
|
- public static final String RM_PREFIX = "yarn.server.resourcemanager.";
|
|
|
|
-
|
|
|
|
- public static final String SCHEDULER_ADDRESS = RM_PREFIX
|
|
|
|
- + "scheduler.address";
|
|
|
|
-
|
|
|
|
- public static final String AM_EXPIRY_INTERVAL = RM_PREFIX
|
|
|
|
- + "application.expiry.interval";
|
|
|
|
-
|
|
|
|
- public static final String DEFAULT_SCHEDULER_BIND_ADDRESS = "0.0.0.0:8030";
|
|
|
|
-
|
|
|
|
- public static final String APPSMANAGER_ADDRESS = RM_PREFIX
|
|
|
|
- + "appsManager.address";
|
|
|
|
-
|
|
|
|
- public static final String YARN_SECURITY_INFO =
|
|
|
|
- "yarn.security.info.class.name";
|
|
|
|
-
|
|
|
|
- public static final String DEFAULT_APPSMANAGER_BIND_ADDRESS =
|
|
|
|
- "0.0.0.0:8040";
|
|
|
|
-
|
|
|
|
private static final String YARN_DEFAULT_XML_FILE = "yarn-default.xml";
|
|
private static final String YARN_DEFAULT_XML_FILE = "yarn-default.xml";
|
|
private static final String YARN_SITE_XML_FILE = "yarn-site.xml";
|
|
private static final String YARN_SITE_XML_FILE = "yarn-site.xml";
|
|
|
|
|
|
- public static final String APPLICATION_MANAGER_PRINCIPAL =
|
|
|
|
- "yarn.jobmanager.user-name";
|
|
|
|
-
|
|
|
|
- public static final String RM_WEBAPP_BIND_ADDRESS = RM_PREFIX
|
|
|
|
- + "webapp.address";
|
|
|
|
-
|
|
|
|
- public static final String DEFAULT_RM_WEBAPP_BIND_ADDRESS = "0.0.0.0:8088";
|
|
|
|
-
|
|
|
|
static {
|
|
static {
|
|
Configuration.addDefaultResource(YARN_DEFAULT_XML_FILE);
|
|
Configuration.addDefaultResource(YARN_DEFAULT_XML_FILE);
|
|
Configuration.addDefaultResource(YARN_SITE_XML_FILE);
|
|
Configuration.addDefaultResource(YARN_SITE_XML_FILE);
|
|
}
|
|
}
|
|
|
|
|
|
- public static final String RM_SERVER_PRINCIPAL_KEY =
|
|
|
|
- "yarn.resourcemanager.principal";
|
|
|
|
-
|
|
|
|
|
|
+ //Configurations
|
|
|
|
+
|
|
|
|
+ /** ACL of who can view this application.*/
|
|
public static final String APPLICATION_ACL_VIEW_APP =
|
|
public static final String APPLICATION_ACL_VIEW_APP =
|
|
- "application.acl-view-job";
|
|
|
|
-
|
|
|
|
|
|
+ "yarn.app.acl.view-job";
|
|
|
|
+
|
|
|
|
+ /** ACL of who can modify this application.*/
|
|
public static final String APPLICATION_ACL_MODIFY_APP =
|
|
public static final String APPLICATION_ACL_MODIFY_APP =
|
|
- "application.acl-modify-job";
|
|
|
|
|
|
+ "yarn.app.acl.modify-job";
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * Security info class This is an internal config set and
|
|
|
|
+ * read by YARN itself.
|
|
|
|
+ */
|
|
|
|
+ public static final String YARN_SECURITY_INFO =
|
|
|
|
+ "yarn.security.info.class";
|
|
|
|
+
|
|
|
|
+ /** Delay before deleting resource to ease debugging of NM issues */
|
|
|
|
+ public static final String DEBUG_NM_DELETE_DELAY_SEC =
|
|
|
|
+ YarnConfiguration.NM_PREFIX + "delete.debug-delay-sec";
|
|
|
|
+
|
|
|
|
+ ////////////////////////////////
|
|
|
|
+ // IPC Configs
|
|
|
|
+ ////////////////////////////////
|
|
|
|
+ public static final String IPC_PREFIX = "yarn.ipc.";
|
|
|
|
|
|
|
|
+ /** Factory to create client IPC classes.*/
|
|
|
|
+ public static final String IPC_CLIENT_FACTORY =
|
|
|
|
+ IPC_PREFIX + "client.factory.class";
|
|
|
|
+
|
|
|
|
+ /** Type of serialization to use.*/
|
|
|
|
+ public static final String IPC_SERIALIZER_TYPE =
|
|
|
|
+ IPC_PREFIX + "serializer.type";
|
|
|
|
+ public static final String DEFAULT_IPC_SERIALIZER_TYPE = "protocolbuffers";
|
|
|
|
+
|
|
|
|
+ /** Factory to create server IPC classes.*/
|
|
|
|
+ public static final String IPC_SERVER_FACTORY =
|
|
|
|
+ IPC_PREFIX + "server.factory.class";
|
|
|
|
+
|
|
|
|
+ /** Factory to create IPC exceptions.*/
|
|
|
|
+ public static final String IPC_EXCEPTION_FACTORY =
|
|
|
|
+ IPC_PREFIX + "exception.factory.class";
|
|
|
|
+
|
|
|
|
+ /** Factory to create serializeable records.*/
|
|
|
|
+ public static final String IPC_RECORD_FACTORY =
|
|
|
|
+ IPC_PREFIX + "record.factory.class";
|
|
|
|
+
|
|
|
|
+ /** RPC class implementation*/
|
|
|
|
+ public static final String IPC_RPC_IMPL =
|
|
|
|
+ IPC_PREFIX + "rpc.class";
|
|
|
|
+ public static final String DEFAULT_IPC_RPC_IMPL =
|
|
|
|
+ "org.apache.hadoop.yarn.ipc.HadoopYarnProtoRPC";
|
|
|
|
+
|
|
|
|
+ ////////////////////////////////
|
|
|
|
+ // Resource Manager Configs
|
|
|
|
+ ////////////////////////////////
|
|
|
|
+ public static final String RM_PREFIX = "yarn.resourcemanager.";
|
|
|
|
+
|
|
|
|
+ /** The address of the applications manager interface in the RM.*/
|
|
|
|
+ public static final String RM_ADDRESS =
|
|
|
|
+ RM_PREFIX + "address";
|
|
|
|
+ public static final String DEFAULT_RM_ADDRESS =
|
|
|
|
+ "0.0.0.0:8040";
|
|
|
|
+
|
|
|
|
+ /** The number of threads used to handle applications manager requests.*/
|
|
|
|
+ public static final String RM_CLIENT_THREAD_COUNT =
|
|
|
|
+ RM_PREFIX + "client.thread-count";
|
|
|
|
+ public static final int DEFAULT_RM_CLIENT_THREAD_COUNT = 10;
|
|
|
|
+
|
|
|
|
+ /** The expiry interval for application master reporting.*/
|
|
|
|
+ public static final String RM_AM_EXPIRY_INTERVAL_MS =
|
|
|
|
+ RM_PREFIX + "am.liveness-monitor.expiry-interval-ms";
|
|
|
|
+ public static final int DEFAULT_RM_AM_EXPIRY_INTERVAL_MS = 600000;
|
|
|
|
+
|
|
|
|
+ /** The Kerberos principal for the resource manager.*/
|
|
|
|
+ public static final String RM_PRINCIPAL =
|
|
|
|
+ RM_PREFIX + "principal";
|
|
|
|
+
|
|
|
|
+ /** The address of the scheduler interface.*/
|
|
|
|
+ public static final String RM_SCHEDULER_ADDRESS =
|
|
|
|
+ RM_PREFIX + "scheduler.address";
|
|
|
|
+ public static final String DEFAULT_RM_SCHEDULER_ADDRESS = "0.0.0.0:8030";
|
|
|
|
+
|
|
|
|
+ /** Number of threads to handle scheduler interface.*/
|
|
|
|
+ public static final String RM_SCHEDULER_CLIENT_THREAD_COUNT =
|
|
|
|
+ RM_PREFIX + "scheduler.client.thread-count";
|
|
|
|
+ public static final int DEFAULT_RM_SCHEDULER_CLIENT_THREAD_COUNT = 10;
|
|
|
|
+
|
|
|
|
+ /** The address of the RM web application.*/
|
|
|
|
+ public static final String RM_WEBAPP_ADDRESS =
|
|
|
|
+ RM_PREFIX + "webapp.address";
|
|
|
|
+ public static final String DEFAULT_RM_WEBAPP_ADDRESS = "0.0.0.0:8088";
|
|
|
|
+
|
|
|
|
+ public static final String RM_RESOURCE_TRACKER_ADDRESS =
|
|
|
|
+ RM_PREFIX + "resource-tracker.address";
|
|
|
|
+ public static final String DEFAULT_RM_RESOURCE_TRACKER_ADDRESS =
|
|
|
|
+ "0.0.0.0:8025";
|
|
|
|
+
|
|
|
|
+ /** Are RM acls enabled.*/
|
|
|
|
+ public static final String RM_ACL_ENABLE =
|
|
|
|
+ RM_PREFIX + "acl.enable";
|
|
|
|
+ public static final boolean DEFAULT_RM_ACL_ENABLE = false;
|
|
|
|
+
|
|
|
|
+ /** ACL of who can be admin of RM.*/
|
|
|
|
+ public static final String RM_ADMIN_ACL =
|
|
|
|
+ RM_PREFIX + "admin.acl";
|
|
|
|
+ public static final String DEFAULT_RM_ADMIN_ACL = "*";
|
|
|
|
+
|
|
|
|
+ /** The address of the RM admin interface.*/
|
|
|
|
+ public static final String RM_ADMIN_ADDRESS =
|
|
|
|
+ RM_PREFIX + "admin.address";
|
|
|
|
+ public static final String DEFAULT_RM_ADMIN_ADDRESS = "0.0.0.0:8141";
|
|
|
|
+
|
|
|
|
+ /**Number of threads used to handle RM admin interface.*/
|
|
|
|
+ public static final String RM_ADMIN_CLIENT_THREAD_COUNT =
|
|
|
|
+ RM_PREFIX + "admin.client.thread-count";
|
|
|
|
+ public static final int DEFAULT_RM_ADMIN_CLIENT_THREAD_COUNT = 1;
|
|
|
|
+
|
|
|
|
+ /** How often should the RM check that the AM is still alive.*/
|
|
|
|
+ public static final String RM_AM_LIVENESS_MONITOR_INTERVAL_MS =
|
|
|
|
+ RM_PREFIX + "amliveliness-monitor.interval-ms";
|
|
|
|
+ public static final int DEFAULT_RM_AM_LIVENESS_MONITOR_INTERVAL_MS = 1000;
|
|
|
|
+
|
|
|
|
+ /** The maximum number of application master retries.*/
|
|
|
|
+ public static final String RM_AM_MAX_RETRIES =
|
|
|
|
+ RM_PREFIX + "am.max-retries";
|
|
|
|
+ public static final int DEFAULT_RM_AM_MAX_RETRIES = 1;
|
|
|
|
+
|
|
|
|
+ /** How often to check that containers are still alive. */
|
|
|
|
+ public static final String RM_CONTAINER_LIVENESS_MONITOR_INTERVAL_MS =
|
|
|
|
+ RM_PREFIX + "container.liveness-monitor.interval-ms";
|
|
|
|
+ public static final int DEFAULT_RM_CONTAINER_LIVENESS_MONITOR_INTERVAL_MS =
|
|
|
|
+ 600000;
|
|
|
|
+
|
|
|
|
+ /** The keytab for the resource manager.*/
|
|
|
|
+ public static final String RM_KEYTAB =
|
|
|
|
+ RM_PREFIX + "keytab";
|
|
|
|
+
|
|
|
|
+ /** How long to wait until a node manager is considered dead.*/
|
|
|
|
+ public static final String RM_NM_EXPIRY_INTERVAL_MS =
|
|
|
|
+ RM_PREFIX + "nm.liveness-monitor.expiry-interval-ms";
|
|
|
|
+ public static final int DEFAULT_RM_NM_EXPIRY_INTERVAL_MS = 600000;
|
|
|
|
+
|
|
|
|
+ /** How often to check that node managers are still alive.*/
|
|
|
|
+ public static final String RM_NM_LIVENESS_MONITOR_INTERVAL_MS =
|
|
|
|
+ RM_PREFIX + "nm.liveness-monitor.interval-ms";
|
|
|
|
+ public static final int DEFAULT_RM_NM_LIVENESS_MONITOR_INTERVAL_MS = 1000;
|
|
|
|
+
|
|
|
|
+ /** Path to file with nodes to include.*/
|
|
|
|
+ public static final String RM_NODES_INCLUDE_FILE_PATH =
|
|
|
|
+ RM_PREFIX + "nodes.include-path";
|
|
|
|
+ public static final String DEFAULT_RM_NODES_INCLUDE_FILE_PATH = "";
|
|
|
|
+
|
|
|
|
+ /** Path to file with nodes to exclude.*/
|
|
|
|
+ public static final String RM_NODES_EXCLUDE_FILE_PATH =
|
|
|
|
+ RM_PREFIX + "nodes.exclude-path";
|
|
|
|
+ public static final String DEFAULT_RM_NODES_EXCLUDE_FILE_PATH = "";
|
|
|
|
+
|
|
|
|
+ /** Number of threads to handle resource tracker calls.*/
|
|
|
|
+ public static final String RM_RESOURCE_TRACKER_CLIENT_THREAD_COUNT =
|
|
|
|
+ RM_PREFIX + "resource-tracker.client.thread-count";
|
|
|
|
+ public static final int DEFAULT_RM_RESOURCE_TRACKER_CLIENT_THREAD_COUNT = 10;
|
|
|
|
+
|
|
|
|
+ /** The class to use as the resource scheduler.*/
|
|
|
|
+ public static final String RM_SCHEDULER =
|
|
|
|
+ RM_PREFIX + "scheduler.class";
|
|
|
|
+
|
|
|
|
+ /** The class to use as the persistent store.*/
|
|
|
|
+ public static final String RM_STORE = RM_PREFIX + "store.class";
|
|
|
|
+
|
|
|
|
+ /** The address of the zookeeper instance to use with ZK store.*/
|
|
|
|
+ public static final String RM_ZK_STORE_ADDRESS =
|
|
|
|
+ RM_PREFIX + "zookeeper-store.address";
|
|
|
|
+
|
|
|
|
+ /** The zookeeper session timeout for the zookeeper store.*/
|
|
|
|
+ public static final String RM_ZK_STORE_TIMEOUT_MS =
|
|
|
|
+ RM_PREFIX + "zookeeper-store.session.timeout-ms";
|
|
|
|
+ public static final int DEFAULT_RM_ZK_STORE_TIMEOUT_MS = 60000;
|
|
|
|
+
|
|
|
|
+ /** The maximum number of completed applications RM keeps. */
|
|
|
|
+ public static final String RM_MAX_COMPLETED_APPLICATIONS =
|
|
|
|
+ RM_PREFIX + "max-completed-applications";
|
|
|
|
+ public static final int DEFAULT_RM_MAX_COMPLETED_APPLICATIONS = 10000;
|
|
|
|
+
|
|
|
|
+ ////////////////////////////////
|
|
|
|
+ // Node Manager Configs
|
|
|
|
+ ////////////////////////////////
|
|
|
|
+
|
|
|
|
+ /** Prefix for all node manager configs.*/
|
|
|
|
+ public static final String NM_PREFIX = "yarn.nodemanager.";
|
|
|
|
+
|
|
|
|
+ /** address of node manager IPC.*/
|
|
|
|
+ public static final String NM_ADDRESS = NM_PREFIX + "address";
|
|
|
|
+ public static final String DEFAULT_NM_ADDRESS = "0.0.0.0:45454";
|
|
|
|
+
|
|
|
|
+ /** who will execute(launch) the containers.*/
|
|
|
|
+ public static final String NM_CONTAINER_EXECUTOR =
|
|
|
|
+ NM_PREFIX + "container-executor.class";
|
|
|
|
+
|
|
|
|
+ /** Number of threads container manager uses.*/
|
|
|
|
+ public static final String NM_CONTAINER_MGR_THREAD_COUNT =
|
|
|
|
+ NM_PREFIX + "container-manager.thread-count";
|
|
|
|
+ public static final int DEFAULT_NM_CONTAINER_MGR_THREAD_COUNT = 5;
|
|
|
|
+
|
|
|
|
+ /** Number of threads used in cleanup.*/
|
|
|
|
+ public static final String NM_DELETE_THREAD_COUNT =
|
|
|
|
+ NM_PREFIX + "delete.thread-count";
|
|
|
|
+ public static final int DEFAULT_NM_DELETE_THREAD_COUNT = 4;
|
|
|
|
+
|
|
|
|
+ // TODO: Should this instead be dictated by RM?
|
|
|
|
+ /** Heartbeat interval to RM*/
|
|
|
|
+ public static final String NM_TO_RM_HEARTBEAT_INTERVAL_MS =
|
|
|
|
+ NM_PREFIX + "heartbeat.interval-ms";
|
|
|
|
+ public static final int DEFAULT_NM_TO_RM_HEARTBEAT_INTERVAL_MS = 1000;
|
|
|
|
+
|
|
|
|
+ /** Keytab for NM.*/
|
|
|
|
+ public static final String NM_KEYTAB = NM_PREFIX + "keytab";
|
|
|
|
+
|
|
|
|
+ /**List of directories to store localized files in.*/
|
|
|
|
+ public static final String NM_LOCAL_DIRS = NM_PREFIX + "local-dirs";
|
|
|
|
+ public static final String DEFAULT_NM_LOCAL_DIRS = "/tmp/nm-local-dir";
|
|
|
|
+
|
|
|
|
+ /** Address where the localizer IPC is.*/
|
|
|
|
+ public static final String NM_LOCALIZER_ADDRESS =
|
|
|
|
+ NM_PREFIX + "localizer.address";
|
|
|
|
+ public static final String DEFAULT_NM_LOCALIZER_ADDRESS = "0.0.0.0:4344";
|
|
|
|
+
|
|
|
|
+ /** Interval in between cache cleanups.*/
|
|
|
|
+ public static final String NM_LOCALIZER_CACHE_CLEANUP_INTERVAL_MS =
|
|
|
|
+ NM_PREFIX + "localizer.cache.cleanup.interval-ms";
|
|
|
|
+ public static final long DEFAULT_NM_LOCALIZER_CACHE_CLEANUP_INTERVAL_MS =
|
|
|
|
+ 10 * 60 * 1000;
|
|
|
|
+
|
|
|
|
+ /** Target size of localizer cache in MB, per local directory.*/
|
|
|
|
+ public static final String NM_LOCALIZER_CACHE_TARGET_SIZE_MB =
|
|
|
|
+ NM_PREFIX + "localizer.cache.target-size-mb";
|
|
|
|
+ public static final long DEFAULT_NM_LOCALIZER_CACHE_TARGET_SIZE_MB = 10 * 1024;
|
|
|
|
+
|
|
|
|
+ /** Number of threads to handle localization requests.*/
|
|
|
|
+ public static final String NM_LOCALIZER_CLIENT_THREAD_COUNT =
|
|
|
|
+ NM_PREFIX + "localizer.client.thread-count";
|
|
|
|
+ public static final int DEFAULT_NM_LOCALIZER_CLIENT_THREAD_COUNT = 5;
|
|
|
|
+
|
|
|
|
+ /** Number of threads to use for localization fetching.*/
|
|
|
|
+ public static final String NM_LOCALIZER_FETCH_THREAD_COUNT =
|
|
|
|
+ NM_PREFIX + "localizer.fetch.thread-count";
|
|
|
|
+ public static final int DEFAULT_NM_LOCALIZER_FETCH_THREAD_COUNT = 4;
|
|
|
|
+
|
|
|
|
+ /** Where to store container logs.*/
|
|
|
|
+ public static final String NM_LOG_DIRS = NM_PREFIX + "log-dirs";
|
|
|
|
+ public static final String DEFAULT_NM_LOG_DIRS = "/tmp/logs";
|
|
|
|
+
|
|
|
|
+ /** Where to aggregate logs to.*/
|
|
|
|
+ public static final String NM_REMOTE_APP_LOG_DIR =
|
|
|
|
+ NM_PREFIX + "remote-app-log-dir";
|
|
|
|
+ public static final String DEFAULT_NM_REMOTE_APP_LOG_DIR = "/tmp/logs";
|
|
|
|
+
|
|
|
|
+ /** Amount of memory in GB that can be allocated for containers.*/
|
|
|
|
+ public static final String NM_VMEM_GB = NM_PREFIX + "resource.memory-gb";
|
|
|
|
+ public static final int DEFAULT_NM_VMEM_GB = 8;
|
|
|
|
+
|
|
|
|
+ /** NM Webapp address.**/
|
|
|
|
+ public static final String NM_WEBAPP_ADDRESS = NM_PREFIX + "webapp.address";
|
|
|
|
+ public static final String DEFAULT_NM_WEBAPP_ADDRESS = "0.0.0.0:9999";
|
|
|
|
+
|
|
|
|
+ /** How often to monitor containers.*/
|
|
|
|
+ public final static String NM_CONTAINER_MON_INTERVAL_MS =
|
|
|
|
+ NM_PREFIX + "container-monitor.interval-ms";
|
|
|
|
+ public final static int DEFAULT_NM_CONTAINER_MON_INTERVAL_MS = 3000;
|
|
|
|
+
|
|
|
|
+ /** Class that calculates containers current resource utilization.*/
|
|
|
|
+ public static final String NM_CONTAINER_MON_RESOURCE_CALCULATOR =
|
|
|
|
+ NM_PREFIX + "container-monitor.resource-calculator.class";
|
|
|
|
+
|
|
|
|
+ /** Amount of physical ram to reserve for other applications, -1 disables.*/
|
|
|
|
+ public static final String NM_RESERVED_MEMORY_MB =
|
|
|
|
+ NM_PREFIX + "reserved.memory-mb";
|
|
|
|
+
|
|
|
|
+ /** Frequency of running node health script.*/
|
|
|
|
+ public static final String NM_HEALTH_CHECK_INTERVAL_MS =
|
|
|
|
+ NM_PREFIX + "health-checker.interval-ms";
|
|
|
|
+ public static final long DEFAULT_NM_HEALTH_CHECK_INTERVAL_MS = 10 * 60 * 1000;
|
|
|
|
+
|
|
|
|
+ /** Script time out period.*/
|
|
|
|
+ public static final String NM_HEALTH_CHECK_SCRIPT_TIMEOUT_MS =
|
|
|
|
+ NM_PREFIX + "health-checker.script.timeout-ms";
|
|
|
|
+ public static final long DEFAULT_NM_HEALTH_CHECK_SCRIPT_TIMEOUT_MS =
|
|
|
|
+ 2 * DEFAULT_NM_HEALTH_CHECK_INTERVAL_MS;
|
|
|
|
+
|
|
|
|
+ /** The health check script to run.*/
|
|
|
|
+ public static final String NM_HEALTH_CHECK_SCRIPT_PATH =
|
|
|
|
+ NM_PREFIX + "health-checker.script.path";
|
|
|
|
+
|
|
|
|
+ /** The arguments to pass to the health check script.*/
|
|
|
|
+ public static final String NM_HEALTH_CHECK_SCRIPT_OPTS =
|
|
|
|
+ NM_PREFIX + "health-checker.script.opts";
|
|
|
|
+
|
|
|
|
+ /** The path to the Linux container executor.*/
|
|
|
|
+ public static final String NM_LINUX_CONTAINER_EXECUTOR_PATH =
|
|
|
|
+ NM_PREFIX + "linux-container-executor.path";
|
|
|
|
+
|
|
|
|
+ /** T-file compression types used to compress aggregated logs.*/
|
|
|
|
+ public static final String NM_LOG_AGG_COMPRESSION_TYPE =
|
|
|
|
+ NM_PREFIX + "log-aggregation.compression-type";
|
|
|
|
+ public static final String DEFAULT_NM_LOG_AGG_COMPRESSION_TYPE = "none";
|
|
|
|
+
|
|
|
|
+ /** The kerberos principal for the node manager.*/
|
|
|
|
+ public static final String NM_PRINCIPAL =
|
|
|
|
+ NM_PREFIX + "principal";
|
|
|
|
+
|
|
|
|
+ public static final String NM_AUX_SERVICES =
|
|
|
|
+ NM_PREFIX + "aux-services";
|
|
|
|
+
|
|
|
|
+ public static final String NM_AUX_SERVICE_FMT =
|
|
|
|
+ NM_PREFIX + "aux-services.%s.class";
|
|
|
|
+
|
|
|
|
+
|
|
public YarnConfiguration() {
|
|
public YarnConfiguration() {
|
|
super();
|
|
super();
|
|
}
|
|
}
|
|
@@ -83,13 +364,13 @@ public class YarnConfiguration extends Configuration {
|
|
}
|
|
}
|
|
|
|
|
|
public static String getRMWebAppURL(Configuration conf) {
|
|
public static String getRMWebAppURL(Configuration conf) {
|
|
- String addr = conf.get(RM_WEBAPP_BIND_ADDRESS,
|
|
|
|
- DEFAULT_RM_WEBAPP_BIND_ADDRESS);
|
|
|
|
|
|
+ String addr = conf.get(YarnConfiguration.RM_WEBAPP_ADDRESS,
|
|
|
|
+ YarnConfiguration.DEFAULT_RM_WEBAPP_ADDRESS);
|
|
Iterator<String> it = ADDR_SPLITTER.split(addr).iterator();
|
|
Iterator<String> it = ADDR_SPLITTER.split(addr).iterator();
|
|
it.next(); // ignore the bind host
|
|
it.next(); // ignore the bind host
|
|
String port = it.next();
|
|
String port = it.next();
|
|
// Use apps manager address to figure out the host for webapp
|
|
// Use apps manager address to figure out the host for webapp
|
|
- addr = conf.get(APPSMANAGER_ADDRESS, DEFAULT_APPSMANAGER_BIND_ADDRESS);
|
|
|
|
|
|
+ addr = conf.get(YarnConfiguration.RM_ADDRESS, YarnConfiguration.DEFAULT_RM_ADDRESS);
|
|
String host = ADDR_SPLITTER.split(addr).iterator().next();
|
|
String host = ADDR_SPLITTER.split(addr).iterator().next();
|
|
return JOINER.join("http://", host, ":", port, "/");
|
|
return JOINER.join("http://", host, ":", port, "/");
|
|
}
|
|
}
|