YARN-2859. ApplicationHistoryServer binds to default port 8188 in

MiniYARNCluster. Contributed by Vinod Kumar Vavilapalli

(cherry picked from commit 27414dac66)
(cherry picked from commit 9ce5069d16)
(cherry picked from commit 336be63dad)
This commit is contained in:
Xuan 2015-10-28 10:32:16 -07:00
parent 6466ead9e0
commit 9a97ff54e5
3 changed files with 22 additions and 4 deletions

View File

@ -48,6 +48,9 @@ Release 2.6.2 - UNRELEASED
YARN-3798. ZKRMStateStore shouldn't create new session without occurrance of YARN-3798. ZKRMStateStore shouldn't create new session without occurrance of
SESSIONEXPIED. (ozawa and Varun Saxena) SESSIONEXPIED. (ozawa and Varun Saxena)
YARN-2859. ApplicationHistoryServer binds to default port 8188 in MiniYARNCluster.
(Vinod Kumar Vavilapalli via xgong)
Release 2.6.1 - 2015-09-23 Release 2.6.1 - 2015-09-23
INCOMPATIBLE CHANGES INCOMPATIBLE CHANGES

View File

@ -246,9 +246,9 @@ public class MiniYARNCluster extends CompositeService {
resourceManagers[i] = createResourceManager(); resourceManagers[i] = createResourceManager();
if (!useFixedPorts) { if (!useFixedPorts) {
if (HAUtil.isHAEnabled(conf)) { if (HAUtil.isHAEnabled(conf)) {
setHARMConfiguration(i, conf); setHARMConfigurationWithEphemeralPorts(i, conf);
} else { } else {
setNonHARMConfiguration(conf); setNonHARMConfigurationWithEphemeralPorts(conf);
} }
} }
addService(new ResourceManagerWrapper(i)); addService(new ResourceManagerWrapper(i));
@ -268,7 +268,7 @@ public class MiniYARNCluster extends CompositeService {
conf instanceof YarnConfiguration ? conf : new YarnConfiguration(conf)); conf instanceof YarnConfiguration ? conf : new YarnConfiguration(conf));
} }
private void setNonHARMConfiguration(Configuration conf) { private void setNonHARMConfigurationWithEphemeralPorts(Configuration conf) {
String hostname = MiniYARNCluster.getHostname(); String hostname = MiniYARNCluster.getHostname();
conf.set(YarnConfiguration.RM_ADDRESS, hostname + ":0"); conf.set(YarnConfiguration.RM_ADDRESS, hostname + ":0");
conf.set(YarnConfiguration.RM_ADMIN_ADDRESS, hostname + ":0"); conf.set(YarnConfiguration.RM_ADMIN_ADDRESS, hostname + ":0");
@ -277,7 +277,7 @@ public class MiniYARNCluster extends CompositeService {
WebAppUtils.setRMWebAppHostnameAndPort(conf, hostname, 0); WebAppUtils.setRMWebAppHostnameAndPort(conf, hostname, 0);
} }
private void setHARMConfiguration(final int index, Configuration conf) { private void setHARMConfigurationWithEphemeralPorts(final int index, Configuration conf) {
String hostname = MiniYARNCluster.getHostname(); String hostname = MiniYARNCluster.getHostname();
for (String confKey : YarnConfiguration.getServiceAddressConfKeys(conf)) { for (String confKey : YarnConfiguration.getServiceAddressConfKeys(conf)) {
conf.set(HAUtil.addSuffix(confKey, rmIds[index]), hostname + ":0"); conf.set(HAUtil.addSuffix(confKey, rmIds[index]), hostname + ":0");
@ -682,6 +682,12 @@ public class MiniYARNCluster extends CompositeService {
MemoryApplicationHistoryStore.class, ApplicationHistoryStore.class); MemoryApplicationHistoryStore.class, ApplicationHistoryStore.class);
conf.setClass(YarnConfiguration.TIMELINE_SERVICE_STORE, conf.setClass(YarnConfiguration.TIMELINE_SERVICE_STORE,
MemoryTimelineStore.class, TimelineStore.class); MemoryTimelineStore.class, TimelineStore.class);
if (!useFixedPorts) {
String hostname = MiniYARNCluster.getHostname();
conf.set(YarnConfiguration.TIMELINE_SERVICE_ADDRESS, hostname + ":0");
conf.set(YarnConfiguration.TIMELINE_SERVICE_WEBAPP_ADDRESS, hostname
+ ":0");
}
appHistoryServer.init(conf); appHistoryServer.init(conf);
super.serviceInit(conf); super.serviceInit(conf);
} }

View File

@ -24,6 +24,7 @@ import org.junit.Assert;
import org.junit.Test; import org.junit.Test;
public class TestMiniYarnCluster { public class TestMiniYarnCluster {
@Test @Test
public void testTimelineServiceStartInMiniCluster() throws Exception { public void testTimelineServiceStartInMiniCluster() throws Exception {
Configuration conf = new YarnConfiguration(); Configuration conf = new YarnConfiguration();
@ -66,6 +67,14 @@ public class TestMiniYarnCluster {
cluster = new MiniYARNCluster(TestMiniYarnCluster.class.getSimpleName(), cluster = new MiniYARNCluster(TestMiniYarnCluster.class.getSimpleName(),
numNodeManagers, numLocalDirs, numLogDirs, numLogDirs, enableAHS); numNodeManagers, numLocalDirs, numLogDirs, numLogDirs, enableAHS);
cluster.init(conf); cluster.init(conf);
// Verify that the timeline-service starts on ephemeral ports by default
String hostname = MiniYARNCluster.getHostname();
Assert.assertEquals(hostname + ":0",
conf.get(YarnConfiguration.TIMELINE_SERVICE_ADDRESS));
Assert.assertEquals(hostname + ":0",
conf.get(YarnConfiguration.TIMELINE_SERVICE_WEBAPP_ADDRESS));
cluster.start(); cluster.start();
//Timeline service may sometime take a while to get started //Timeline service may sometime take a while to get started