You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by ga...@apache.org on 2015/03/18 18:41:51 UTC
svn commit: r1667596 -
/hive/branches/hbase-metastore/itests/hive-unit/src/test/java/org/apache/hadoop/hive/metastore/hbase/
Author: gates
Date: Wed Mar 18 17:41:50 2015
New Revision: 1667596
URL: http://svn.apache.org/r1667596
Log:
HIVE-10008 Need to refactor itests for hbase metastore (Alan Gates)
Added:
hive/branches/hbase-metastore/itests/hive-unit/src/test/java/org/apache/hadoop/hive/metastore/hbase/IMockUtils.java
Modified:
hive/branches/hbase-metastore/itests/hive-unit/src/test/java/org/apache/hadoop/hive/metastore/hbase/TestHBaseImport.java
hive/branches/hbase-metastore/itests/hive-unit/src/test/java/org/apache/hadoop/hive/metastore/hbase/TestHBaseMetastoreSql.java
hive/branches/hbase-metastore/itests/hive-unit/src/test/java/org/apache/hadoop/hive/metastore/hbase/TestHBaseStoreIntegration.java
hive/branches/hbase-metastore/itests/hive-unit/src/test/java/org/apache/hadoop/hive/metastore/hbase/TestStorageDescriptorSharing.java
Added: hive/branches/hbase-metastore/itests/hive-unit/src/test/java/org/apache/hadoop/hive/metastore/hbase/IMockUtils.java
URL: http://svn.apache.org/viewvc/hive/branches/hbase-metastore/itests/hive-unit/src/test/java/org/apache/hadoop/hive/metastore/hbase/IMockUtils.java?rev=1667596&view=auto
==============================================================================
--- hive/branches/hbase-metastore/itests/hive-unit/src/test/java/org/apache/hadoop/hive/metastore/hbase/IMockUtils.java (added)
+++ hive/branches/hbase-metastore/itests/hive-unit/src/test/java/org/apache/hadoop/hive/metastore/hbase/IMockUtils.java Wed Mar 18 17:41:50 2015
@@ -0,0 +1,127 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.hadoop.hive.metastore.hbase;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.hadoop.hbase.HBaseTestingUtility;
+import org.apache.hadoop.hbase.client.HTableInterface;
+import org.apache.hadoop.hive.cli.CliSessionState;
+import org.apache.hadoop.hive.conf.HiveConf;
+import org.apache.hadoop.hive.ql.Driver;
+import org.apache.hadoop.hive.ql.session.SessionState;
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.MockitoAnnotations;
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * Integration tests with HBase Mini-cluster for HBaseStore
+ */
+public class IMockUtils {
+
+ private static final Log LOG = LogFactory.getLog(IMockUtils.class.getName());
+
+ protected static HBaseTestingUtility utility;
+ protected static HTableInterface tblTable;
+ protected static HTableInterface sdTable;
+ protected static HTableInterface partTable;
+ protected static HTableInterface dbTable;
+ protected static HTableInterface funcTable;
+ protected static HTableInterface roleTable;
+ protected static HTableInterface globalPrivsTable;
+ protected static HTableInterface principalRoleMapTable;
+ protected static Map<String, String> emptyParameters = new HashMap<String, String>();
+
+ @Mock
+ private HBaseConnection hconn;
+ protected HBaseStore store;
+ protected HiveConf conf;
+ protected Driver driver;
+
+ protected static void startMiniCluster() throws Exception {
+ utility = new HBaseTestingUtility();
+ utility.startMiniCluster();
+ byte[][] families = new byte[][]{HBaseReadWrite.CATALOG_CF, HBaseReadWrite.STATS_CF};
+ tblTable = utility.createTable(HBaseReadWrite.TABLE_TABLE.getBytes(HBaseUtils.ENCODING),
+ families);
+ sdTable = utility.createTable(HBaseReadWrite.SD_TABLE.getBytes(HBaseUtils.ENCODING),
+ HBaseReadWrite.CATALOG_CF);
+ partTable = utility.createTable(HBaseReadWrite.PART_TABLE.getBytes(HBaseUtils.ENCODING),
+ families);
+ dbTable = utility.createTable(HBaseReadWrite.DB_TABLE.getBytes(HBaseUtils.ENCODING),
+ HBaseReadWrite.CATALOG_CF);
+ funcTable = utility.createTable(HBaseReadWrite.FUNC_TABLE.getBytes(HBaseUtils.ENCODING),
+ HBaseReadWrite.CATALOG_CF);
+ roleTable = utility.createTable(HBaseReadWrite.ROLE_TABLE.getBytes(HBaseUtils.ENCODING),
+ HBaseReadWrite.CATALOG_CF);
+ globalPrivsTable =
+ utility.createTable(HBaseReadWrite.GLOBAL_PRIVS_TABLE.getBytes(HBaseUtils.ENCODING),
+ HBaseReadWrite.CATALOG_CF);
+ principalRoleMapTable =
+ utility.createTable(HBaseReadWrite.USER_TO_ROLE_TABLE.getBytes(HBaseUtils.ENCODING),
+ HBaseReadWrite.CATALOG_CF);
+ }
+
+ protected static void shutdownMiniCluster() throws Exception {
+ utility.shutdownMiniCluster();
+ }
+
+ protected void setupConnection() throws IOException {
+ MockitoAnnotations.initMocks(this);
+ Mockito.when(hconn.getHBaseTable(HBaseReadWrite.SD_TABLE)).thenReturn(sdTable);
+ Mockito.when(hconn.getHBaseTable(HBaseReadWrite.TABLE_TABLE)).thenReturn(tblTable);
+ Mockito.when(hconn.getHBaseTable(HBaseReadWrite.PART_TABLE)).thenReturn(partTable);
+ Mockito.when(hconn.getHBaseTable(HBaseReadWrite.DB_TABLE)).thenReturn(dbTable);
+ Mockito.when(hconn.getHBaseTable(HBaseReadWrite.FUNC_TABLE)).thenReturn(funcTable);
+ Mockito.when(hconn.getHBaseTable(HBaseReadWrite.ROLE_TABLE)).thenReturn(roleTable);
+ Mockito.when(hconn.getHBaseTable(HBaseReadWrite.GLOBAL_PRIVS_TABLE)).thenReturn(
+ globalPrivsTable);
+ Mockito.when(hconn.getHBaseTable(HBaseReadWrite.USER_TO_ROLE_TABLE)).thenReturn(
+ principalRoleMapTable);
+ conf = new HiveConf();
+ }
+
+ protected void setupDriver() {
+ conf.setVar(HiveConf.ConfVars.METASTORE_HBASE_CONNECTION_CLASS, HBaseReadWrite.TEST_CONN);
+ conf.setVar(HiveConf.ConfVars.DYNAMICPARTITIONINGMODE, "nonstrict");
+ conf.setVar(HiveConf.ConfVars.METASTORE_RAW_STORE_IMPL,
+ "org.apache.hadoop.hive.metastore.hbase.HBaseStore");
+ conf.setBoolVar(HiveConf.ConfVars.METASTORE_FASTPATH, true);
+ conf.setBoolVar(HiveConf.ConfVars.HIVE_SUPPORT_CONCURRENCY, false);
+ HBaseReadWrite.setTestConnection(hconn);
+
+ SessionState.start(new CliSessionState(conf));
+ driver = new Driver(conf);
+ }
+
+ protected void setupHBaseStore() {
+ // Turn off caching, as we want to test actual interaction with HBase
+ conf.setBoolean(HBaseReadWrite.NO_CACHE_CONF, true);
+ conf.setVar(HiveConf.ConfVars.METASTORE_HBASE_CONNECTION_CLASS, HBaseReadWrite.TEST_CONN);
+ HBaseReadWrite.setTestConnection(hconn);
+ // HBaseReadWrite hbase = HBaseReadWrite.getInstance(conf);
+ store = new HBaseStore();
+ store.setConf(conf);
+ }
+
+}
+
Modified: hive/branches/hbase-metastore/itests/hive-unit/src/test/java/org/apache/hadoop/hive/metastore/hbase/TestHBaseImport.java
URL: http://svn.apache.org/viewvc/hive/branches/hbase-metastore/itests/hive-unit/src/test/java/org/apache/hadoop/hive/metastore/hbase/TestHBaseImport.java?rev=1667596&r1=1667595&r2=1667596&view=diff
==============================================================================
--- hive/branches/hbase-metastore/itests/hive-unit/src/test/java/org/apache/hadoop/hive/metastore/hbase/TestHBaseImport.java (original)
+++ hive/branches/hbase-metastore/itests/hive-unit/src/test/java/org/apache/hadoop/hive/metastore/hbase/TestHBaseImport.java Wed Mar 18 17:41:50 2015
@@ -20,10 +20,6 @@ package org.apache.hadoop.hive.metastore
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.apache.hadoop.hbase.HBaseTestingUtility;
-import org.apache.hadoop.hbase.client.HConnection;
-import org.apache.hadoop.hbase.client.HTableInterface;
-import org.apache.hadoop.hive.conf.HiveConf;
import org.apache.hadoop.hive.metastore.ObjectStore;
import org.apache.hadoop.hive.metastore.RawStore;
import org.apache.hadoop.hive.metastore.api.Database;
@@ -42,83 +38,34 @@ import org.junit.AfterClass;
import org.junit.Assert;
import org.junit.Before;
import org.junit.BeforeClass;
-import org.junit.Rule;
import org.junit.Test;
-import org.junit.rules.ExpectedException;
-import org.mockito.Mock;
-import org.mockito.Mockito;
-import org.mockito.MockitoAnnotations;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
-import java.util.HashMap;
import java.util.List;
-import java.util.Map;
/**
* Test that import from an RDBMS based metastore works
*/
-public class TestHBaseImport {
+public class TestHBaseImport extends IMockUtils {
private static final Log LOG = LogFactory.getLog(TestHBaseStoreIntegration.class.getName());
- private static HBaseTestingUtility utility;
- private static HTableInterface tblTable;
- private static HTableInterface sdTable;
- private static HTableInterface partTable;
- private static HTableInterface dbTable;
- private static HTableInterface funcTable;
- private static HTableInterface roleTable;
- private static Map<String, String> emptyParameters = new HashMap<String, String>();
-
- @Rule public ExpectedException thrown = ExpectedException.none();
- @Mock private HBaseConnection hconn;
- private HBaseStore store;
- private HiveConf conf;
-
@BeforeClass
- public static void startMiniCluster() throws Exception {
- utility = new HBaseTestingUtility();
- utility.startMiniCluster();
- byte[][] families = new byte[][] {HBaseReadWrite.CATALOG_CF, HBaseReadWrite.STATS_CF};
- tblTable = utility.createTable(HBaseReadWrite.TABLE_TABLE.getBytes(HBaseUtils.ENCODING),
- families);
- sdTable = utility.createTable(HBaseReadWrite.SD_TABLE.getBytes(HBaseUtils.ENCODING),
- HBaseReadWrite.CATALOG_CF);
- partTable = utility.createTable(HBaseReadWrite.PART_TABLE.getBytes(HBaseUtils.ENCODING),
- families);
- dbTable = utility.createTable(HBaseReadWrite.DB_TABLE.getBytes(HBaseUtils.ENCODING),
- HBaseReadWrite.CATALOG_CF);
- funcTable = utility.createTable(HBaseReadWrite.FUNC_TABLE.getBytes(HBaseUtils.ENCODING),
- HBaseReadWrite.CATALOG_CF);
- roleTable = utility.createTable(HBaseReadWrite.ROLE_TABLE.getBytes(HBaseUtils.ENCODING),
- HBaseReadWrite.CATALOG_CF);
+ public static void startup() throws Exception {
+ IMockUtils.startMiniCluster();
}
@AfterClass
- public static void shutdownMiniCluster() throws Exception {
- utility.shutdownMiniCluster();
+ public static void shutdown() throws Exception {
+ IMockUtils.shutdownMiniCluster();
}
@Before
- public void setupConnection() throws IOException {
- MockitoAnnotations.initMocks(this);
- Mockito.when(hconn.getHBaseTable(HBaseReadWrite.SD_TABLE)).thenReturn(sdTable);
- Mockito.when(hconn.getHBaseTable(HBaseReadWrite.TABLE_TABLE)).thenReturn(tblTable);
- Mockito.when(hconn.getHBaseTable(HBaseReadWrite.PART_TABLE)).thenReturn(partTable);
- Mockito.when(hconn.getHBaseTable(HBaseReadWrite.DB_TABLE)).thenReturn(dbTable);
- Mockito.when(hconn.getHBaseTable(HBaseReadWrite.FUNC_TABLE)).thenReturn(funcTable);
- Mockito.when(hconn.getHBaseTable(HBaseReadWrite.ROLE_TABLE)).thenReturn(roleTable);
- conf = new HiveConf();
- // Turn off caching, as we want to test actual interaction with HBase
- conf.setBoolean(HBaseReadWrite.NO_CACHE_CONF, true);
- conf.setVar(HiveConf.ConfVars.METASTORE_HBASE_CONNECTION_CLASS, HBaseReadWrite.TEST_CONN);
- HBaseReadWrite.setTestConnection(hconn);
- /*HBaseReadWrite hbase = HBaseReadWrite.getInstance(conf);
- hbase.setConnection(hconn);*/
- store = new HBaseStore();
- store.setConf(conf);
+ public void setup() throws IOException {
+ setupConnection();
+ setupHBaseStore();
}
@Test
Modified: hive/branches/hbase-metastore/itests/hive-unit/src/test/java/org/apache/hadoop/hive/metastore/hbase/TestHBaseMetastoreSql.java
URL: http://svn.apache.org/viewvc/hive/branches/hbase-metastore/itests/hive-unit/src/test/java/org/apache/hadoop/hive/metastore/hbase/TestHBaseMetastoreSql.java?rev=1667596&r1=1667595&r2=1667596&view=diff
==============================================================================
--- hive/branches/hbase-metastore/itests/hive-unit/src/test/java/org/apache/hadoop/hive/metastore/hbase/TestHBaseMetastoreSql.java (original)
+++ hive/branches/hbase-metastore/itests/hive-unit/src/test/java/org/apache/hadoop/hive/metastore/hbase/TestHBaseMetastoreSql.java Wed Mar 18 17:41:50 2015
@@ -20,111 +20,37 @@ package org.apache.hadoop.hive.metastore
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.apache.hadoop.hbase.HBaseTestingUtility;
-import org.apache.hadoop.hbase.client.HConnection;
-import org.apache.hadoop.hbase.client.HTableInterface;
-import org.apache.hadoop.hive.cli.CliSessionState;
-import org.apache.hadoop.hive.conf.HiveConf;
-import org.apache.hadoop.hive.metastore.api.FieldSchema;
-import org.apache.hadoop.hive.metastore.api.Partition;
-import org.apache.hadoop.hive.metastore.api.SerDeInfo;
-import org.apache.hadoop.hive.metastore.api.StorageDescriptor;
-import org.apache.hadoop.hive.metastore.api.Table;
-import org.apache.hadoop.hive.ql.Driver;
import org.apache.hadoop.hive.ql.processors.CommandProcessorResponse;
-import org.apache.hadoop.hive.ql.session.SessionState;
import org.junit.AfterClass;
import org.junit.Assert;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Ignore;
-import org.junit.Rule;
import org.junit.Test;
-import org.junit.rules.ExpectedException;
-import org.mockito.Mock;
-import org.mockito.Mockito;
-import org.mockito.MockitoAnnotations;
import java.io.IOException;
-import java.security.MessageDigest;
-import java.security.NoSuchAlgorithmException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
/**
- * Integration tests with HBase Mini-cluster for HBaseStore
+ * Integration tests with HBase Mini-cluster using actual SQL
*/
-public class TestHBaseMetastoreSql {
+public class TestHBaseMetastoreSql extends IMockUtils {
private static final Log LOG = LogFactory.getLog(TestHBaseStoreIntegration.class.getName());
- private static HBaseTestingUtility utility;
- private static HTableInterface tblTable;
- private static HTableInterface sdTable;
- private static HTableInterface partTable;
- private static HTableInterface dbTable;
- private static HTableInterface roleTable;
- private static HTableInterface globalPrivsTable;
- private static HTableInterface principalRoleMapTable;
- private static Map<String, String> emptyParameters = new HashMap<String, String>();
-
- @Rule public ExpectedException thrown = ExpectedException.none();
- @Mock private HBaseConnection hconn;
- private HBaseStore store;
- private HiveConf conf;
- private Driver driver;
-
@BeforeClass
- public static void startMiniCluster() throws Exception {
- utility = new HBaseTestingUtility();
- utility.startMiniCluster();
- byte[][] families = new byte[][] {HBaseReadWrite.CATALOG_CF, HBaseReadWrite.STATS_CF};
- tblTable = utility.createTable(HBaseReadWrite.TABLE_TABLE.getBytes(HBaseUtils.ENCODING),
- families);
- sdTable = utility.createTable(HBaseReadWrite.SD_TABLE.getBytes(HBaseUtils.ENCODING),
- HBaseReadWrite.CATALOG_CF);
- partTable = utility.createTable(HBaseReadWrite.PART_TABLE.getBytes(HBaseUtils.ENCODING),
- families);
- dbTable = utility.createTable(HBaseReadWrite.DB_TABLE.getBytes(HBaseUtils.ENCODING),
- HBaseReadWrite.CATALOG_CF);
- roleTable = utility.createTable(HBaseReadWrite.ROLE_TABLE.getBytes(HBaseUtils.ENCODING),
- HBaseReadWrite.CATALOG_CF);
- globalPrivsTable =
- utility.createTable(HBaseReadWrite.GLOBAL_PRIVS_TABLE.getBytes(HBaseUtils.ENCODING),
- HBaseReadWrite.CATALOG_CF);
- principalRoleMapTable =
- utility.createTable(HBaseReadWrite.USER_TO_ROLE_TABLE.getBytes(HBaseUtils.ENCODING),
- HBaseReadWrite.CATALOG_CF);
+ public static void startup() throws Exception {
+ IMockUtils.startMiniCluster();
+
}
@AfterClass
- public static void shutdownMiniCluster() throws Exception {
- utility.shutdownMiniCluster();
+ public static void shutdown() throws Exception {
+ IMockUtils.shutdownMiniCluster();
}
@Before
- public void setupConnection() throws IOException {
- MockitoAnnotations.initMocks(this);
- Mockito.when(hconn.getHBaseTable(HBaseReadWrite.SD_TABLE)).thenReturn(sdTable);
- Mockito.when(hconn.getHBaseTable(HBaseReadWrite.TABLE_TABLE)).thenReturn(tblTable);
- Mockito.when(hconn.getHBaseTable(HBaseReadWrite.PART_TABLE)).thenReturn(partTable);
- Mockito.when(hconn.getHBaseTable(HBaseReadWrite.DB_TABLE)).thenReturn(dbTable);
- Mockito.when(hconn.getHBaseTable(HBaseReadWrite.ROLE_TABLE)).thenReturn(roleTable);
- Mockito.when(hconn.getHBaseTable(HBaseReadWrite.GLOBAL_PRIVS_TABLE)).thenReturn(globalPrivsTable);
- Mockito.when(hconn.getHBaseTable(HBaseReadWrite.USER_TO_ROLE_TABLE)).thenReturn(principalRoleMapTable);
- conf = new HiveConf();
- conf.setVar(HiveConf.ConfVars.METASTORE_HBASE_CONNECTION_CLASS, HBaseReadWrite.TEST_CONN);
- conf.setVar(HiveConf.ConfVars.DYNAMICPARTITIONINGMODE, "nonstrict");
- conf.setVar(HiveConf.ConfVars.METASTORE_RAW_STORE_IMPL,
- "org.apache.hadoop.hive.metastore.hbase.HBaseStore");
- conf.setBoolVar(HiveConf.ConfVars.METASTORE_FASTPATH, true);
- conf.setBoolVar(HiveConf.ConfVars.HIVE_SUPPORT_CONCURRENCY, false);
- HBaseReadWrite.setTestConnection(hconn);
-
- SessionState.start(new CliSessionState(conf));
- driver = new Driver(conf);
+ public void before() throws IOException {
+ setupConnection();
+ setupDriver();
}
@Test
@@ -143,5 +69,57 @@ public class TestHBaseMetastoreSql {
Assert.assertEquals(0, rsp.getResponseCode());
}
+ @Test
+ public void database() throws Exception {
+ CommandProcessorResponse rsp = driver.run("create database db");
+ Assert.assertEquals(0, rsp.getResponseCode());
+ rsp = driver.run("alter database db set owner user me");
+ Assert.assertEquals(0, rsp.getResponseCode());
+ rsp = driver.run("drop database db");
+ Assert.assertEquals(0, rsp.getResponseCode());
+ }
+
+ @Ignore
+ public void table() throws Exception {
+ driver.run("create table tbl (c int)");
+ CommandProcessorResponse rsp = driver.run("insert into table tbl values (3)");
+ Assert.assertEquals(0, rsp.getResponseCode());
+ rsp = driver.run("select * from tbl");
+ Assert.assertEquals(0, rsp.getResponseCode());
+ rsp = driver.run("alter table tbl set tblproperties ('example', 'true')");
+ Assert.assertEquals(0, rsp.getResponseCode());
+ rsp = driver.run("drop table tbl");
+ Assert.assertEquals(0, rsp.getResponseCode());
+ }
+
+ @Ignore
+ public void partitionedTable() throws Exception {
+ driver.run("create table parttbl (c int) partitioned by (ds string)");
+ CommandProcessorResponse rsp =
+ driver.run("insert into table parttbl partition(ds) values (1, 'today'), (2, 'yesterday')" +
+ ", (3, 'tomorrow')");
+ Assert.assertEquals(0, rsp.getResponseCode());
+ // Do it again, to check insert into existing partitions
+ rsp = driver.run("insert into table parttbl partition(ds) values (4, 'today'), (5, 'yesterday')"
+ + ", (6, 'tomorrow')");
+ Assert.assertEquals(0, rsp.getResponseCode());
+ rsp = driver.run("insert into table parttbl partition(ds = 'someday') values (1)");
+ Assert.assertEquals(0, rsp.getResponseCode());
+ rsp = driver.run("insert into table parttbl partition(ds = 'someday') values (2)");
+ Assert.assertEquals(0, rsp.getResponseCode());
+ rsp = driver.run("alter table parttbl add partition (ds = 'whenever')");
+ Assert.assertEquals(0, rsp.getResponseCode());
+ rsp = driver.run("insert into table parttbl partition(ds = 'whenever') values (2)");
+ Assert.assertEquals(0, rsp.getResponseCode());
+ rsp = driver.run("alter table parttbl touch partition (ds = 'whenever')");
+ Assert.assertEquals(0, rsp.getResponseCode());
+ rsp = driver.run("alter table parttbl drop partition (ds = 'whenever')");
+ Assert.assertEquals(0, rsp.getResponseCode());
+ rsp = driver.run("select * from parttbl");
+ Assert.assertEquals(0, rsp.getResponseCode());
+ rsp = driver.run("select * from parttbl where ds = 'today'");
+ Assert.assertEquals(0, rsp.getResponseCode());
+ }
+
}
Modified: hive/branches/hbase-metastore/itests/hive-unit/src/test/java/org/apache/hadoop/hive/metastore/hbase/TestHBaseStoreIntegration.java
URL: http://svn.apache.org/viewvc/hive/branches/hbase-metastore/itests/hive-unit/src/test/java/org/apache/hadoop/hive/metastore/hbase/TestHBaseStoreIntegration.java?rev=1667596&r1=1667595&r2=1667596&view=diff
==============================================================================
--- hive/branches/hbase-metastore/itests/hive-unit/src/test/java/org/apache/hadoop/hive/metastore/hbase/TestHBaseStoreIntegration.java (original)
+++ hive/branches/hbase-metastore/itests/hive-unit/src/test/java/org/apache/hadoop/hive/metastore/hbase/TestHBaseStoreIntegration.java Wed Mar 18 17:41:50 2015
@@ -20,10 +20,6 @@ package org.apache.hadoop.hive.metastore
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.apache.hadoop.hbase.HBaseTestingUtility;
-import org.apache.hadoop.hbase.client.HConnection;
-import org.apache.hadoop.hbase.client.HTableInterface;
-import org.apache.hadoop.hive.conf.HiveConf;
import org.apache.hadoop.hive.metastore.HiveMetaStore;
import org.apache.hadoop.hive.metastore.api.BinaryColumnStatsData;
import org.apache.hadoop.hive.metastore.api.BooleanColumnStatsData;
@@ -58,7 +54,6 @@ import org.apache.hadoop.hive.metastore.
import org.apache.hadoop.hive.metastore.api.StorageDescriptor;
import org.apache.hadoop.hive.metastore.api.StringColumnStatsData;
import org.apache.hadoop.hive.metastore.api.Table;
-import org.apache.hadoop.hive.metastore.model.MRoleMap;
import org.junit.AfterClass;
import org.junit.Assert;
import org.junit.Before;
@@ -67,89 +62,35 @@ import org.junit.Ignore;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
-import org.mockito.Mock;
-import org.mockito.Mockito;
-import org.mockito.MockitoAnnotations;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
-import java.util.HashMap;
import java.util.List;
-import java.util.Map;
/**
* Integration tests with HBase Mini-cluster for HBaseStore
*/
-public class TestHBaseStoreIntegration {
+public class TestHBaseStoreIntegration extends IMockUtils {
private static final Log LOG = LogFactory.getLog(TestHBaseStoreIntegration.class.getName());
- private static HBaseTestingUtility utility;
- private static HTableInterface tblTable;
- private static HTableInterface sdTable;
- private static HTableInterface partTable;
- private static HTableInterface dbTable;
- private static HTableInterface funcTable;
- private static HTableInterface roleTable;
- private static HTableInterface globalPrivsTable;
- private static HTableInterface principalRoleMapTable;
- private static Map<String, String> emptyParameters = new HashMap<String, String>();
-
@Rule public ExpectedException thrown = ExpectedException.none();
- @Mock private HBaseConnection hconn;
- private HBaseStore store;
- private HiveConf conf;
@BeforeClass
- public static void startMiniCluster() throws Exception {
- utility = new HBaseTestingUtility();
- utility.startMiniCluster();
- byte[][] families = new byte[][] {HBaseReadWrite.CATALOG_CF, HBaseReadWrite.STATS_CF};
- tblTable = utility.createTable(HBaseReadWrite.TABLE_TABLE.getBytes(HBaseUtils.ENCODING),
- families);
- sdTable = utility.createTable(HBaseReadWrite.SD_TABLE.getBytes(HBaseUtils.ENCODING),
- HBaseReadWrite.CATALOG_CF);
- partTable = utility.createTable(HBaseReadWrite.PART_TABLE.getBytes(HBaseUtils.ENCODING),
- families);
- dbTable = utility.createTable(HBaseReadWrite.DB_TABLE.getBytes(HBaseUtils.ENCODING),
- HBaseReadWrite.CATALOG_CF);
- funcTable = utility.createTable(HBaseReadWrite.FUNC_TABLE.getBytes(HBaseUtils.ENCODING),
- HBaseReadWrite.CATALOG_CF);
- roleTable = utility.createTable(HBaseReadWrite.ROLE_TABLE.getBytes(HBaseUtils.ENCODING),
- HBaseReadWrite.CATALOG_CF);
- globalPrivsTable =
- utility.createTable(HBaseReadWrite.GLOBAL_PRIVS_TABLE.getBytes(HBaseUtils.ENCODING),
- HBaseReadWrite.CATALOG_CF);
- principalRoleMapTable =
- utility.createTable(HBaseReadWrite.USER_TO_ROLE_TABLE.getBytes(HBaseUtils.ENCODING),
- HBaseReadWrite.CATALOG_CF);
+ public static void startup() throws Exception {
+ IMockUtils.startMiniCluster();
}
@AfterClass
- public static void shutdownMiniCluster() throws Exception {
- utility.shutdownMiniCluster();
+ public static void shutdown() throws Exception {
+ IMockUtils.shutdownMiniCluster();
}
@Before
- public void setupConnection() throws IOException {
- MockitoAnnotations.initMocks(this);
- Mockito.when(hconn.getHBaseTable(HBaseReadWrite.SD_TABLE)).thenReturn(sdTable);
- Mockito.when(hconn.getHBaseTable(HBaseReadWrite.TABLE_TABLE)).thenReturn(tblTable);
- Mockito.when(hconn.getHBaseTable(HBaseReadWrite.PART_TABLE)).thenReturn(partTable);
- Mockito.when(hconn.getHBaseTable(HBaseReadWrite.DB_TABLE)).thenReturn(dbTable);
- Mockito.when(hconn.getHBaseTable(HBaseReadWrite.FUNC_TABLE)).thenReturn(funcTable);
- Mockito.when(hconn.getHBaseTable(HBaseReadWrite.ROLE_TABLE)).thenReturn(roleTable);
- Mockito.when(hconn.getHBaseTable(HBaseReadWrite.GLOBAL_PRIVS_TABLE)).thenReturn(globalPrivsTable);
- Mockito.when(hconn.getHBaseTable(HBaseReadWrite.USER_TO_ROLE_TABLE)).thenReturn(principalRoleMapTable);
- conf = new HiveConf();
- // Turn off caching, as we want to test actual interaction with HBase
- conf.setBoolean(HBaseReadWrite.NO_CACHE_CONF, true);
- conf.setVar(HiveConf.ConfVars.METASTORE_HBASE_CONNECTION_CLASS, HBaseReadWrite.TEST_CONN);
- HBaseReadWrite.setTestConnection(hconn);
- // HBaseReadWrite hbase = HBaseReadWrite.getInstance(conf);
- store = new HBaseStore();
- store.setConf(conf);
+ public void setup() throws IOException {
+ setupConnection();
+ setupHBaseStore();
}
@Test
Modified: hive/branches/hbase-metastore/itests/hive-unit/src/test/java/org/apache/hadoop/hive/metastore/hbase/TestStorageDescriptorSharing.java
URL: http://svn.apache.org/viewvc/hive/branches/hbase-metastore/itests/hive-unit/src/test/java/org/apache/hadoop/hive/metastore/hbase/TestStorageDescriptorSharing.java?rev=1667596&r1=1667595&r2=1667596&view=diff
==============================================================================
--- hive/branches/hbase-metastore/itests/hive-unit/src/test/java/org/apache/hadoop/hive/metastore/hbase/TestStorageDescriptorSharing.java (original)
+++ hive/branches/hbase-metastore/itests/hive-unit/src/test/java/org/apache/hadoop/hive/metastore/hbase/TestStorageDescriptorSharing.java Wed Mar 18 17:41:50 2015
@@ -20,10 +20,6 @@ package org.apache.hadoop.hive.metastore
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.apache.hadoop.hbase.HBaseTestingUtility;
-import org.apache.hadoop.hbase.client.HConnection;
-import org.apache.hadoop.hbase.client.HTableInterface;
-import org.apache.hadoop.hive.conf.HiveConf;
import org.apache.hadoop.hive.metastore.api.FieldSchema;
import org.apache.hadoop.hive.metastore.api.Partition;
import org.apache.hadoop.hive.metastore.api.SerDeInfo;
@@ -33,91 +29,37 @@ import org.junit.AfterClass;
import org.junit.Assert;
import org.junit.Before;
import org.junit.BeforeClass;
-import org.junit.Rule;
import org.junit.Test;
-import org.junit.rules.ExpectedException;
-import org.mockito.Mock;
-import org.mockito.Mockito;
-import org.mockito.MockitoAnnotations;
import java.io.IOException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.ArrayList;
import java.util.Arrays;
-import java.util.HashMap;
import java.util.List;
-import java.util.Map;
/**
* Integration tests with HBase Mini-cluster for HBaseStore
*/
-public class TestStorageDescriptorSharing {
+public class TestStorageDescriptorSharing extends IMockUtils {
private static final Log LOG = LogFactory.getLog(TestHBaseStoreIntegration.class.getName());
- private static HBaseTestingUtility utility;
- private static HTableInterface tblTable;
- private static HTableInterface sdTable;
- private static HTableInterface partTable;
- private static HTableInterface dbTable;
- private static HTableInterface roleTable;
- private static HTableInterface globalPrivsTable;
- private static HTableInterface principalRoleMapTable;
- private static Map<String, String> emptyParameters = new HashMap<String, String>();
-
- @Rule public ExpectedException thrown = ExpectedException.none();
- @Mock private HBaseConnection hconn;
- private HBaseStore store;
- private HiveConf conf;
private MessageDigest md;
@BeforeClass
- public static void startMiniCluster() throws Exception {
- utility = new HBaseTestingUtility();
- utility.startMiniCluster();
- byte[][] families = new byte[][] {HBaseReadWrite.CATALOG_CF, HBaseReadWrite.STATS_CF};
- tblTable = utility.createTable(HBaseReadWrite.TABLE_TABLE.getBytes(HBaseUtils.ENCODING),
- families);
- sdTable = utility.createTable(HBaseReadWrite.SD_TABLE.getBytes(HBaseUtils.ENCODING),
- HBaseReadWrite.CATALOG_CF);
- partTable = utility.createTable(HBaseReadWrite.PART_TABLE.getBytes(HBaseUtils.ENCODING),
- families);
- dbTable = utility.createTable(HBaseReadWrite.DB_TABLE.getBytes(HBaseUtils.ENCODING),
- HBaseReadWrite.CATALOG_CF);
- roleTable = utility.createTable(HBaseReadWrite.ROLE_TABLE.getBytes(HBaseUtils.ENCODING),
- HBaseReadWrite.CATALOG_CF);
- globalPrivsTable =
- utility.createTable(HBaseReadWrite.GLOBAL_PRIVS_TABLE.getBytes(HBaseUtils.ENCODING),
- HBaseReadWrite.CATALOG_CF);
- principalRoleMapTable =
- utility.createTable(HBaseReadWrite.USER_TO_ROLE_TABLE.getBytes(HBaseUtils.ENCODING),
- HBaseReadWrite.CATALOG_CF);
+ public static void startup() throws Exception {
+ IMockUtils.startMiniCluster();
}
@AfterClass
- public static void shutdownMiniCluster() throws Exception {
- utility.shutdownMiniCluster();
+ public static void shutdown() throws Exception {
+ IMockUtils.shutdownMiniCluster();
}
@Before
- public void setupConnection() throws IOException {
- MockitoAnnotations.initMocks(this);
- Mockito.when(hconn.getHBaseTable(HBaseReadWrite.SD_TABLE)).thenReturn(sdTable);
- Mockito.when(hconn.getHBaseTable(HBaseReadWrite.TABLE_TABLE)).thenReturn(tblTable);
- Mockito.when(hconn.getHBaseTable(HBaseReadWrite.PART_TABLE)).thenReturn(partTable);
- Mockito.when(hconn.getHBaseTable(HBaseReadWrite.DB_TABLE)).thenReturn(dbTable);
- Mockito.when(hconn.getHBaseTable(HBaseReadWrite.ROLE_TABLE)).thenReturn(roleTable);
- Mockito.when(hconn.getHBaseTable(HBaseReadWrite.GLOBAL_PRIVS_TABLE)).thenReturn(globalPrivsTable);
- Mockito.when(hconn.getHBaseTable(HBaseReadWrite.USER_TO_ROLE_TABLE)).thenReturn(principalRoleMapTable);
- conf = new HiveConf();
- // Turn off caching, as we want to test actual interaction with HBase
- conf.setBoolean(HBaseReadWrite.NO_CACHE_CONF, true);
- conf.setVar(HiveConf.ConfVars.METASTORE_HBASE_CONNECTION_CLASS, HBaseReadWrite.TEST_CONN);
- HBaseReadWrite.setTestConnection(hconn);
- // HBaseReadWrite hbase = HBaseReadWrite.getInstance(conf);
- store = new HBaseStore();
- store.setConf(conf);
-
+ public void setup() throws IOException {
+ setupConnection();
+ setupHBaseStore();
try {
md = MessageDigest.getInstance("MD5");
} catch (NoSuchAlgorithmException e) {