HBASE-20870 Wrong HBase root dir in ITBLL's Search Tool

Conflicts:
	hbase-it/src/test/java/org/apache/hadoop/hbase/IntegrationTestingUtility.java
	hbase-server/src/test/java/org/apache/hadoop/hbase/HBaseTestingUtility.java

Amending-Author: Andrew Purtell <apurtell@apache.org>
This commit is contained in:
Allan Yang 2018-07-20 11:22:03 +08:00 committed by Andrew Purtell
parent d3ce26101e
commit 20759a3c7e
No known key found for this signature in database
GPG Key ID: 8597754DD5365CCD
2 changed files with 27 additions and 0 deletions

View File

@ -132,7 +132,20 @@ public class IntegrationTestingUtility extends HBaseTestingUtility {
}
public void createDistributedHBaseCluster() throws IOException {
//if it is a distributed HBase cluster, use the conf provided by classpath
//to set hbase dir and fs.defaultFS.
//Since when the super class HBaseTestingUtility initializing, it will
//change hbase.rootdir to a local test dir.
//we use "original.defaultFS" and "original.hbase.dir" to restore them.
Configuration conf = getConfiguration();
if (conf.get("original.defaultFS") != null) {
conf.set("fs.defaultFS", conf.get("original.defaultFS"));
}
if (conf.get("original.hbase.dir") != null) {
conf.set(HConstants.HBASE_DIR, conf.get("original.hbase.dir"));
}
LOG.debug("Setting " + HConstants.HBASE_DIR + " to " + conf.get(HConstants.HBASE_DIR) +
" since it is a distributed cluster");
Class<? extends ClusterManager> clusterManagerClass = conf.getClass(HBASE_CLUSTER_MANAGER_CLASS,
DEFAULT_HBASE_CLUSTER_MANAGER_CLASS, ClusterManager.class);
ClusterManager clusterManager = ReflectionUtils.newInstance(

View File

@ -304,6 +304,20 @@ public class HBaseTestingUtility extends HBaseCommonTestingUtility {
// a hbase checksum verification failure will cause unit tests to fail
ChecksumUtil.generateExceptionForChecksumFailureForTest(true);
// Save this for when setting default file:// breaks things
if (this.conf.get("fs.defaultFS") != null) {
this.conf.set("original.defaultFS", this.conf.get("fs.defaultFS"));
}
if (this.conf.get(HConstants.HBASE_DIR) != null) {
this.conf.set("original.hbase.dir", this.conf.get(HConstants.HBASE_DIR));
}
// Every cluster is a local cluster until we start DFS
// Note that conf could be null, but this.conf will not be
String dataTestDir = getDataTestDir().toString();
this.conf.set("fs.defaultFS","file:///");
this.conf.set(HConstants.HBASE_DIR, "file://" + dataTestDir);
LOG.debug("Setting " + HConstants.HBASE_DIR + " to " + dataTestDir);
}
/**