HDFS-13632. Randomize baseDir for MiniJournalCluster in MiniQJMHACluster for TestDFSAdminWithHA. Contributed by Anbang Hu.

(cherry picked from commit e1102865e6e16babaff9346212c824cb1f47c31c)
This commit is contained in:
Inigo Goiri 2018-05-30 10:02:19 -07:00
parent f0de11ba98
commit 33c4f60b06
2 changed files with 11 additions and 3 deletions

View File

@ -49,6 +49,7 @@ public class MiniQJMHACluster {
private int numNNs = 2;
private final MiniDFSCluster.Builder dfsBuilder;
private boolean forceRemoteEditsOnly = false;
private String baseDir;
public Builder(Configuration conf) {
this.conf = conf;
@ -69,6 +70,11 @@ public class MiniQJMHACluster {
this.startOpt = startOpt;
}
public Builder baseDir(String d) {
this.baseDir = d;
return this;
}
public Builder setNumNameNodes(int nns) {
this.numNNs = nns;
return this;
@ -104,8 +110,8 @@ public class MiniQJMHACluster {
basePort = 10000 + RANDOM.nextInt(1000) * 4;
LOG.info("Set MiniQJMHACluster basePort to " + basePort);
// start 3 journal nodes
journalCluster = new MiniJournalCluster.Builder(conf).format(true)
.build();
journalCluster = new MiniJournalCluster.Builder(conf)
.baseDir(builder.baseDir).format(true).build();
journalCluster.waitActive();
journalCluster.setNamenodeSharedEditsConf(NAMESERVICE);
URI journalURI = journalCluster.getQuorumJournalURI(NAMESERVICE);

View File

@ -29,6 +29,7 @@ import org.apache.hadoop.hdfs.DFSConfigKeys;
import org.apache.hadoop.hdfs.DFSUtil;
import org.apache.hadoop.hdfs.HAUtil;
import org.apache.hadoop.hdfs.qjournal.MiniQJMHACluster;
import org.apache.hadoop.test.GenericTestUtils;
import org.junit.After;
import org.junit.Test;
@ -82,7 +83,8 @@ public class TestDFSAdminWithHA {
conf = new Configuration();
conf.setBoolean(CommonConfigurationKeys.HADOOP_SECURITY_AUTHORIZATION,
security);
cluster = new MiniQJMHACluster.Builder(conf).build();
String baseDir = GenericTestUtils.getRandomizedTempPath();
cluster = new MiniQJMHACluster.Builder(conf).baseDir(baseDir).build();
setHAConf(conf, cluster.getDfsCluster().getNameNode(0).getHostAndPort(),
cluster.getDfsCluster().getNameNode(1).getHostAndPort());
cluster.getDfsCluster().getNameNode(0).getHostAndPort();