diff --git a/itests/hive-unit/src/test/java/org/apache/hadoop/hive/ql/parse/BaseReplicationAcrossInstances.java b/itests/hive-unit/src/test/java/org/apache/hadoop/hive/ql/parse/BaseReplicationAcrossInstances.java index 5fb44ddf10..476a9400cf 100644 --- a/itests/hive-unit/src/test/java/org/apache/hadoop/hive/ql/parse/BaseReplicationAcrossInstances.java +++ b/itests/hive-unit/src/test/java/org/apache/hadoop/hive/ql/parse/BaseReplicationAcrossInstances.java @@ -63,7 +63,8 @@ static void internalBeforeClassSetup(Map overrides, Class clazz) put(HiveConf.ConfVars.HIVE_IN_TEST_REPL.varname, "true"); }}; localOverrides.putAll(overrides); - setReplicaExternalBase(miniDFSCluster.getFileSystem(), localOverrides); + setFullyQualifiedReplicaExternalTableBase(miniDFSCluster.getFileSystem()); + localOverrides.put(HiveConf.ConfVars.REPL_EXTERNAL_TABLE_BASE_DIR.varname, fullyQualifiedReplicaExternalBase); primary = new WarehouseInstance(LOG, miniDFSCluster, localOverrides); localOverrides.put(MetastoreConf.ConfVars.REPLDIR.getHiveName(), primary.repldDir); replica = new WarehouseInstance(LOG, miniDFSCluster, localOverrides); @@ -73,9 +74,7 @@ static void internalBeforeClassSetup(Map overrides, Class clazz) static void internalBeforeClassSetupExclusiveReplica(Map primaryOverrides, Map replicaOverrides, Class clazz) throws Exception { - /** - * Setup replica cluster. - */ + // Setup replica HDFS. String replicaBaseDir = Files.createTempDirectory("replica").toFile().getAbsolutePath(); replicaConf = new HiveConf(clazz); replicaConf.set(MiniDFSCluster.HDFS_MINIDFS_BASEDIR, replicaBaseDir); @@ -84,28 +83,30 @@ static void internalBeforeClassSetupExclusiveReplica(Map primary MiniDFSCluster miniReplicaDFSCluster = new MiniDFSCluster.Builder(replicaConf).numDataNodes(1).format(true).build(); - Map localOverrides = new HashMap<>(); - localOverrides.put("fs.defaultFS", miniReplicaDFSCluster.getFileSystem().getUri().toString()); - localOverrides.put(HiveConf.ConfVars.HIVE_IN_TEST_REPL.varname, "true"); - localOverrides.putAll(replicaOverrides); - setReplicaExternalBase(miniReplicaDFSCluster.getFileSystem(), localOverrides); - replica = new WarehouseInstance(LOG, miniReplicaDFSCluster, localOverrides); - - /** - * Setup primary cluster. - */ + // Setup primary HDFS. String primaryBaseDir = Files.createTempDirectory("base").toFile().getAbsolutePath(); conf = new HiveConf(clazz); conf.set(MiniDFSCluster.HDFS_MINIDFS_BASEDIR, primaryBaseDir); conf.set("dfs.client.use.datanode.hostname", "true"); conf.set("hadoop.proxyuser." + Utils.getUGI().getShortUserName() + ".hosts", "*"); MiniDFSCluster miniPrimaryDFSCluster = new MiniDFSCluster.Builder(conf).numDataNodes(1).format(true).build(); - localOverrides.clear(); + + // Setup primary warehouse. + setFullyQualifiedReplicaExternalTableBase(miniReplicaDFSCluster.getFileSystem()); + Map localOverrides = new HashMap<>(); localOverrides.put(HiveConf.ConfVars.HIVE_IN_TEST_REPL.varname, "true"); localOverrides.put(HiveConf.ConfVars.REPL_EXTERNAL_TABLE_BASE_DIR.varname, fullyQualifiedReplicaExternalBase); localOverrides.put("fs.defaultFS", miniPrimaryDFSCluster.getFileSystem().getUri().toString()); localOverrides.putAll(primaryOverrides); primary = new WarehouseInstance(LOG, miniPrimaryDFSCluster, localOverrides); + + // Setup replica warehouse. + localOverrides.clear(); + localOverrides.put(HiveConf.ConfVars.REPL_EXTERNAL_TABLE_BASE_DIR.varname, fullyQualifiedReplicaExternalBase); + localOverrides.put("fs.defaultFS", miniReplicaDFSCluster.getFileSystem().getUri().toString()); + localOverrides.put(HiveConf.ConfVars.HIVE_IN_TEST_REPL.varname, "true"); + localOverrides.putAll(replicaOverrides); + replica = new WarehouseInstance(LOG, miniReplicaDFSCluster, localOverrides); } @AfterClass @@ -114,10 +115,9 @@ public static void classLevelTearDown() throws IOException { replica.close(); } - private static void setReplicaExternalBase(FileSystem fs, Map confMap) throws IOException { + private static void setFullyQualifiedReplicaExternalTableBase(FileSystem fs) throws IOException { fs.mkdirs(REPLICA_EXTERNAL_BASE); fullyQualifiedReplicaExternalBase = fs.getFileStatus(REPLICA_EXTERNAL_BASE).getPath().toString(); - confMap.put(HiveConf.ConfVars.REPL_EXTERNAL_TABLE_BASE_DIR.varname, fullyQualifiedReplicaExternalBase); } @Before