5
0
mirror of https://github.com/apache/sqoop.git synced 2025-05-02 17:40:39 +08:00

SQOOP-3394: External Hive table tests should use unique external dir names

(Boglarka Egyed via Szabolcs Vasas)
This commit is contained in:
Szabolcs Vasas 2018-10-19 11:20:44 +02:00
parent 1f7b0bf841
commit 15097756c7

View File

@ -48,15 +48,15 @@ public class S3TestUtils {
private static final String BUCKET_TEMP_DIR = "/tmp/";
private static final String EXTERNAL_TABLE_DIR = "/externaldir";
private static final String TARGET_DIR_NAME_PREFIX = "/testdir";
private static final String HIVE_EXTERNAL_DIR_NAME_PREFIX = "/externaldir";
private static final String TEMPORARY_ROOTDIR_SUFFIX = "_temprootdir";
public static final String HIVE_EXTERNAL_TABLE_NAME = "test_external_table";
private static String targetDirName = TARGET_DIR_NAME_PREFIX;
private static String targetDirName;
private static String hiveExternalTableDirName;
private static final String[] COLUMN_NAMES = {"ID", "SUPERHERO", "COMICS", "DEBUT"};
private static final String[] COLUMN_TYPES = { "INT", "VARCHAR(25)", "VARCHAR(25)", "INT"};
@ -87,19 +87,27 @@ private static String getTemporaryCredentialsProviderClass() {
return TEMPORARY_CREDENTIALS_PROVIDER_CLASS;
}
private static void setUniqueTargetDirName() {
private static String generateUniqueDirName(String dirPrefix) {
String uuid = UUID.randomUUID().toString();
targetDirName = targetDirName + "-" + uuid;
return dirPrefix + "-" + uuid;
}
private static void resetTargetDirName() {
targetDirName = TARGET_DIR_NAME_PREFIX;
targetDirName = null;
}
private static void resetHiveExternalDirName() {
hiveExternalTableDirName = null;
}
private static String getTargetDirName() {
return targetDirName;
}
private static String getHiveExternalTableDirName() {
return hiveExternalTableDirName;
}
public static Path getTargetDirPath() {
String targetPathString = getBucketTempDirPath() + getTargetDirName();
return new Path(targetPathString);
@ -111,7 +119,7 @@ private static Path getBucketTempDirPath() {
}
public static Path getExternalTableDirPath() {
String externalTableDir = getBucketTempDirPath() + EXTERNAL_TABLE_DIR;
String externalTableDir = getBucketTempDirPath() + getHiveExternalTableDirName();
return new Path(externalTableDir);
}
@ -128,7 +136,7 @@ public static FileSystem setupS3ImportTestCase(S3CredentialGenerator s3Credentia
FileSystem s3Client = FileSystem.get(hadoopConf);
setUniqueTargetDirName();
targetDirName = generateUniqueDirName(TARGET_DIR_NAME_PREFIX);
cleanUpDirectory(s3Client, getTargetDirPath());
@ -157,6 +165,7 @@ private static void setHadoopConfigParametersForS3UnitTests(Configuration hadoop
}
public static HiveMiniCluster setupS3ExternalHiveTableImportTestCase(S3CredentialGenerator s3CredentialGenerator) {
hiveExternalTableDirName = generateUniqueDirName(HIVE_EXTERNAL_DIR_NAME_PREFIX);
HiveMiniCluster hiveMiniCluster = new HiveMiniCluster(new NoAuthenticationConfiguration());
hiveMiniCluster.start();
S3TestUtils.setS3CredentialsInConf(hiveMiniCluster.getConfig(), s3CredentialGenerator);
@ -425,5 +434,6 @@ public static void tearDownS3IncrementalImportTestCase(FileSystem s3Client) {
public static void tearDownS3ExternalHiveTableImportTestCase(FileSystem s3Client) {
cleanUpTargetDir(s3Client);
cleanUpDirectory(s3Client, getExternalTableDirPath());
resetHiveExternalDirName();
}
}