|
@@ -78,6 +78,8 @@ import org.junit.Assume;
|
|
import org.junit.Before;
|
|
import org.junit.Before;
|
|
import org.junit.Test;
|
|
import org.junit.Test;
|
|
|
|
|
|
|
|
+import com.google.common.collect.Sets;
|
|
|
|
+
|
|
public class TestDFSUtil {
|
|
public class TestDFSUtil {
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -532,7 +534,7 @@ public class TestDFSUtil {
|
|
assertEquals(null, DFSUtil.getNamenodeNameServiceId(conf));
|
|
assertEquals(null, DFSUtil.getNamenodeNameServiceId(conf));
|
|
assertEquals(null, DFSUtil.getSecondaryNameServiceId(conf));
|
|
assertEquals(null, DFSUtil.getSecondaryNameServiceId(conf));
|
|
|
|
|
|
- Collection<URI> uris = DFSUtil.getNameServiceUris(conf, DFS_NAMENODE_RPC_ADDRESS_KEY);
|
|
|
|
|
|
+ Collection<URI> uris = getInternalNameServiceUris(conf, DFS_NAMENODE_RPC_ADDRESS_KEY);
|
|
assertEquals(2, uris.size());
|
|
assertEquals(2, uris.size());
|
|
assertTrue(uris.contains(new URI("hdfs://ns1")));
|
|
assertTrue(uris.contains(new URI("hdfs://ns1")));
|
|
assertTrue(uris.contains(new URI("hdfs://ns2")));
|
|
assertTrue(uris.contains(new URI("hdfs://ns2")));
|
|
@@ -615,7 +617,13 @@ public class TestDFSUtil {
|
|
assertEquals("127.0.0.1:12345",
|
|
assertEquals("127.0.0.1:12345",
|
|
DFSUtil.substituteForWildcardAddress("127.0.0.1:12345", "foo"));
|
|
DFSUtil.substituteForWildcardAddress("127.0.0.1:12345", "foo"));
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+
|
|
|
|
+ private static Collection<URI> getInternalNameServiceUris(Configuration conf,
|
|
|
|
+ String... keys) {
|
|
|
|
+ final Collection<String> ids = DFSUtil.getInternalNameServices(conf);
|
|
|
|
+ return DFSUtil.getNameServiceUris(conf, ids, keys);
|
|
|
|
+ }
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* Test how name service URIs are handled with a variety of configuration
|
|
* Test how name service URIs are handled with a variety of configuration
|
|
* settings
|
|
* settings
|
|
@@ -639,8 +647,7 @@ public class TestDFSUtil {
|
|
conf.set(DFS_NAMENODE_SERVICE_RPC_ADDRESS_KEY, "hdfs://" + NN2_ADDR);
|
|
conf.set(DFS_NAMENODE_SERVICE_RPC_ADDRESS_KEY, "hdfs://" + NN2_ADDR);
|
|
conf.set(CommonConfigurationKeys.FS_DEFAULT_NAME_KEY, "hdfs://" + NN1_ADDR);
|
|
conf.set(CommonConfigurationKeys.FS_DEFAULT_NAME_KEY, "hdfs://" + NN1_ADDR);
|
|
|
|
|
|
- Collection<URI> uris = DFSUtil.getNameServiceUris(conf,
|
|
|
|
- DFS_NAMENODE_SERVICE_RPC_ADDRESS_KEY, DFS_NAMENODE_RPC_ADDRESS_KEY);
|
|
|
|
|
|
+ Collection<URI> uris = DFSUtil.getInternalNsRpcUris(conf);
|
|
|
|
|
|
assertEquals("Incorrect number of URIs returned", 2, uris.size());
|
|
assertEquals("Incorrect number of URIs returned", 2, uris.size());
|
|
assertTrue("Missing URI for name service ns1",
|
|
assertTrue("Missing URI for name service ns1",
|
|
@@ -664,8 +671,7 @@ public class TestDFSUtil {
|
|
|
|
|
|
conf.set(CommonConfigurationKeys.FS_DEFAULT_NAME_KEY, "hdfs://" + NN2_ADDR);
|
|
conf.set(CommonConfigurationKeys.FS_DEFAULT_NAME_KEY, "hdfs://" + NN2_ADDR);
|
|
|
|
|
|
- uris = DFSUtil.getNameServiceUris(conf,
|
|
|
|
- DFS_NAMENODE_SERVICE_RPC_ADDRESS_KEY, DFS_NAMENODE_RPC_ADDRESS_KEY);
|
|
|
|
|
|
+ uris = DFSUtil.getInternalNsRpcUris(conf);
|
|
|
|
|
|
assertEquals("Incorrect number of URIs returned", 3, uris.size());
|
|
assertEquals("Incorrect number of URIs returned", 3, uris.size());
|
|
assertTrue("Missing URI for name service ns1",
|
|
assertTrue("Missing URI for name service ns1",
|
|
@@ -679,8 +685,7 @@ public class TestDFSUtil {
|
|
conf.set(CommonConfigurationKeys.FS_DEFAULT_NAME_KEY,
|
|
conf.set(CommonConfigurationKeys.FS_DEFAULT_NAME_KEY,
|
|
"viewfs://vfs-name.example.com");
|
|
"viewfs://vfs-name.example.com");
|
|
|
|
|
|
- uris = DFSUtil.getNameServiceUris(conf,
|
|
|
|
- DFS_NAMENODE_SERVICE_RPC_ADDRESS_KEY, DFS_NAMENODE_RPC_ADDRESS_KEY);
|
|
|
|
|
|
+ uris = DFSUtil.getInternalNsRpcUris(conf);
|
|
|
|
|
|
assertEquals("Incorrect number of URIs returned", 3, uris.size());
|
|
assertEquals("Incorrect number of URIs returned", 3, uris.size());
|
|
assertTrue("Missing URI for name service ns1",
|
|
assertTrue("Missing URI for name service ns1",
|
|
@@ -694,8 +699,7 @@ public class TestDFSUtil {
|
|
// entries being returned.
|
|
// entries being returned.
|
|
conf.set(CommonConfigurationKeys.FS_DEFAULT_NAME_KEY, "hdfs://ns1");
|
|
conf.set(CommonConfigurationKeys.FS_DEFAULT_NAME_KEY, "hdfs://ns1");
|
|
|
|
|
|
- uris = DFSUtil.getNameServiceUris(conf,
|
|
|
|
- DFS_NAMENODE_SERVICE_RPC_ADDRESS_KEY, DFS_NAMENODE_RPC_ADDRESS_KEY);
|
|
|
|
|
|
+ uris = DFSUtil.getInternalNsRpcUris(conf);
|
|
|
|
|
|
assertEquals("Incorrect number of URIs returned", 3, uris.size());
|
|
assertEquals("Incorrect number of URIs returned", 3, uris.size());
|
|
assertTrue("Missing URI for name service ns1",
|
|
assertTrue("Missing URI for name service ns1",
|
|
@@ -709,8 +713,7 @@ public class TestDFSUtil {
|
|
conf = new HdfsConfiguration();
|
|
conf = new HdfsConfiguration();
|
|
conf.set(CommonConfigurationKeys.FS_DEFAULT_NAME_KEY, "hdfs://" + NN1_ADDR);
|
|
conf.set(CommonConfigurationKeys.FS_DEFAULT_NAME_KEY, "hdfs://" + NN1_ADDR);
|
|
|
|
|
|
- uris = DFSUtil.getNameServiceUris(conf,
|
|
|
|
- DFS_NAMENODE_SERVICE_RPC_ADDRESS_KEY, DFS_NAMENODE_RPC_ADDRESS_KEY);
|
|
|
|
|
|
+ uris = DFSUtil.getInternalNsRpcUris(conf);
|
|
|
|
|
|
assertEquals("Incorrect number of URIs returned", 1, uris.size());
|
|
assertEquals("Incorrect number of URIs returned", 1, uris.size());
|
|
assertTrue("Missing URI for RPC address (defaultFS)",
|
|
assertTrue("Missing URI for RPC address (defaultFS)",
|
|
@@ -720,8 +723,7 @@ public class TestDFSUtil {
|
|
// and the default FS is given.
|
|
// and the default FS is given.
|
|
conf.set(DFS_NAMENODE_RPC_ADDRESS_KEY, NN2_ADDR);
|
|
conf.set(DFS_NAMENODE_RPC_ADDRESS_KEY, NN2_ADDR);
|
|
|
|
|
|
- uris = DFSUtil.getNameServiceUris(conf,
|
|
|
|
- DFS_NAMENODE_SERVICE_RPC_ADDRESS_KEY, DFS_NAMENODE_RPC_ADDRESS_KEY);
|
|
|
|
|
|
+ uris = DFSUtil.getInternalNsRpcUris(conf);
|
|
|
|
|
|
assertEquals("Incorrect number of URIs returned", 1, uris.size());
|
|
assertEquals("Incorrect number of URIs returned", 1, uris.size());
|
|
assertTrue("Missing URI for RPC address",
|
|
assertTrue("Missing URI for RPC address",
|
|
@@ -733,8 +735,7 @@ public class TestDFSUtil {
|
|
// returned.
|
|
// returned.
|
|
conf.set(DFS_NAMENODE_SERVICE_RPC_ADDRESS_KEY, NN1_ADDR);
|
|
conf.set(DFS_NAMENODE_SERVICE_RPC_ADDRESS_KEY, NN1_ADDR);
|
|
|
|
|
|
- uris = DFSUtil.getNameServiceUris(conf,
|
|
|
|
- DFS_NAMENODE_SERVICE_RPC_ADDRESS_KEY, DFS_NAMENODE_RPC_ADDRESS_KEY);
|
|
|
|
|
|
+ uris = DFSUtil.getInternalNsRpcUris(conf);
|
|
|
|
|
|
assertEquals("Incorrect number of URIs returned", 1, uris.size());
|
|
assertEquals("Incorrect number of URIs returned", 1, uris.size());
|
|
assertTrue("Missing URI for service ns1",
|
|
assertTrue("Missing URI for service ns1",
|
|
@@ -746,8 +747,7 @@ public class TestDFSUtil {
|
|
conf.set(CommonConfigurationKeys.FS_DEFAULT_NAME_KEY, "hdfs://" + NN1_ADDR);
|
|
conf.set(CommonConfigurationKeys.FS_DEFAULT_NAME_KEY, "hdfs://" + NN1_ADDR);
|
|
conf.set(DFS_NAMENODE_SERVICE_RPC_ADDRESS_KEY, NN1_SRVC_ADDR);
|
|
conf.set(DFS_NAMENODE_SERVICE_RPC_ADDRESS_KEY, NN1_SRVC_ADDR);
|
|
|
|
|
|
- uris = DFSUtil.getNameServiceUris(conf,
|
|
|
|
- DFS_NAMENODE_SERVICE_RPC_ADDRESS_KEY, DFS_NAMENODE_RPC_ADDRESS_KEY);
|
|
|
|
|
|
+ uris = DFSUtil.getInternalNsRpcUris(conf);
|
|
|
|
|
|
assertEquals("Incorrect number of URIs returned", 1, uris.size());
|
|
assertEquals("Incorrect number of URIs returned", 1, uris.size());
|
|
assertTrue("Missing URI for service address",
|
|
assertTrue("Missing URI for service address",
|
|
@@ -763,7 +763,7 @@ public class TestDFSUtil {
|
|
// it will automatically convert it to hostname
|
|
// it will automatically convert it to hostname
|
|
HdfsConfiguration conf = new HdfsConfiguration();
|
|
HdfsConfiguration conf = new HdfsConfiguration();
|
|
conf.set(CommonConfigurationKeys.FS_DEFAULT_NAME_KEY, "hdfs://127.0.0.1:8020");
|
|
conf.set(CommonConfigurationKeys.FS_DEFAULT_NAME_KEY, "hdfs://127.0.0.1:8020");
|
|
- Collection<URI> uris = DFSUtil.getNameServiceUris(conf);
|
|
|
|
|
|
+ Collection<URI> uris = getInternalNameServiceUris(conf);
|
|
assertEquals(1, uris.size());
|
|
assertEquals(1, uris.size());
|
|
for (URI uri : uris) {
|
|
for (URI uri : uris) {
|
|
assertThat(uri.getHost(), not("127.0.0.1"));
|
|
assertThat(uri.getHost(), not("127.0.0.1"));
|
|
@@ -950,10 +950,19 @@ public class TestDFSUtil {
|
|
conf.set(DFSUtil.addKeySuffixes(DFS_NAMENODE_RPC_ADDRESS_KEY, "nn2"),
|
|
conf.set(DFSUtil.addKeySuffixes(DFS_NAMENODE_RPC_ADDRESS_KEY, "nn2"),
|
|
NN2_ADDRESS);
|
|
NN2_ADDRESS);
|
|
|
|
|
|
|
|
+ {
|
|
|
|
+ Collection<String> internal = DFSUtil.getInternalNameServices(conf);
|
|
|
|
+ assertEquals(Sets.newHashSet("nn1"), internal);
|
|
|
|
+
|
|
|
|
+ Collection<String> all = DFSUtilClient.getNameServiceIds(conf);
|
|
|
|
+ assertEquals(Sets.newHashSet("nn1", "nn2"), all);
|
|
|
|
+ }
|
|
|
|
+
|
|
Map<String, Map<String, InetSocketAddress>> nnMap = DFSUtil
|
|
Map<String, Map<String, InetSocketAddress>> nnMap = DFSUtil
|
|
.getNNServiceRpcAddressesForCluster(conf);
|
|
.getNNServiceRpcAddressesForCluster(conf);
|
|
assertEquals(1, nnMap.size());
|
|
assertEquals(1, nnMap.size());
|
|
assertTrue(nnMap.containsKey("nn1"));
|
|
assertTrue(nnMap.containsKey("nn1"));
|
|
|
|
+
|
|
conf.set(DFS_INTERNAL_NAMESERVICES_KEY, "nn3");
|
|
conf.set(DFS_INTERNAL_NAMESERVICES_KEY, "nn3");
|
|
try {
|
|
try {
|
|
DFSUtil.getNNServiceRpcAddressesForCluster(conf);
|
|
DFSUtil.getNNServiceRpcAddressesForCluster(conf);
|