Java Code Examples for org.apache.hadoop.yarn.conf.YarnConfiguration#RM_NM_EXPIRY_INTERVAL_MS

The following examples show how to use org.apache.hadoop.yarn.conf.YarnConfiguration#RM_NM_EXPIRY_INTERVAL_MS . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: ResourceManager.java    From hadoop with Apache License 2.0 6 votes vote down vote up
protected static void validateConfigs(Configuration conf) {
  // validate max-attempts
  int globalMaxAppAttempts =
      conf.getInt(YarnConfiguration.RM_AM_MAX_ATTEMPTS,
      YarnConfiguration.DEFAULT_RM_AM_MAX_ATTEMPTS);
  if (globalMaxAppAttempts <= 0) {
    throw new YarnRuntimeException("Invalid global max attempts configuration"
        + ", " + YarnConfiguration.RM_AM_MAX_ATTEMPTS
        + "=" + globalMaxAppAttempts + ", it should be a positive integer.");
  }

  // validate expireIntvl >= heartbeatIntvl
  long expireIntvl = conf.getLong(YarnConfiguration.RM_NM_EXPIRY_INTERVAL_MS,
      YarnConfiguration.DEFAULT_RM_NM_EXPIRY_INTERVAL_MS);
  long heartbeatIntvl =
      conf.getLong(YarnConfiguration.RM_NM_HEARTBEAT_INTERVAL_MS,
          YarnConfiguration.DEFAULT_RM_NM_HEARTBEAT_INTERVAL_MS);
  if (expireIntvl < heartbeatIntvl) {
    throw new YarnRuntimeException("Nodemanager expiry interval should be no"
        + " less than heartbeat interval, "
        + YarnConfiguration.RM_NM_EXPIRY_INTERVAL_MS + "=" + expireIntvl
        + ", " + YarnConfiguration.RM_NM_HEARTBEAT_INTERVAL_MS + "="
        + heartbeatIntvl);
  }
}
 
Example 2
Source File: ResourceManager.java    From big-c with Apache License 2.0 6 votes vote down vote up
protected static void validateConfigs(Configuration conf) {
  // validate max-attempts
  int globalMaxAppAttempts =
      conf.getInt(YarnConfiguration.RM_AM_MAX_ATTEMPTS,
      YarnConfiguration.DEFAULT_RM_AM_MAX_ATTEMPTS);
  if (globalMaxAppAttempts <= 0) {
    throw new YarnRuntimeException("Invalid global max attempts configuration"
        + ", " + YarnConfiguration.RM_AM_MAX_ATTEMPTS
        + "=" + globalMaxAppAttempts + ", it should be a positive integer.");
  }

  // validate expireIntvl >= heartbeatIntvl
  long expireIntvl = conf.getLong(YarnConfiguration.RM_NM_EXPIRY_INTERVAL_MS,
      YarnConfiguration.DEFAULT_RM_NM_EXPIRY_INTERVAL_MS);
  long heartbeatIntvl =
      conf.getLong(YarnConfiguration.RM_NM_HEARTBEAT_INTERVAL_MS,
          YarnConfiguration.DEFAULT_RM_NM_HEARTBEAT_INTERVAL_MS);
  if (expireIntvl < heartbeatIntvl) {
    throw new YarnRuntimeException("Nodemanager expiry interval should be no"
        + " less than heartbeat interval, "
        + YarnConfiguration.RM_NM_EXPIRY_INTERVAL_MS + "=" + expireIntvl
        + ", " + YarnConfiguration.RM_NM_HEARTBEAT_INTERVAL_MS + "="
        + heartbeatIntvl);
  }
}
 
Example 3
Source File: NMTokenSecretManagerInRM.java    From hadoop with Apache License 2.0 5 votes vote down vote up
public NMTokenSecretManagerInRM(Configuration conf) {
  this.conf = conf;
  timer = new Timer();
  rollingInterval = this.conf.getLong(
      YarnConfiguration.RM_NMTOKEN_MASTER_KEY_ROLLING_INTERVAL_SECS,
      YarnConfiguration.DEFAULT_RM_NMTOKEN_MASTER_KEY_ROLLING_INTERVAL_SECS)
      * 1000;
  // Add an activation delay. This is to address the following race: RM may
  // roll over master-key, scheduling may happen at some point of time, an
  // NMToken created with a password generated off new master key, but NM
  // might not have come again to RM to update the shared secret: so AM has a
  // valid password generated off new secret but NM doesn't know about the
  // secret yet.
  // Adding delay = 1.5 * expiry interval makes sure that all active NMs get
  // the updated shared-key.
  this.activationDelay =
      (long) (conf.getLong(YarnConfiguration.RM_NM_EXPIRY_INTERVAL_MS,
          YarnConfiguration.DEFAULT_RM_NM_EXPIRY_INTERVAL_MS) * 1.5);
  LOG.info("NMTokenKeyRollingInterval: " + this.rollingInterval
      + "ms and NMTokenKeyActivationDelay: " + this.activationDelay
      + "ms");
  if (rollingInterval <= activationDelay * 2) {
    throw new IllegalArgumentException(
        YarnConfiguration.RM_NMTOKEN_MASTER_KEY_ROLLING_INTERVAL_SECS
            + " should be more than 3 X "
            + YarnConfiguration.RM_NM_EXPIRY_INTERVAL_MS);
  }
  appAttemptToNodeKeyMap =
      new ConcurrentHashMap<ApplicationAttemptId, HashSet<NodeId>>();
}
 
Example 4
Source File: RMContainerTokenSecretManager.java    From hadoop with Apache License 2.0 5 votes vote down vote up
public RMContainerTokenSecretManager(Configuration conf) {
  super(conf);

  this.timer = new Timer();
  this.rollingInterval = conf.getLong(
          YarnConfiguration.RM_CONTAINER_TOKEN_MASTER_KEY_ROLLING_INTERVAL_SECS,
          YarnConfiguration.DEFAULT_RM_CONTAINER_TOKEN_MASTER_KEY_ROLLING_INTERVAL_SECS) * 1000;
  // Add an activation delay. This is to address the following race: RM may
  // roll over master-key, scheduling may happen at some point of time, a
  // container created with a password generated off new master key, but NM
  // might not have come again to RM to update the shared secret: so AM has a
  // valid password generated off new secret but NM doesn't know about the
  // secret yet.
  // Adding delay = 1.5 * expiry interval makes sure that all active NMs get
  // the updated shared-key.
  this.activationDelay =
      (long) (conf.getLong(YarnConfiguration.RM_NM_EXPIRY_INTERVAL_MS,
          YarnConfiguration.DEFAULT_RM_NM_EXPIRY_INTERVAL_MS) * 1.5);
  LOG.info("ContainerTokenKeyRollingInterval: " + this.rollingInterval
      + "ms and ContainerTokenKeyActivationDelay: " + this.activationDelay
      + "ms");
  if (rollingInterval <= activationDelay * 2) {
    throw new IllegalArgumentException(
        YarnConfiguration.RM_CONTAINER_TOKEN_MASTER_KEY_ROLLING_INTERVAL_SECS
            + " should be more than 3 X "
            + YarnConfiguration.RM_NM_EXPIRY_INTERVAL_MS);
  }
}
 
Example 5
Source File: NMTokenSecretManagerInRM.java    From big-c with Apache License 2.0 5 votes vote down vote up
public NMTokenSecretManagerInRM(Configuration conf) {
  this.conf = conf;
  timer = new Timer();
  rollingInterval = this.conf.getLong(
      YarnConfiguration.RM_NMTOKEN_MASTER_KEY_ROLLING_INTERVAL_SECS,
      YarnConfiguration.DEFAULT_RM_NMTOKEN_MASTER_KEY_ROLLING_INTERVAL_SECS)
      * 1000;
  // Add an activation delay. This is to address the following race: RM may
  // roll over master-key, scheduling may happen at some point of time, an
  // NMToken created with a password generated off new master key, but NM
  // might not have come again to RM to update the shared secret: so AM has a
  // valid password generated off new secret but NM doesn't know about the
  // secret yet.
  // Adding delay = 1.5 * expiry interval makes sure that all active NMs get
  // the updated shared-key.
  this.activationDelay =
      (long) (conf.getLong(YarnConfiguration.RM_NM_EXPIRY_INTERVAL_MS,
          YarnConfiguration.DEFAULT_RM_NM_EXPIRY_INTERVAL_MS) * 1.5);
  LOG.info("NMTokenKeyRollingInterval: " + this.rollingInterval
      + "ms and NMTokenKeyActivationDelay: " + this.activationDelay
      + "ms");
  if (rollingInterval <= activationDelay * 2) {
    throw new IllegalArgumentException(
        YarnConfiguration.RM_NMTOKEN_MASTER_KEY_ROLLING_INTERVAL_SECS
            + " should be more than 3 X "
            + YarnConfiguration.RM_NM_EXPIRY_INTERVAL_MS);
  }
  appAttemptToNodeKeyMap =
      new ConcurrentHashMap<ApplicationAttemptId, HashSet<NodeId>>();
}
 
Example 6
Source File: RMContainerTokenSecretManager.java    From big-c with Apache License 2.0 5 votes vote down vote up
public RMContainerTokenSecretManager(Configuration conf) {
  super(conf);

  this.timer = new Timer();
  this.rollingInterval = conf.getLong(
          YarnConfiguration.RM_CONTAINER_TOKEN_MASTER_KEY_ROLLING_INTERVAL_SECS,
          YarnConfiguration.DEFAULT_RM_CONTAINER_TOKEN_MASTER_KEY_ROLLING_INTERVAL_SECS) * 1000;
  // Add an activation delay. This is to address the following race: RM may
  // roll over master-key, scheduling may happen at some point of time, a
  // container created with a password generated off new master key, but NM
  // might not have come again to RM to update the shared secret: so AM has a
  // valid password generated off new secret but NM doesn't know about the
  // secret yet.
  // Adding delay = 1.5 * expiry interval makes sure that all active NMs get
  // the updated shared-key.
  this.activationDelay =
      (long) (conf.getLong(YarnConfiguration.RM_NM_EXPIRY_INTERVAL_MS,
          YarnConfiguration.DEFAULT_RM_NM_EXPIRY_INTERVAL_MS) * 1.5);
  LOG.info("ContainerTokenKeyRollingInterval: " + this.rollingInterval
      + "ms and ContainerTokenKeyActivationDelay: " + this.activationDelay
      + "ms");
  if (rollingInterval <= activationDelay * 2) {
    throw new IllegalArgumentException(
        YarnConfiguration.RM_CONTAINER_TOKEN_MASTER_KEY_ROLLING_INTERVAL_SECS
            + " should be more than 3 X "
            + YarnConfiguration.RM_NM_EXPIRY_INTERVAL_MS);
  }
}