HDFS-9333. Some tests using MiniDFSCluster errored complaining port in use. (iwasakims)
This commit is contained in:
parent
5a58bfee30
commit
964e546ab1
@ -61,6 +61,7 @@
|
|||||||
import org.apache.hadoop.hdfs.server.protocol.NamenodeProtocols;
|
import org.apache.hadoop.hdfs.server.protocol.NamenodeProtocols;
|
||||||
import org.apache.hadoop.io.IOUtils;
|
import org.apache.hadoop.io.IOUtils;
|
||||||
import org.apache.hadoop.net.NetUtils;
|
import org.apache.hadoop.net.NetUtils;
|
||||||
|
import org.apache.hadoop.net.ServerSocketUtil;
|
||||||
import org.apache.hadoop.security.token.Token;
|
import org.apache.hadoop.security.token.Token;
|
||||||
import org.apache.hadoop.test.GenericTestUtils;
|
import org.apache.hadoop.test.GenericTestUtils;
|
||||||
import org.apache.log4j.Level;
|
import org.apache.log4j.Level;
|
||||||
@ -349,7 +350,12 @@ public void testRead() throws Exception {
|
|||||||
Configuration conf = getConf(numDataNodes);
|
Configuration conf = getConf(numDataNodes);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
cluster = new MiniDFSCluster.Builder(conf).numDataNodes(numDataNodes).build();
|
// prefer non-ephemeral port to avoid port collision on restartNameNode
|
||||||
|
cluster = new MiniDFSCluster.Builder(conf)
|
||||||
|
.nameNodePort(ServerSocketUtil.getPort(19820, 100))
|
||||||
|
.nameNodeHttpPort(ServerSocketUtil.getPort(19870, 100))
|
||||||
|
.numDataNodes(numDataNodes)
|
||||||
|
.build();
|
||||||
cluster.waitActive();
|
cluster.waitActive();
|
||||||
assertEquals(numDataNodes, cluster.getDataNodes().size());
|
assertEquals(numDataNodes, cluster.getDataNodes().size());
|
||||||
doTestRead(conf, cluster, false);
|
doTestRead(conf, cluster, false);
|
||||||
|
@ -25,6 +25,7 @@
|
|||||||
import org.apache.hadoop.hdfs.protocol.LocatedStripedBlock;
|
import org.apache.hadoop.hdfs.protocol.LocatedStripedBlock;
|
||||||
import org.apache.hadoop.hdfs.server.balancer.TestBalancer;
|
import org.apache.hadoop.hdfs.server.balancer.TestBalancer;
|
||||||
import org.apache.hadoop.hdfs.util.StripedBlockUtil;
|
import org.apache.hadoop.hdfs.util.StripedBlockUtil;
|
||||||
|
import org.apache.hadoop.net.ServerSocketUtil;
|
||||||
import org.junit.Rule;
|
import org.junit.Rule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.rules.Timeout;
|
import org.junit.rules.Timeout;
|
||||||
@ -59,7 +60,27 @@ private Configuration getConf() {
|
|||||||
@Override
|
@Override
|
||||||
public void testRead() throws Exception {
|
public void testRead() throws Exception {
|
||||||
conf = getConf();
|
conf = getConf();
|
||||||
cluster = new MiniDFSCluster.Builder(conf).numDataNodes(numDNs).build();
|
|
||||||
|
/*
|
||||||
|
* prefer non-ephemeral port to avoid conflict with tests using
|
||||||
|
* ephemeral ports on MiniDFSCluster#restartDataNode(true).
|
||||||
|
*/
|
||||||
|
Configuration[] overlays = new Configuration[numDNs];
|
||||||
|
for (int i = 0; i < overlays.length; i++) {
|
||||||
|
int offset = i * 10;
|
||||||
|
Configuration c = new Configuration();
|
||||||
|
c.set(DFSConfigKeys.DFS_DATANODE_ADDRESS_KEY, "127.0.0.1:"
|
||||||
|
+ ServerSocketUtil.getPort(19866 + offset, 100));
|
||||||
|
c.set(DFSConfigKeys.DFS_DATANODE_IPC_ADDRESS_KEY, "127.0.0.1:"
|
||||||
|
+ ServerSocketUtil.getPort(19867 + offset, 100));
|
||||||
|
overlays[i] = c;
|
||||||
|
}
|
||||||
|
|
||||||
|
cluster = new MiniDFSCluster.Builder(conf)
|
||||||
|
.nameNodePort(ServerSocketUtil.getPort(19820, 100))
|
||||||
|
.nameNodeHttpPort(ServerSocketUtil.getPort(19870, 100))
|
||||||
|
.numDataNodes(numDNs)
|
||||||
|
.build();
|
||||||
cluster.getFileSystem().getClient()
|
cluster.getFileSystem().getClient()
|
||||||
.setErasureCodingPolicy("/", null);
|
.setErasureCodingPolicy("/", null);
|
||||||
try {
|
try {
|
||||||
|
@ -39,6 +39,7 @@
|
|||||||
import org.apache.hadoop.hdfs.server.namenode.MockNameNodeResourceChecker;
|
import org.apache.hadoop.hdfs.server.namenode.MockNameNodeResourceChecker;
|
||||||
import org.apache.hadoop.hdfs.server.namenode.NameNode;
|
import org.apache.hadoop.hdfs.server.namenode.NameNode;
|
||||||
import org.apache.hadoop.hdfs.server.namenode.ha.HATestUtil;
|
import org.apache.hadoop.hdfs.server.namenode.ha.HATestUtil;
|
||||||
|
import org.apache.hadoop.net.ServerSocketUtil;
|
||||||
import org.apache.hadoop.test.GenericTestUtils;
|
import org.apache.hadoop.test.GenericTestUtils;
|
||||||
import org.apache.hadoop.test.MultithreadedTestUtil.TestContext;
|
import org.apache.hadoop.test.MultithreadedTestUtil.TestContext;
|
||||||
import org.apache.hadoop.test.MultithreadedTestUtil.TestingThread;
|
import org.apache.hadoop.test.MultithreadedTestUtil.TestingThread;
|
||||||
@ -75,14 +76,21 @@ public void setup() throws Exception {
|
|||||||
conf.setInt(
|
conf.setInt(
|
||||||
CommonConfigurationKeysPublic.IPC_CLIENT_CONNECTION_MAXIDLETIME_KEY,
|
CommonConfigurationKeysPublic.IPC_CLIENT_CONNECTION_MAXIDLETIME_KEY,
|
||||||
0);
|
0);
|
||||||
|
|
||||||
conf.setInt(DFSConfigKeys.DFS_HA_ZKFC_PORT_KEY + ".ns1.nn1", 10023);
|
|
||||||
conf.setInt(DFSConfigKeys.DFS_HA_ZKFC_PORT_KEY + ".ns1.nn2", 10024);
|
|
||||||
|
|
||||||
|
// Get random port numbers in advance. Because ZKFCs and DFSHAAdmin
|
||||||
|
// needs rpc port numbers of all ZKFCs, Setting 0 does not work here.
|
||||||
|
conf.setInt(DFSConfigKeys.DFS_HA_ZKFC_PORT_KEY + ".ns1.nn1",
|
||||||
|
ServerSocketUtil.getPort(10023, 100));
|
||||||
|
conf.setInt(DFSConfigKeys.DFS_HA_ZKFC_PORT_KEY + ".ns1.nn2",
|
||||||
|
ServerSocketUtil.getPort(10024, 100));
|
||||||
|
|
||||||
|
// prefer non-ephemeral port to avoid port collision on restartNameNode
|
||||||
MiniDFSNNTopology topology = new MiniDFSNNTopology()
|
MiniDFSNNTopology topology = new MiniDFSNNTopology()
|
||||||
.addNameservice(new MiniDFSNNTopology.NSConf("ns1")
|
.addNameservice(new MiniDFSNNTopology.NSConf("ns1")
|
||||||
.addNN(new MiniDFSNNTopology.NNConf("nn1").setIpcPort(10021))
|
.addNN(new MiniDFSNNTopology.NNConf("nn1")
|
||||||
.addNN(new MiniDFSNNTopology.NNConf("nn2").setIpcPort(10022)));
|
.setIpcPort(ServerSocketUtil.getPort(10021, 100)))
|
||||||
|
.addNN(new MiniDFSNNTopology.NNConf("nn2")
|
||||||
|
.setIpcPort(ServerSocketUtil.getPort(10022, 100))));
|
||||||
cluster = new MiniDFSCluster.Builder(conf)
|
cluster = new MiniDFSCluster.Builder(conf)
|
||||||
.nnTopology(topology)
|
.nnTopology(topology)
|
||||||
.numDataNodes(0)
|
.numDataNodes(0)
|
||||||
|
Loading…
Reference in New Issue
Block a user