From 9fd1b8e84b6d7da96368bafcf9b79d1098e8b3a9 Mon Sep 17 00:00:00 2001 From: Guanghao Zhang Date: Wed, 19 Aug 2020 17:19:52 +0800 Subject: [PATCH] HBASE-24907 Turn off the balancer when test region admin api --- .../hbase/client/TestAsyncAdminBase.java | 29 ++++++++++--------- .../hbase/client/TestAsyncRegionAdminApi.java | 16 ++++++++++ .../client/TestAsyncRegionAdminApi2.java | 16 ++++++++++ ...tAsyncReplicationAdminApiWithClusters.java | 17 +---------- 4 files changed, 49 insertions(+), 29 deletions(-) diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAsyncAdminBase.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAsyncAdminBase.java index c57ef8dca7e6..13762f448eff 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAsyncAdminBase.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAsyncAdminBase.java @@ -103,24 +103,27 @@ public void setUp() throws Exception { @After public void tearDown() throws Exception { - admin.listTableNames(Pattern.compile(tableName.getNameAsString() + ".*"), false) - .whenCompleteAsync((tables, err) -> { - if (tables != null) { - tables.forEach(table -> { - try { - admin.disableTable(table).join(); - } catch (Exception e) { - LOG.debug("Table: " + tableName + " already disabled, so just deleting it."); - } - admin.deleteTable(table).join(); - }); - } - }, ForkJoinPool.commonPool()).join(); + cleanupTables(admin, Pattern.compile(tableName.getNameAsString() + ".*")); if (!admin.isBalancerEnabled().join()) { admin.balancerSwitch(true, true); } } + protected void cleanupTables(AsyncAdmin admin, Pattern pattern) { + admin.listTableNames(pattern, false).whenCompleteAsync((tables, err) -> { + if (tables != null) { + tables.forEach(table -> { + try { + admin.disableTable(table).join(); + } catch (Exception e) { + LOG.debug("Table: " + tableName + " already disabled, so just deleting it."); + } + admin.deleteTable(table).join(); + }); + } + }, ForkJoinPool.commonPool()).join(); + } + protected void createTableWithDefaultConf(TableName tableName) throws IOException { createTableWithDefaultConf(tableName, null); } diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.java index 33f1856a253b..c5744bd1fb77 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.java @@ -32,6 +32,7 @@ import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; import java.util.concurrent.atomic.AtomicInteger; +import java.util.regex.Pattern; import java.util.stream.Collectors; import org.apache.hadoop.conf.Configuration; @@ -53,6 +54,8 @@ import org.apache.hadoop.hbase.util.EnvironmentEdgeManager; import org.apache.hadoop.hbase.util.JVMClusterUtil; import org.apache.hadoop.hbase.util.Threads; +import org.junit.After; +import org.junit.BeforeClass; import org.junit.ClassRule; import org.junit.Test; import org.junit.experimental.categories.Category; @@ -71,6 +74,19 @@ public class TestAsyncRegionAdminApi extends TestAsyncAdminBase { public static final HBaseClassTestRule CLASS_RULE = HBaseClassTestRule.forClass(TestAsyncRegionAdminApi.class); + @BeforeClass + public static void setUpBeforeClass() throws Exception { + TestAsyncAdminBase.setUpBeforeClass(); + // Turn off the balancer. So region will not be moved when test region admin api. + ASYNC_CONN.getAdmin().balancerSwitch(false).join(); + } + + @Override + @After + public void tearDown() throws Exception { + cleanupTables(admin, Pattern.compile(tableName.getNameAsString() + ".*")); + } + @Test public void testAssignRegionAndUnassignRegion() throws Exception { createTableWithDefaultConf(tableName); diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi2.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi2.java index 7ea6b94cf82d..24beb144b219 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi2.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi2.java @@ -29,6 +29,7 @@ import java.util.Collections; import java.util.List; import java.util.concurrent.ExecutionException; +import java.util.regex.Pattern; import java.util.stream.Collectors; import org.apache.hadoop.hbase.AsyncMetaTableAccessor; import org.apache.hadoop.hbase.HBaseClassTestRule; @@ -39,6 +40,8 @@ import org.apache.hadoop.hbase.testclassification.LargeTests; import org.apache.hadoop.hbase.util.Bytes; import org.apache.hadoop.hbase.util.Threads; +import org.junit.After; +import org.junit.BeforeClass; import org.junit.ClassRule; import org.junit.Ignore; import org.junit.Test; @@ -59,6 +62,19 @@ public class TestAsyncRegionAdminApi2 extends TestAsyncAdminBase { public static final HBaseClassTestRule CLASS_RULE = HBaseClassTestRule.forClass(TestAsyncRegionAdminApi2.class); + @BeforeClass + public static void setUpBeforeClass() throws Exception { + TestAsyncAdminBase.setUpBeforeClass(); + // Turn off the balancer. So region will not be moved when test region admin api. + ASYNC_CONN.getAdmin().balancerSwitch(false).join(); + } + + @Override + @After + public void tearDown() throws Exception { + cleanupTables(admin, Pattern.compile(tableName.getNameAsString() + ".*")); + } + @Test public void testGetRegionLocation() throws Exception { RawAsyncHBaseAdmin rawAdmin = (RawAsyncHBaseAdmin) ASYNC_CONN.getAdmin(); diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAsyncReplicationAdminApiWithClusters.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAsyncReplicationAdminApiWithClusters.java index 8e60aad64fb0..dcb773c57d92 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAsyncReplicationAdminApiWithClusters.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAsyncReplicationAdminApiWithClusters.java @@ -28,8 +28,8 @@ import java.util.HashMap; import java.util.Map; import java.util.concurrent.CompletionException; -import java.util.concurrent.ForkJoinPool; import java.util.regex.Pattern; + import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.HBaseClassTestRule; import org.apache.hadoop.hbase.HBaseConfiguration; @@ -104,21 +104,6 @@ public void tearDown() throws Exception { cleanupTables(admin2, pattern); } - private void cleanupTables(AsyncAdmin admin, Pattern pattern) { - admin.listTableNames(pattern, false).whenCompleteAsync((tables, err) -> { - if (tables != null) { - tables.forEach(table -> { - try { - admin.disableTable(table).join(); - } catch (Exception e) { - LOG.debug("Table: " + tableName + " already disabled, so just deleting it."); - } - admin.deleteTable(table).join(); - }); - } - }, ForkJoinPool.commonPool()).join(); - } - private void createTableWithDefaultConf(AsyncAdmin admin, TableName tableName) { TableDescriptorBuilder builder = TableDescriptorBuilder.newBuilder(tableName); builder.setColumnFamily(ColumnFamilyDescriptorBuilder.of(FAMILY));