This is an automated email from the ASF dual-hosted git repository.
veghlaci05 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hive.git
The following commit(s) were added to refs/heads/master by this push:
new 227db3df601 HIVE-25266: Fix TestWarehouseExternalDir (Kirti Ruge,
reviewed by Laszlo Vegh)
227db3df601 is described below
commit 227db3df60152d84994a91dfae789edfd1450bd3
Author: rkirtir <[email protected]>
AuthorDate: Wed May 24 13:28:29 2023 +0530
HIVE-25266: Fix TestWarehouseExternalDir (Kirti Ruge, reviewed by Laszlo
Vegh)
---
.../hadoop/hive/ql/TestWarehouseExternalDir.java | 149 +++++++++------------
1 file changed, 64 insertions(+), 85 deletions(-)
diff --git
a/itests/hive-unit/src/test/java/org/apache/hadoop/hive/ql/TestWarehouseExternalDir.java
b/itests/hive-unit/src/test/java/org/apache/hadoop/hive/ql/TestWarehouseExternalDir.java
index ba090ea096a..2208c214fd9 100644
---
a/itests/hive-unit/src/test/java/org/apache/hadoop/hive/ql/TestWarehouseExternalDir.java
+++
b/itests/hive-unit/src/test/java/org/apache/hadoop/hive/ql/TestWarehouseExternalDir.java
@@ -16,14 +16,14 @@
package org.apache.hadoop.hive.ql;
-import java.net.URI;
+
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.HashMap;
import java.util.Map;
-
+import org.apache.hadoop.hive.metastore.conf.MetastoreConf;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.hive.conf.HiveConf;
@@ -34,7 +34,7 @@ import org.apache.hadoop.hive.ql.metadata.Hive;
import org.apache.hadoop.hive.ql.metadata.Table;
import org.apache.hive.jdbc.miniHS2.MiniHS2;
import org.apache.hive.jdbc.miniHS2.MiniHS2.MiniClusterType;
-
+import org.apache.hadoop.hive.ql.session.SessionState;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Assert;
@@ -44,114 +44,92 @@ import org.junit.Test;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
-
+import org.apache.hadoop.hive.metastore.api.Database;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import org.apache.hadoop.hive.metastore.Warehouse;
-
[email protected]("HIVE-25266")
public class TestWarehouseExternalDir {
- private static final Logger LOG =
LoggerFactory.getLogger(TestWarehouseExternalDir.class);
+ private static final Logger LOG =
LoggerFactory.getLogger(TestWarehouseExternalDir.class);
- static MiniHS2 miniHS2;
- static Hive db;
- static Connection conn;
+ private static MiniHS2 miniHS2;
+ private static Hive db;
- String whRootExternal = "/wh_ext";
- Path whRootExternalPath;
- Path whRootManagedPath;
- FileSystem fs;
+ private static HiveConf conf;
+ private static Connection conn;
+ private static String whRootExternal = "/wh_ext";
+ private static String dbName = "twed_db1";
+ private static Path whRootExternalPath;
+ private static Path whRootManagedPath;
+
+ private Statement stmt;
@BeforeClass
public static void beforeTest() throws Exception {
+
+ HiveConf conf = new HiveConf();
+
+ conf.setBoolVar(ConfVars.HIVE_SUPPORT_CONCURRENCY, false);
+
+ conf.setVar(ConfVars.HIVE_METASTORE_WAREHOUSE_EXTERNAL, whRootExternal);
+
+ miniHS2 = new
MiniHS2.Builder().withMiniMR().withRemoteMetastore().withConf(conf).build();
+ miniHS2.start(new HashMap<String, String>());
+
+ FileSystem fs = miniHS2.getDfs().getFileSystem();
+ whRootExternalPath = fs.makeQualified(new Path(whRootExternal));
+ whRootManagedPath = fs.makeQualified(new Path(MetastoreConf.getVar(conf,
MetastoreConf.ConfVars.WAREHOUSE)));
+
+ LOG.info("fs: {}", miniHS2.getDfs().getFileSystem().getUri());
+ LOG.info("warehouse location: {}", whRootManagedPath);
+ LOG.info("whRootExternalPath: {}", whRootExternalPath);
+ db = Hive.get(conf);
+ createDb();
}
@AfterClass
- public static void afterTest() throws Exception {
+ public static void afterTest() throws Exception {
+
if (db != null) {
db.closeCurrent();
db = null;
}
-
- if (conn != null) {
- // TODO: delete tables/databases?
- try (Statement stmt = conn.createStatement()) {
- stmt.execute("drop database if exists twed_db1 cascade");
- }
- conn.close();
- conn = null;
- }
-
if (miniHS2 != null) {
miniHS2.stop();
miniHS2.cleanup();
- MiniHS2.cleanupLocalDir();
miniHS2 = null;
}
- }
-
- @Before
- public void setUp() throws Exception {
+ MiniHS2.cleanupLocalDir();
+ Hive.closeCurrent();
+ if (conn != null) {
+ conn.close();
+ }
}
@After
public void tearDown() throws Exception {
- }
-
- public TestWarehouseExternalDir() throws Exception {
- HiveConf conf = new HiveConf();
-
- // Specify the external warehouse root
- conf.setVar(ConfVars.HIVE_METASTORE_WAREHOUSE_EXTERNAL, whRootExternal);
-
- // Settings borrowed from TestJdbcWithMiniHS2
- conf.setBoolVar(ConfVars.HIVE_SUPPORT_CONCURRENCY, false);
- conf.setBoolVar(ConfVars.HIVE_SERVER2_LOGGING_OPERATION_ENABLED, false);
- conf.setBoolVar(ConfVars.HIVESTATSCOLAUTOGATHER, false);
-
- MiniHS2.Builder builder = new MiniHS2.Builder()
- .withConf(conf)
- .cleanupLocalDirOnStartup(true)
- .withMiniMR()
- .withRemoteMetastore();
- miniHS2 = builder.build();
-
- Map<String, String> confOverlay = new HashMap<String, String>();
- miniHS2.start(confOverlay);
-
- HiveConf dbConf = miniHS2.getHiveConf();
- db = Hive.get(dbConf);
-
- fs = miniHS2.getDfs().getFileSystem();
- whRootExternalPath = fs.makeQualified(new Path(whRootExternal));
- whRootManagedPath = fs.makeQualified(new
Path(dbConf.getVar(ConfVars.METASTOREWAREHOUSE)));
-
- LOG.info("fs: {}", miniHS2.getDfs().getFileSystem().getUri());
- LOG.info("warehouse location: {}", whRootManagedPath);
- LOG.info("whRootExternalPath: {}", whRootExternalPath);
-
- conn = getConnection();
- try (Statement stmt = conn.createStatement()) {
- stmt.execute("create database if not exists twed_db1");
+ if (conn != null) {
+ conn.close();
}
}
- private static Connection getConnection() throws Exception {
- return getConnection(miniHS2.getJdbcURL(),
System.getProperty("user.name"), "bar");
- }
-
- private static Connection getConnection(String dbName) throws Exception {
- return getConnection(miniHS2.getJdbcURL(dbName),
System.getProperty("user.name"), "bar");
+ @Before
+ public void setUp() throws Exception {
+ conn = DriverManager.getConnection(miniHS2.getJdbcURL(dbName),
+ System.getProperty("user.name"), "bar");
+ assertNotNull(conn);
}
- private static Connection getConnection(String jdbcURL, String user, String
pwd)
- throws SQLException {
- Connection conn = DriverManager.getConnection(jdbcURL, user, pwd);
+ private static void createDb() throws Exception {
+ conn = DriverManager.getConnection(miniHS2.getJdbcURL(),
System.getProperty("user.name"), "bar");
assertNotNull(conn);
- return conn;
+ Statement stmt2 = conn.createStatement();
+ stmt2.execute("DROP DATABASE IF EXISTS " + dbName + " CASCADE");
+ stmt2.execute("CREATE DATABASE " + dbName);
+ stmt2.close();
}
- static void checkTableLocation(Table table, Path expectedPath) throws
Exception {
+ void checkTableLocation(Table table, Path expectedPath) throws Exception {
LOG.info("Table {}: location {}", table.getTableName(),
table.getDataLocation());
assertEquals(table.getTableName(), expectedPath, table.getDataLocation());
assertTrue(miniHS2.getDfs().getFileSystem().exists(table.getDataLocation()));
@@ -161,8 +139,9 @@ public class TestWarehouseExternalDir {
public void testManagedPaths() throws Exception {
try (Statement stmt = conn.createStatement()) {
// Confirm default managed table paths
- stmt.execute("create table default.twed_1(c1 string)");
- Table tab = db.getTable("default", "twed_1");
+ stmt.execute("create table IF NOT EXISTS default.twed_1(c1 string)");
+
+ Table tab = db.getTable("default","twed_1");
checkTableLocation(tab, new Path(whRootManagedPath, "twed_1"));
stmt.execute("create table twed_db1.tab1(c1 string, c2 string)");
@@ -174,19 +153,19 @@ public class TestWarehouseExternalDir {
@Test
public void testExternalDefaultPaths() throws Exception {
try (Statement stmt = conn.createStatement()) {
- stmt.execute("create external table default.twed_ext1(c1 string)");
- Table tab = db.getTable("default", "twed_ext1");
+ stmt.execute("create external table IF NOT EXISTS default.twed_ext1(c1
string)");
+ Table tab = db.getTable("default","twed_ext1");
checkTableLocation(tab, new Path(whRootExternalPath, "twed_ext1"));
- stmt.execute("create external table twed_db1.twed_ext2(c1 string)");
+ stmt.execute("create external table twed_db1.twed_ext2(c1 string) ");
tab = db.getTable("twed_db1", "twed_ext2");
checkTableLocation(tab, new Path(new Path(whRootExternalPath,
"twed_db1.db"), "twed_ext2"));
- stmt.execute("create external table default.twed_ext3 like
default.twed_ext1");
+ stmt.execute("create external table default.twed_ext3 like
default.twed_ext1 ");
tab = db.getTable("default", "twed_ext3");
checkTableLocation(tab, new Path(whRootExternalPath, "twed_ext3"));
- stmt.execute("create external table twed_db1.twed_ext4 like
default.twed_ext1");
+ stmt.execute("create external table twed_db1.twed_ext4 like
default.twed_ext1 ");
tab = db.getTable("twed_db1", "twed_ext4");
checkTableLocation(tab, new Path(new Path(whRootExternalPath,
"twed_db1.db"), "twed_ext4"));
}