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 03209e8966
commit 6dc40bab4e
2 changed files with 11 additions and 3 deletions

View File

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

View File

@ -32,6 +32,7 @@ import org.apache.hadoop.hdfs.MiniDFSCluster;
import org.apache.hadoop.hdfs.qjournal.MiniQJMHACluster; import org.apache.hadoop.hdfs.qjournal.MiniQJMHACluster;
import org.apache.hadoop.hdfs.server.common.HdfsServerConstants; import org.apache.hadoop.hdfs.server.common.HdfsServerConstants;
import org.apache.hadoop.hdfs.server.namenode.ha.BootstrapStandby; import org.apache.hadoop.hdfs.server.namenode.ha.BootstrapStandby;
import org.apache.hadoop.test.GenericTestUtils;
import org.junit.After; import org.junit.After;
import org.junit.Test; import org.junit.Test;
@ -85,7 +86,8 @@ public class TestDFSAdminWithHA {
conf = new Configuration(); conf = new Configuration();
conf.setBoolean(CommonConfigurationKeys.HADOOP_SECURITY_AUTHORIZATION, conf.setBoolean(CommonConfigurationKeys.HADOOP_SECURITY_AUTHORIZATION,
security); 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(), setHAConf(conf, cluster.getDfsCluster().getNameNode(0).getHostAndPort(),
cluster.getDfsCluster().getNameNode(1).getHostAndPort()); cluster.getDfsCluster().getNameNode(1).getHostAndPort());
cluster.getDfsCluster().getNameNode(0).getHostAndPort(); cluster.getDfsCluster().getNameNode(0).getHostAndPort();