if (HAUtil.isHAEnabled(conf)) { YarnConfiguration yarnConf = new YarnConfiguration(conf); String active = RMHAUtils.findActiveRMHAId(yarnConf);
public static String getResolvedRemoteRMWebAppURLWithoutScheme(Configuration conf, Policy httpPolicy) { String rmId = null; if (HAUtil.isHAEnabled(conf)) { // If HA enabled, pick one of the RM-IDs and rely on redirect to go to // the Active RM rmId = (String) HAUtil.getRMHAIds(conf).toArray()[0]; } return getResolvedRemoteRMWebAppURLWithoutScheme(conf, httpPolicy, rmId); }
@Override protected synchronized void closeInternal() throws Exception { if (verifyActiveStatusThread != null) { verifyActiveStatusThread.interrupt(); verifyActiveStatusThread.join(1000); } if (!HAUtil.isHAEnabled(getConfig())) { CuratorFramework curatorFramework = zkManager.getCurator(); IOUtils.closeStream(curatorFramework); } }
public static String getRMWebAppURLWithScheme(Configuration conf) { return getHttpSchemePrefix(conf) + getRMWebAppURLWithoutScheme( conf, HAUtil.isHAEnabled(conf)); }
@Override public InetSocketAddress updateConnectAddr(String name, InetSocketAddress addr) { String prefix = name; if (HAUtil.isHAEnabled(this) && getServiceAddressConfKeys(this).contains(name)) { prefix = HAUtil.addSuffix(prefix, HAUtil.getRMHAId(this)); } return super.updateConnectAddr(prefix, addr); }
@Override public InetSocketAddress updateConnectAddr(String name, InetSocketAddress addr) { String prefix = name; if (HAUtil.isHAEnabled(this)) { prefix = HAUtil.addSuffix(prefix, HAUtil.getRMHAId(this)); } return super.updateConnectAddr(prefix, addr); }
@Override public InetSocketAddress updateConnectAddr(String name, InetSocketAddress addr) { String prefix = name; if (HAUtil.isHAEnabled(this) && getServiceAddressConfKeys(this).contains(name)) { prefix = HAUtil.addSuffix(prefix, HAUtil.getRMHAId(this)); } return super.updateConnectAddr(prefix, addr); }
@Override public InetSocketAddress updateConnectAddr(String name, InetSocketAddress addr) { String prefix = name; if (HAUtil.isHAEnabled(this)) { prefix = HAUtil.addSuffix(prefix, HAUtil.getRMHAId(this)); } return super.updateConnectAddr(prefix, addr); }
private void setRootNodeAcls() throws Exception { if (LOG.isTraceEnabled()) { logRootNodeAcls("Before fencing\n"); } if (HAUtil.isHAEnabled(getConfig())) { setAcl(zkRootNodePath, zkRootNodeAcl); } else { setAcl(zkRootNodePath, zkAcl); } if (LOG.isTraceEnabled()) { logRootNodeAcls("After fencing\n"); } }
private void setRootNodeAcls() throws Exception { if (LOG.isTraceEnabled()) { logRootNodeAcls("Before fencing\n"); } if (HAUtil.isHAEnabled(getConfig())) { setAcl(zkRootNodePath, zkRootNodeAcl); } else { setAcl(zkRootNodePath, zkAcl); } if (LOG.isTraceEnabled()) { logRootNodeAcls("After fencing\n"); } }
/** * Get the socket address for <code>name</code> property as a * <code>InetSocketAddress</code>. On an HA cluster, * this fetches the address corresponding to the RM identified by * {@link #RM_HA_ID}. * @param name property name. * @param defaultAddress the default value * @param defaultPort the default port * @return InetSocketAddress */ @Override public InetSocketAddress getSocketAddr( String name, String defaultAddress, int defaultPort) { String address; if (HAUtil.isHAEnabled(this) && getServiceAddressConfKeys(this).contains(name)) { address = HAUtil.getConfValueForRMInstance(name, defaultAddress, this); } else { address = get(name, defaultAddress); } return NetUtils.createSocketAddr(address, defaultPort, name); }
private static <T> T newProxyInstance(final YarnConfiguration conf, final Class<T> protocol, RMProxy<T> instance, RetryPolicy retryPolicy) throws IOException{ if (HAUtil.isHAEnabled(conf) || HAUtil.isFederationEnabled(conf)) { RMFailoverProxyProvider<T> provider = instance.createRMFailoverProxyProvider(conf, protocol); return (T) RetryProxy.create(protocol, provider, retryPolicy); } else { InetSocketAddress rmAddress = instance.getRMAddress(conf, protocol); LOG.info("Connecting to ResourceManager at " + rmAddress); T proxy = instance.getProxy(conf, protocol, rmAddress); return (T) RetryProxy.create(protocol, proxy, retryPolicy); } }
/** * Currently, used by NodeManagers only. * Create a proxy for the specified protocol. For non-HA, * this is a direct connection to the ResourceManager address. When HA is * enabled, the proxy handles the failover between the ResourceManagers as * well. */ @Private protected static <T> T createRMProxy(final Configuration configuration, final Class<T> protocol, RMProxy<T> instance, final long retryTime, final long retryInterval) throws IOException { YarnConfiguration conf = (configuration instanceof YarnConfiguration) ? (YarnConfiguration) configuration : new YarnConfiguration(configuration); RetryPolicy retryPolicy = createRetryPolicy(conf, retryTime, retryInterval, HAUtil.isHAEnabled(conf)); return newProxyInstance(conf, protocol, instance, retryPolicy); }
private void setRootNodeAcls() throws Exception { if (LOG.isDebugEnabled()) { logRootNodeAcls("Before setting ACLs'\n"); } CuratorFramework curatorFramework = zkManager.getCurator(); if (HAUtil.isHAEnabled(getConfig())) { curatorFramework.setACL().withACL(zkRootNodeAcl).forPath(zkRootNodePath); } else { curatorFramework.setACL().withACL(zkAcl).forPath(zkRootNodePath); } if (LOG.isDebugEnabled()) { logRootNodeAcls("After setting ACLs'\n"); } }
@SuppressWarnings("unchecked") private boolean notifyStoreOperationFailedInternal( Exception failureCause) { boolean isFenced = false; LOG.error("State store operation failed ", failureCause); if (HAUtil.isHAEnabled(getConfig())) { rmDispatcher.getEventHandler().handle( new RMFatalEvent(RMFatalEventType.STATE_STORE_FENCED, failureCause)); isFenced = true; } else { rmDispatcher.getEventHandler().handle( new RMFatalEvent(RMFatalEventType.STATE_STORE_OP_FAILED, failureCause)); } return isFenced; }
/** * Currently, used by Client and AM only * Create a proxy for the specified protocol. For non-HA, * this is a direct connection to the ResourceManager address. When HA is * enabled, the proxy handles the failover between the ResourceManagers as * well. */ @Private protected static <T> T createRMProxy(final Configuration configuration, final Class<T> protocol, RMProxy<T> instance) throws IOException { YarnConfiguration conf = (configuration instanceof YarnConfiguration) ? (YarnConfiguration) configuration : new YarnConfiguration(configuration); RetryPolicy retryPolicy = createRetryPolicy(conf, (HAUtil.isHAEnabled(conf) || HAUtil.isFederationFailoverEnabled(conf))); return newProxyInstance(conf, protocol, instance, retryPolicy); }
private synchronized void initResourceManager(int index, Configuration conf) { if (HAUtil.isHAEnabled(conf)) { conf.set(YarnConfiguration.RM_HA_ID, rmIds[index]); } resourceManagers[index].init(conf); resourceManagers[index].getRMContext().getDispatcher().register( RMAppAttemptEventType.class, new EventHandler<RMAppAttemptEvent>() { public void handle(RMAppAttemptEvent event) { if (event instanceof RMAppAttemptRegistrationEvent) { appMasters.put(event.getApplicationAttemptId(), event.getTimestamp()); } else if (event instanceof RMAppAttemptUnregistrationEvent) { appMasters.remove(event.getApplicationAttemptId()); } } }); }
@Test public void testGetSocketAddressForNMWithHA() { YarnConfiguration conf = new YarnConfiguration(); // Set NM address conf.set(YarnConfiguration.NM_ADDRESS, "0.0.0.0:1234"); // Set HA conf.setBoolean(YarnConfiguration.RM_HA_ENABLED, true); conf.set(YarnConfiguration.RM_HA_ID, "rm1"); assertTrue(HAUtil.isHAEnabled(conf)); InetSocketAddress addr = conf.getSocketAddr(YarnConfiguration.NM_ADDRESS, YarnConfiguration.DEFAULT_NM_ADDRESS, YarnConfiguration.DEFAULT_NM_PORT); assertEquals(1234, addr.getPort()); }
@Test public void testGetSocketAddressForNMWithHA() { YarnConfiguration conf = new YarnConfiguration(); // Set NM address conf.set(YarnConfiguration.NM_ADDRESS, "0.0.0.0:1234"); // Set HA conf.setBoolean(YarnConfiguration.RM_HA_ENABLED, true); conf.set(YarnConfiguration.RM_HA_ID, "rm1"); assertTrue(HAUtil.isHAEnabled(conf)); InetSocketAddress addr = conf.getSocketAddr(YarnConfiguration.NM_ADDRESS, YarnConfiguration.DEFAULT_NM_ADDRESS, YarnConfiguration.DEFAULT_NM_PORT); assertEquals(1234, addr.getPort()); }
@Test public void testGetSocketAddressForNMWithHA() { YarnConfiguration conf = new YarnConfiguration(); // Set NM address conf.set(YarnConfiguration.NM_ADDRESS, "0.0.0.0:1234"); // Set HA conf.setBoolean(YarnConfiguration.RM_HA_ENABLED, true); conf.set(YarnConfiguration.RM_HA_ID, "rm1"); assertTrue(HAUtil.isHAEnabled(conf)); InetSocketAddress addr = conf.getSocketAddr(YarnConfiguration.NM_ADDRESS, YarnConfiguration.DEFAULT_NM_ADDRESS, YarnConfiguration.DEFAULT_NM_PORT); assertEquals(1234, addr.getPort()); }