|
@@ -18,6 +18,8 @@
|
|
|
|
|
|
package org.apache.hadoop.yarn.conf;
|
|
|
|
|
|
+import com.google.common.net.HostAndPort;
|
|
|
+import org.apache.hadoop.net.NetUtils;
|
|
|
import org.junit.Assert;
|
|
|
|
|
|
import org.apache.hadoop.yarn.webapp.util.WebAppUtils;
|
|
@@ -53,7 +55,7 @@ public class TestYarnConfiguration {
|
|
|
conf.set(YarnConfiguration.RM_ADDRESS, "rmtesting:9999");
|
|
|
String rmWebUrl = WebAppUtils.getRMWebAppURLWithScheme(conf);
|
|
|
String[] parts = rmWebUrl.split(":");
|
|
|
- Assert.assertEquals("RM Web URL Port is incrrect", 24543,
|
|
|
+ Assert.assertEquals("RM Web URL Port is incorrect", 24543,
|
|
|
Integer.valueOf(parts[parts.length - 1]).intValue());
|
|
|
Assert.assertNotSame(
|
|
|
"RM Web Url not resolved correctly. Should not be rmtesting",
|
|
@@ -92,9 +94,9 @@ public class TestYarnConfiguration {
|
|
|
YarnConfiguration.DEFAULT_RM_RESOURCE_TRACKER_ADDRESS,
|
|
|
YarnConfiguration.DEFAULT_RM_RESOURCE_TRACKER_PORT);
|
|
|
assertEquals(
|
|
|
- new InetSocketAddress(
|
|
|
- YarnConfiguration.DEFAULT_RM_RESOURCE_TRACKER_ADDRESS.split(":")[0],
|
|
|
- YarnConfiguration.DEFAULT_RM_RESOURCE_TRACKER_PORT),
|
|
|
+ new InetSocketAddress(
|
|
|
+ YarnConfiguration.DEFAULT_RM_RESOURCE_TRACKER_ADDRESS.split(":")[0],
|
|
|
+ YarnConfiguration.DEFAULT_RM_RESOURCE_TRACKER_PORT),
|
|
|
resourceTrackerAddress);
|
|
|
|
|
|
//with address
|
|
@@ -105,9 +107,9 @@ public class TestYarnConfiguration {
|
|
|
YarnConfiguration.DEFAULT_RM_RESOURCE_TRACKER_ADDRESS,
|
|
|
YarnConfiguration.DEFAULT_RM_RESOURCE_TRACKER_PORT);
|
|
|
assertEquals(
|
|
|
- new InetSocketAddress(
|
|
|
- "10.0.0.1",
|
|
|
- YarnConfiguration.DEFAULT_RM_RESOURCE_TRACKER_PORT),
|
|
|
+ new InetSocketAddress(
|
|
|
+ "10.0.0.1",
|
|
|
+ YarnConfiguration.DEFAULT_RM_RESOURCE_TRACKER_PORT),
|
|
|
resourceTrackerAddress);
|
|
|
|
|
|
//address and socket
|
|
@@ -118,9 +120,23 @@ public class TestYarnConfiguration {
|
|
|
YarnConfiguration.DEFAULT_RM_RESOURCE_TRACKER_ADDRESS,
|
|
|
YarnConfiguration.DEFAULT_RM_RESOURCE_TRACKER_PORT);
|
|
|
assertEquals(
|
|
|
- new InetSocketAddress(
|
|
|
- "10.0.0.2",
|
|
|
- 5001),
|
|
|
+ new InetSocketAddress(
|
|
|
+ "10.0.0.2",
|
|
|
+ 5001),
|
|
|
+ resourceTrackerAddress);
|
|
|
+
|
|
|
+ // IPv6 address and socket
|
|
|
+ conf.set(YarnConfiguration.RM_RESOURCE_TRACKER_ADDRESS,
|
|
|
+ "[2401:db00:20:a01e:face:0:5:0]:5001");
|
|
|
+ resourceTrackerAddress = conf.getSocketAddr(
|
|
|
+ YarnConfiguration.RM_BIND_HOST,
|
|
|
+ YarnConfiguration.RM_RESOURCE_TRACKER_ADDRESS,
|
|
|
+ YarnConfiguration.DEFAULT_RM_RESOURCE_TRACKER_ADDRESS,
|
|
|
+ YarnConfiguration.DEFAULT_RM_RESOURCE_TRACKER_PORT);
|
|
|
+ assertEquals(
|
|
|
+ new InetSocketAddress(
|
|
|
+ "2401:db00:20:a01e:face:0:5:0",
|
|
|
+ 5001),
|
|
|
resourceTrackerAddress);
|
|
|
|
|
|
//bind host only
|
|
@@ -132,9 +148,9 @@ public class TestYarnConfiguration {
|
|
|
YarnConfiguration.DEFAULT_RM_RESOURCE_TRACKER_ADDRESS,
|
|
|
YarnConfiguration.DEFAULT_RM_RESOURCE_TRACKER_PORT);
|
|
|
assertEquals(
|
|
|
- new InetSocketAddress(
|
|
|
- "10.0.0.3",
|
|
|
- YarnConfiguration.DEFAULT_RM_RESOURCE_TRACKER_PORT),
|
|
|
+ new InetSocketAddress(
|
|
|
+ "10.0.0.3",
|
|
|
+ YarnConfiguration.DEFAULT_RM_RESOURCE_TRACKER_PORT),
|
|
|
resourceTrackerAddress);
|
|
|
|
|
|
//bind host and address no port
|
|
@@ -146,9 +162,9 @@ public class TestYarnConfiguration {
|
|
|
YarnConfiguration.DEFAULT_RM_RESOURCE_TRACKER_ADDRESS,
|
|
|
YarnConfiguration.DEFAULT_RM_RESOURCE_TRACKER_PORT);
|
|
|
assertEquals(
|
|
|
- new InetSocketAddress(
|
|
|
- "0.0.0.0",
|
|
|
- YarnConfiguration.DEFAULT_RM_RESOURCE_TRACKER_PORT),
|
|
|
+ new InetSocketAddress(
|
|
|
+ "0.0.0.0",
|
|
|
+ YarnConfiguration.DEFAULT_RM_RESOURCE_TRACKER_PORT),
|
|
|
resourceTrackerAddress);
|
|
|
|
|
|
//bind host and address with port
|
|
@@ -160,9 +176,9 @@ public class TestYarnConfiguration {
|
|
|
YarnConfiguration.DEFAULT_RM_RESOURCE_TRACKER_ADDRESS,
|
|
|
YarnConfiguration.DEFAULT_RM_RESOURCE_TRACKER_PORT);
|
|
|
assertEquals(
|
|
|
- new InetSocketAddress(
|
|
|
- "0.0.0.0",
|
|
|
- 5003),
|
|
|
+ new InetSocketAddress(
|
|
|
+ "0.0.0.0",
|
|
|
+ 5003),
|
|
|
resourceTrackerAddress);
|
|
|
|
|
|
}
|
|
@@ -176,9 +192,8 @@ public class TestYarnConfiguration {
|
|
|
//no override, old behavior. Won't work on a host named "yo.yo.yo"
|
|
|
conf = new YarnConfiguration();
|
|
|
conf.set(YarnConfiguration.RM_RESOURCE_TRACKER_ADDRESS, "yo.yo.yo");
|
|
|
- serverAddress = new InetSocketAddress(
|
|
|
- YarnConfiguration.DEFAULT_RM_RESOURCE_TRACKER_ADDRESS.split(":")[0],
|
|
|
- Integer.valueOf(YarnConfiguration.DEFAULT_RM_RESOURCE_TRACKER_ADDRESS.split(":")[1]));
|
|
|
+ serverAddress = newInetSocketAddressFromHostPort(
|
|
|
+ YarnConfiguration.DEFAULT_RM_RESOURCE_TRACKER_ADDRESS);
|
|
|
|
|
|
resourceTrackerConnectAddress = conf.updateConnectAddr(
|
|
|
YarnConfiguration.RM_BIND_HOST,
|
|
@@ -186,15 +201,14 @@ public class TestYarnConfiguration {
|
|
|
YarnConfiguration.DEFAULT_RM_RESOURCE_TRACKER_ADDRESS,
|
|
|
serverAddress);
|
|
|
|
|
|
- assertFalse(resourceTrackerConnectAddress.toString().startsWith("yo.yo.yo"));
|
|
|
+ assertFalse(NetUtils.getSocketAddressString(resourceTrackerConnectAddress)
|
|
|
+ .startsWith("yo.yo.yo"));
|
|
|
|
|
|
//cause override with address
|
|
|
conf = new YarnConfiguration();
|
|
|
conf.set(YarnConfiguration.RM_RESOURCE_TRACKER_ADDRESS, "yo.yo.yo");
|
|
|
conf.set(YarnConfiguration.RM_BIND_HOST, "0.0.0.0");
|
|
|
- serverAddress = new InetSocketAddress(
|
|
|
- YarnConfiguration.DEFAULT_RM_RESOURCE_TRACKER_ADDRESS.split(":")[0],
|
|
|
- Integer.valueOf(YarnConfiguration.DEFAULT_RM_RESOURCE_TRACKER_ADDRESS.split(":")[1]));
|
|
|
+ serverAddress = newInetSocketAddressFromHostPort(YarnConfiguration.DEFAULT_RM_RESOURCE_TRACKER_ADDRESS);
|
|
|
|
|
|
resourceTrackerConnectAddress = conf.updateConnectAddr(
|
|
|
YarnConfiguration.RM_BIND_HOST,
|
|
@@ -202,7 +216,8 @@ public class TestYarnConfiguration {
|
|
|
YarnConfiguration.DEFAULT_RM_RESOURCE_TRACKER_ADDRESS,
|
|
|
serverAddress);
|
|
|
|
|
|
- assertTrue(resourceTrackerConnectAddress.toString().startsWith("yo.yo.yo"));
|
|
|
+ assertTrue(NetUtils.getSocketAddressString(resourceTrackerConnectAddress)
|
|
|
+ .startsWith("yo.yo.yo"));
|
|
|
|
|
|
//tests updateConnectAddr won't add suffix to NM service address configurations
|
|
|
conf = new YarnConfiguration();
|
|
@@ -211,9 +226,7 @@ public class TestYarnConfiguration {
|
|
|
conf.setBoolean(YarnConfiguration.RM_HA_ENABLED, true);
|
|
|
conf.set(YarnConfiguration.RM_HA_ID, "rm1");
|
|
|
|
|
|
- serverAddress = new InetSocketAddress(
|
|
|
- YarnConfiguration.DEFAULT_NM_LOCALIZER_ADDRESS.split(":")[0],
|
|
|
- Integer.valueOf(YarnConfiguration.DEFAULT_NM_LOCALIZER_ADDRESS.split(":")[1]));
|
|
|
+ serverAddress = newInetSocketAddressFromHostPort(YarnConfiguration.DEFAULT_NM_LOCALIZER_ADDRESS);
|
|
|
|
|
|
InetSocketAddress localizerAddress = conf.updateConnectAddr(
|
|
|
YarnConfiguration.NM_BIND_HOST,
|
|
@@ -221,8 +234,15 @@ public class TestYarnConfiguration {
|
|
|
YarnConfiguration.DEFAULT_NM_LOCALIZER_ADDRESS,
|
|
|
serverAddress);
|
|
|
|
|
|
- assertTrue(localizerAddress.toString().startsWith("yo.yo.yo"));
|
|
|
+ assertTrue(NetUtils.getSocketAddressString(localizerAddress)
|
|
|
+ .startsWith("yo.yo.yo"));
|
|
|
assertNull(conf.get(
|
|
|
HAUtil.addSuffix(YarnConfiguration.NM_LOCALIZER_ADDRESS, "rm1")));
|
|
|
}
|
|
|
+
|
|
|
+ private InetSocketAddress newInetSocketAddressFromHostPort(
|
|
|
+ String hostPort) {
|
|
|
+ HostAndPort hp = HostAndPort.fromString(hostPort);
|
|
|
+ return new InetSocketAddress(hp.getHostText(), hp.getPort());
|
|
|
+ }
|
|
|
}
|