Repository: hbase Updated Branches: refs/heads/master 70f02dbc7 -> 6ab8ce982
Revert "HBASE-18352 Enable TestMasterOperationsForRegionReplicas#testCreateTableWithMultipleReplicas" Pushed prematurely This reverts commit 1a173f820b739d78e2634d0ded4b1f43188ddd27. Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/6ab8ce98 Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/6ab8ce98 Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/6ab8ce98 Branch: refs/heads/master Commit: 6ab8ce9829fde7ad95e36e3beb6a323140117765 Parents: 70f02db Author: Michael Stack <st...@apache.org> Authored: Thu Dec 14 14:17:20 2017 -0800 Committer: Michael Stack <st...@apache.org> Committed: Thu Dec 14 14:17:20 2017 -0800 ---------------------------------------------------------------------- .../hadoop/hbase/HBaseTestingUtility.java | 21 ++++-------- .../apache/hadoop/hbase/MiniHBaseCluster.java | 20 +++-------- .../TestMasterOperationsForRegionReplicas.java | 35 +++++++------------- 3 files changed, 23 insertions(+), 53 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hbase/blob/6ab8ce98/hbase-server/src/test/java/org/apache/hadoop/hbase/HBaseTestingUtility.java ---------------------------------------------------------------------- diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/HBaseTestingUtility.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/HBaseTestingUtility.java index db1219d..2488d20 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/HBaseTestingUtility.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/HBaseTestingUtility.java @@ -967,28 +967,21 @@ public class HBaseTestingUtility extends HBaseZKTestingUtility { } // Start the MiniHBaseCluster - return startMiniHBaseCluster(numMasters, numSlaves, null, masterClass, + return startMiniHBaseCluster(numMasters, numSlaves, masterClass, regionserverClass, create, withWALDir); } public MiniHBaseCluster startMiniHBaseCluster(final int numMasters, final int numSlaves) - throws IOException, InterruptedException { - return startMiniHBaseCluster(numMasters, numSlaves, null); - } - - public MiniHBaseCluster startMiniHBaseCluster(final int numMasters, final int numSlaves, - List<Integer> rsPorts) throws IOException, InterruptedException { - return startMiniHBaseCluster(numMasters, numSlaves, rsPorts, null, null, false, false); + throws IOException, InterruptedException{ + return startMiniHBaseCluster(numMasters, numSlaves, null, null, false, false); } /** * Starts up mini hbase cluster. Usually used after call to * {@link #startMiniCluster(int, int)} when doing stepped startup of clusters. * Usually you won't want this. You'll usually want {@link #startMiniCluster()}. - * @param rsPorts Ports that RegionServer should use; pass ports if you want to test cluster - * restart where for sure the regionservers come up on same address+port (but - * just with different startcode); by default mini hbase clusters choose new - * arbitrary ports on each cluster start. + * @param numMasters + * @param numSlaves * @param create Whether to create a * root or data directory path or not; will overwrite if exists already. * @return Reference to the hbase mini hbase cluster. @@ -997,7 +990,7 @@ public class HBaseTestingUtility extends HBaseZKTestingUtility { * @see {@link #startMiniCluster()} */ public MiniHBaseCluster startMiniHBaseCluster(final int numMasters, - final int numSlaves, List<Integer> rsPorts, Class<? extends HMaster> masterClass, + final int numSlaves, Class<? extends HMaster> masterClass, Class<? extends MiniHBaseCluster.MiniHBaseClusterRegionServer> regionserverClass, boolean create, boolean withWALDir) throws IOException, InterruptedException { @@ -1022,7 +1015,7 @@ public class HBaseTestingUtility extends HBaseZKTestingUtility { Configuration c = new Configuration(this.conf); TraceUtil.initTracer(c); this.hbaseCluster = - new MiniHBaseCluster(c, numMasters, numSlaves, rsPorts, masterClass, regionserverClass); + new MiniHBaseCluster(c, numMasters, numSlaves, masterClass, regionserverClass); // Don't leave here till we've done a successful scan of the hbase:meta Table t = getConnection().getTable(TableName.META_TABLE_NAME); ResultScanner s = t.getScanner(new Scan()); http://git-wip-us.apache.org/repos/asf/hbase/blob/6ab8ce98/hbase-server/src/test/java/org/apache/hadoop/hbase/MiniHBaseCluster.java ---------------------------------------------------------------------- diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/MiniHBaseCluster.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/MiniHBaseCluster.java index 3f85181..e02347d 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/MiniHBaseCluster.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/MiniHBaseCluster.java @@ -77,19 +77,10 @@ public class MiniHBaseCluster extends HBaseCluster { */ public MiniHBaseCluster(Configuration conf, int numMasters, int numRegionServers) throws IOException, InterruptedException { - this(conf, numMasters, numRegionServers, null, null, null); + this(conf, numMasters, numRegionServers, null, null); } - /** - * @param rsPorts Ports that RegionServer should use; pass ports if you want to test cluster - * restart where for sure the regionservers come up on same address+port (but - * just with different startcode); by default mini hbase clusters choose new - * arbitrary ports on each cluster start. - * @throws IOException - * @throws InterruptedException - */ public MiniHBaseCluster(Configuration conf, int numMasters, int numRegionServers, - List<Integer> rsPorts, Class<? extends HMaster> masterClass, Class<? extends MiniHBaseCluster.MiniHBaseClusterRegionServer> regionserverClass) throws IOException, InterruptedException { @@ -102,7 +93,7 @@ public class MiniHBaseCluster extends HBaseCluster { // Hadoop 2 CompatibilityFactory.getInstance(MetricsAssertHelper.class).init(); - init(numMasters, numRegionServers, rsPorts, masterClass, regionserverClass); + init(numMasters, numRegionServers, masterClass, regionserverClass); this.initialClusterStatus = getClusterStatus(); } @@ -216,7 +207,7 @@ public class MiniHBaseCluster extends HBaseCluster { } } - private void init(final int nMasterNodes, final int nRegionNodes, List<Integer> rsPorts, + private void init(final int nMasterNodes, final int nRegionNodes, Class<? extends HMaster> masterClass, Class<? extends MiniHBaseCluster.MiniHBaseClusterRegionServer> regionserverClass) throws IOException, InterruptedException { @@ -233,11 +224,8 @@ public class MiniHBaseCluster extends HBaseCluster { masterClass, regionserverClass); // manually add the regionservers as other users - for (int i = 0; i < nRegionNodes; i++) { + for (int i=0; i<nRegionNodes; i++) { Configuration rsConf = HBaseConfiguration.create(conf); - if (rsPorts != null) { - rsConf.setInt(HConstants.REGIONSERVER_PORT, rsPorts.get(i)); - } User user = HBaseTestingUtility.getDifferentUser(rsConf, ".hfs."+index++); hbaseCluster.addRegionServer(rsConf, i, user); http://git-wip-us.apache.org/repos/asf/hbase/blob/6ab8ce98/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestMasterOperationsForRegionReplicas.java ---------------------------------------------------------------------- diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestMasterOperationsForRegionReplicas.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestMasterOperationsForRegionReplicas.java index dd0fada..c4e9a0a 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestMasterOperationsForRegionReplicas.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestMasterOperationsForRegionReplicas.java @@ -19,13 +19,9 @@ package org.apache.hadoop.hbase.master; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; import java.io.IOException; -import java.util.ArrayList; -import java.util.Collection; import java.util.EnumSet; -import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; @@ -54,11 +50,9 @@ import org.apache.hadoop.hbase.client.RegionInfo; import org.apache.hadoop.hbase.client.RegionReplicaUtil; import org.apache.hadoop.hbase.client.Result; import org.apache.hadoop.hbase.client.Table; -import org.apache.hadoop.hbase.regionserver.HRegionServer; import org.apache.hadoop.hbase.testclassification.MasterTests; import org.apache.hadoop.hbase.testclassification.MediumTests; import org.apache.hadoop.hbase.util.Bytes; -import org.apache.hadoop.hbase.util.JVMClusterUtil; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Ignore; @@ -180,18 +174,12 @@ public class TestMasterOperationsForRegionReplicas { } validateFromSnapshotFromMeta(TEST_UTIL, tableName, numRegions, numReplica, ADMIN.getConnection()); + /* DISABLED!!!!! FOR NOW!!!! // Now shut the whole cluster down, and verify the assignments are kept so that the - // availability constraints are met. MiniHBaseCluster chooses arbitrary ports on each - // restart. This messes with our being able to test that we retain locality. Therefore, - // figure current cluster ports and pass them in on next cluster start so new cluster comes - // up at same coordinates -- and the assignment retention logic has a chance to cut in. - List<Integer> rsports = new ArrayList<>(); - for (JVMClusterUtil.RegionServerThread rst: - TEST_UTIL.getHBaseCluster().getLiveRegionServerThreads()) { - rsports.add(rst.getRegionServer().getRpcServer().getListenerAddress().getPort()); - } + // availability constraints are met. + TEST_UTIL.getConfiguration().setBoolean("hbase.master.startup.retainassign", true); TEST_UTIL.shutdownMiniHBaseCluster(); - TEST_UTIL.startMiniHBaseCluster(1, numSlaves, rsports); + TEST_UTIL.startMiniHBaseCluster(1, numSlaves); TEST_UTIL.waitTableEnabled(tableName); validateFromSnapshotFromMeta(TEST_UTIL, tableName, numRegions, numReplica, ADMIN.getConnection()); @@ -215,10 +203,10 @@ public class TestMasterOperationsForRegionReplicas { ADMIN.enableTable(tableName); LOG.info(ADMIN.getTableDescriptor(tableName).toString()); assert(ADMIN.isTableEnabled(tableName)); - List<RegionInfo> regions = TEST_UTIL.getMiniHBaseCluster().getMaster(). - getAssignmentManager().getRegionStates().getRegionsOfTable(tableName); - assertTrue("regions.size=" + regions.size() + ", numRegions=" + numRegions + - ", numReplica=" + numReplica, regions.size() == numRegions * (numReplica + 1)); + List<RegionInfo> regions = TEST_UTIL.getMiniHBaseCluster().getMaster() + .getAssignmentManager().getRegionStates().getRegionsOfTable(tableName); + assertTrue("regions.size=" + regions.size() + ", numRegions=" + numRegions + ", numReplica=" + numReplica, + regions.size() == numRegions * (numReplica + 1)); //decrease the replica(earlier, table was modified to have a replica count of numReplica + 1) ADMIN.disableTable(tableName); @@ -245,6 +233,7 @@ public class TestMasterOperationsForRegionReplicas { assert(defaultReplicas.size() == numRegions); Collection<Integer> counts = new HashSet<>(defaultReplicas.values()); assert(counts.size() == 1 && counts.contains(new Integer(numReplica))); + */ } finally { ADMIN.disableTable(tableName); ADMIN.deleteTable(tableName); @@ -353,14 +342,14 @@ public class TestMasterOperationsForRegionReplicas { connection); snapshot.initialize(); Map<RegionInfo, ServerName> regionToServerMap = snapshot.getRegionToRegionServerMap(); - assertEquals(regionToServerMap.size(), numRegions * numReplica + 1); + assertEquals(regionToServerMap.size(), numRegions * numReplica + 1); //'1' for the namespace Map<ServerName, List<RegionInfo>> serverToRegionMap = snapshot.getRegionServerToRegionMap(); - assertEquals("One Region Only", 1, serverToRegionMap.keySet().size()); + assertEquals(serverToRegionMap.keySet().size(), 2); // 1 rs + 1 master for (Map.Entry<ServerName, List<RegionInfo>> entry : serverToRegionMap.entrySet()) { if (entry.getKey().equals(TEST_UTIL.getHBaseCluster().getMaster().getServerName())) { continue; } - assertEquals(entry.getValue().size(), numRegions * numReplica + 1); + assertEquals(entry.getValue().size(), numRegions * numReplica); } } }