HBASE-18609 Apply ClusterStatus#getClusterStatus(EnumSet<Option>) in code base
Signed-off-by: Chia-Ping Tsai <chia7...@gmail.com> Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/5d6b20ad Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/5d6b20ad Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/5d6b20ad Branch: refs/heads/HBASE-18467 Commit: 5d6b20ad187a6564b7c009306257d455e33d9235 Parents: 93f5624 Author: Reid Chan <reidddc...@outlook.com> Authored: Wed Sep 13 15:08:24 2017 +0800 Committer: Chia-Ping Tsai <chia7...@gmail.com> Committed: Thu Sep 14 00:54:16 2017 +0800 ---------------------------------------------------------------------- .../apache/hadoop/hbase/client/AsyncAdmin.java | 6 ++-- .../apache/hadoop/hbase/client/HBaseAdmin.java | 10 ++++--- .../hadoop/hbase/client/RawAsyncHBaseAdmin.java | 4 ++- .../chaos/actions/MoveRegionsOfTableAction.java | 5 +++- .../mapreduce/IntegrationTestBulkLoad.java | 6 +++- .../test/IntegrationTestBigLinkedList.java | 6 +++- .../rest/StorageClusterStatusResource.java | 5 +++- .../rest/StorageClusterVersionResource.java | 6 +++- .../hadoop/hbase/rsgroup/TestRSGroupsBase.java | 18 ++++++++---- .../hbase/master/RegionPlacementMaintainer.java | 4 ++- .../org/apache/hadoop/hbase/tool/Canary.java | 16 +++++++---- .../org/apache/hadoop/hbase/util/HBaseFsck.java | 10 +++++-- .../hadoop/hbase/util/HBaseFsckRepair.java | 5 +++- .../apache/hadoop/hbase/util/RegionMover.java | 10 +++++-- .../hadoop/hbase/util/RegionSplitter.java | 4 ++- .../hadoop/hbase/HBaseTestingUtility.java | 6 +++- .../org/apache/hadoop/hbase/TestRegionLoad.java | 10 +++++-- .../apache/hadoop/hbase/client/TestAdmin2.java | 5 +++- .../hbase/client/TestAsyncClusterAdminApi.java | 4 ++- .../hadoop/hbase/client/TestFromClientSide.java | 6 ++-- .../hbase/client/TestMetaWithReplicas.java | 5 +++- .../TestMasterOperationsForRegionReplicas.java | 5 +++- .../TestFavoredStochasticBalancerPickers.java | 8 ++++-- .../TestFavoredStochasticLoadBalancer.java | 29 ++++++++++++-------- .../TestRegionServerReadRequestMetrics.java | 6 ++-- .../replication/TestMasterReplication.java | 5 +++- .../replication/TestReplicationStatus.java | 6 ++-- .../hadoop/hbase/util/BaseTestHBaseFsck.java | 4 ++- .../hbase/util/TestHBaseFsckReplicas.java | 7 +++-- .../util/TestMiniClusterLoadSequential.java | 5 +++- 30 files changed, 160 insertions(+), 66 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hbase/blob/5d6b20ad/hbase-client/src/main/java/org/apache/hadoop/hbase/client/AsyncAdmin.java ---------------------------------------------------------------------- diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/AsyncAdmin.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/AsyncAdmin.java index c652d3d..b2c6969 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/AsyncAdmin.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/AsyncAdmin.java @@ -845,21 +845,21 @@ public interface AsyncAdmin { * @return current master server name wrapped by {@link CompletableFuture} */ default CompletableFuture<ServerName> getMaster() { - return getClusterStatus().thenApply(ClusterStatus::getMaster); + return getClusterStatus(EnumSet.of(Option.MASTER)).thenApply(ClusterStatus::getMaster); } /** * @return current backup master list wrapped by {@link CompletableFuture} */ default CompletableFuture<Collection<ServerName>> getBackupMasters() { - return getClusterStatus().thenApply(ClusterStatus::getBackupMasters); + return getClusterStatus(EnumSet.of(Option.BACKUP_MASTERS)).thenApply(ClusterStatus::getBackupMasters); } /** * @return current live region servers list wrapped by {@link CompletableFuture} */ default CompletableFuture<Collection<ServerName>> getRegionServers() { - return getClusterStatus().thenApply(ClusterStatus::getServers); + return getClusterStatus(EnumSet.of(Option.LIVE_SERVERS)).thenApply(ClusterStatus::getServers); } /** http://git-wip-us.apache.org/repos/asf/hbase/blob/5d6b20ad/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java ---------------------------------------------------------------------- diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java index 692d189..40b42fa 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java @@ -2450,7 +2450,7 @@ public class HBaseAdmin implements Admin { @Override public String[] getMasterCoprocessors() { try { - return getClusterStatus().getMasterCoprocessors(); + return getClusterStatus(EnumSet.of(Option.MASTER_COPROCESSORS)).getMasterCoprocessors(); } catch (IOException e) { LOG.error("Could not getClusterStatus()",e); return null; @@ -3155,13 +3155,15 @@ public class HBaseAdmin implements Admin { @Override public void updateConfiguration() throws IOException { - for (ServerName server : this.getClusterStatus().getServers()) { + ClusterStatus status = getClusterStatus( + EnumSet.of(Option.LIVE_SERVERS, Option.MASTER, Option.BACKUP_MASTERS)); + for (ServerName server : status.getServers()) { updateConfiguration(server); } - updateConfiguration(this.getClusterStatus().getMaster()); + updateConfiguration(status.getMaster()); - for (ServerName server : this.getClusterStatus().getBackupMasters()) { + for (ServerName server : status.getBackupMasters()) { updateConfiguration(server); } } http://git-wip-us.apache.org/repos/asf/hbase/blob/5d6b20ad/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.java ---------------------------------------------------------------------- diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.java index b9dc30f..b1aa940 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.java @@ -2498,7 +2498,9 @@ public class RawAsyncHBaseAdmin implements AsyncAdmin { @Override public CompletableFuture<Void> updateConfiguration() { CompletableFuture<Void> future = new CompletableFuture<Void>(); - getClusterStatus().whenComplete( + getClusterStatus( + EnumSet.of(Option.LIVE_SERVERS, Option.MASTER, Option.BACKUP_MASTERS)) + .whenComplete( (status, err) -> { if (err != null) { future.completeExceptionally(err); http://git-wip-us.apache.org/repos/asf/hbase/blob/5d6b20ad/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/MoveRegionsOfTableAction.java ---------------------------------------------------------------------- diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/MoveRegionsOfTableAction.java b/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/MoveRegionsOfTableAction.java index c3793d0..47fcd84 100644 --- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/MoveRegionsOfTableAction.java +++ b/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/MoveRegionsOfTableAction.java @@ -20,12 +20,14 @@ package org.apache.hadoop.hbase.chaos.actions; import java.util.Collection; import java.util.Collections; +import java.util.EnumSet; import java.util.List; import org.apache.commons.lang3.RandomUtils; import org.apache.hadoop.hbase.HRegionInfo; import org.apache.hadoop.hbase.ServerName; import org.apache.hadoop.hbase.TableName; +import org.apache.hadoop.hbase.ClusterStatus.Option; import org.apache.hadoop.hbase.chaos.factories.MonkeyConstants; import org.apache.hadoop.hbase.client.Admin; import org.apache.hadoop.hbase.util.Bytes; @@ -55,7 +57,8 @@ public class MoveRegionsOfTableAction extends Action { } Admin admin = this.context.getHBaseIntegrationTestingUtility().getAdmin(); - Collection<ServerName> serversList = admin.getClusterStatus().getServers(); + Collection<ServerName> serversList = + admin.getClusterStatus(EnumSet.of(Option.LIVE_SERVERS)).getServers(); ServerName[] servers = serversList.toArray(new ServerName[serversList.size()]); LOG.info("Performing action: Move regions of table " + tableName); http://git-wip-us.apache.org/repos/asf/hbase/blob/5d6b20ad/hbase-it/src/test/java/org/apache/hadoop/hbase/mapreduce/IntegrationTestBulkLoad.java ---------------------------------------------------------------------- diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/mapreduce/IntegrationTestBulkLoad.java b/hbase-it/src/test/java/org/apache/hadoop/hbase/mapreduce/IntegrationTestBulkLoad.java index 6371dae..e95ed7c 100644 --- a/hbase-it/src/test/java/org/apache/hadoop/hbase/mapreduce/IntegrationTestBulkLoad.java +++ b/hbase-it/src/test/java/org/apache/hadoop/hbase/mapreduce/IntegrationTestBulkLoad.java @@ -24,6 +24,7 @@ import java.io.DataInput; import java.io.DataOutput; import java.io.IOException; import java.util.ArrayList; +import java.util.EnumSet; import java.util.List; import java.util.Map; import java.util.Random; @@ -38,6 +39,7 @@ import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Path; import org.apache.hadoop.hbase.Cell; import org.apache.hadoop.hbase.CellUtil; +import org.apache.hadoop.hbase.ClusterStatus.Option; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.HBaseTestingUtility; import org.apache.hadoop.hbase.HTableDescriptor; @@ -747,7 +749,9 @@ public class IntegrationTestBulkLoad extends IntegrationTestBase { // Scale this up on a real cluster if (util.isDistributedCluster()) { util.getConfiguration().setIfUnset(NUM_MAPS_KEY, - Integer.toString(util.getAdmin().getClusterStatus().getServersSize() * 10) + Integer.toString(util.getAdmin() + .getClusterStatus(EnumSet.of(Option.LIVE_SERVERS)) + .getServersSize() * 10) ); util.getConfiguration().setIfUnset(NUM_IMPORT_ROUNDS_KEY, "5"); } else { http://git-wip-us.apache.org/repos/asf/hbase/blob/5d6b20ad/hbase-it/src/test/java/org/apache/hadoop/hbase/test/IntegrationTestBigLinkedList.java ---------------------------------------------------------------------- diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/test/IntegrationTestBigLinkedList.java b/hbase-it/src/test/java/org/apache/hadoop/hbase/test/IntegrationTestBigLinkedList.java index 816cbea7..b9cc69d 100644 --- a/hbase-it/src/test/java/org/apache/hadoop/hbase/test/IntegrationTestBigLinkedList.java +++ b/hbase-it/src/test/java/org/apache/hadoop/hbase/test/IntegrationTestBigLinkedList.java @@ -26,6 +26,7 @@ import java.io.InterruptedIOException; import java.security.SecureRandom; import java.util.ArrayList; import java.util.Arrays; +import java.util.EnumSet; import java.util.Iterator; import java.util.List; import java.util.Random; @@ -50,6 +51,7 @@ import org.apache.hadoop.fs.LocatedFileStatus; import org.apache.hadoop.fs.Path; import org.apache.hadoop.fs.RemoteIterator; import org.apache.hadoop.hbase.Cell; +import org.apache.hadoop.hbase.ClusterStatus.Option; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.HBaseTestingUtility; import org.apache.hadoop.hbase.HColumnDescriptor; @@ -708,7 +710,9 @@ public class IntegrationTestBigLinkedList extends IntegrationTestBase { // If we want to pre-split compute how many splits. if (conf.getBoolean(HBaseTestingUtility.PRESPLIT_TEST_TABLE_KEY, HBaseTestingUtility.PRESPLIT_TEST_TABLE)) { - int numberOfServers = admin.getClusterStatus().getServers().size(); + int numberOfServers = + admin.getClusterStatus(EnumSet.of(Option.LIVE_SERVERS)) + .getServers().size(); if (numberOfServers == 0) { throw new IllegalStateException("No live regionservers"); } http://git-wip-us.apache.org/repos/asf/hbase/blob/5d6b20ad/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/StorageClusterStatusResource.java ---------------------------------------------------------------------- diff --git a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/StorageClusterStatusResource.java b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/StorageClusterStatusResource.java index 50327eb..865fab7 100644 --- a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/StorageClusterStatusResource.java +++ b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/StorageClusterStatusResource.java @@ -20,6 +20,7 @@ package org.apache.hadoop.hbase.rest; import java.io.IOException; +import java.util.EnumSet; import javax.ws.rs.GET; import javax.ws.rs.Produces; @@ -37,6 +38,7 @@ import org.apache.hadoop.hbase.ClusterStatus; import org.apache.hadoop.hbase.ServerLoad; import org.apache.hadoop.hbase.RegionLoad; import org.apache.hadoop.hbase.ServerName; +import org.apache.hadoop.hbase.ClusterStatus.Option; import org.apache.hadoop.hbase.rest.model.StorageClusterStatusModel; @InterfaceAudience.Private @@ -68,7 +70,8 @@ public class StorageClusterStatusResource extends ResourceBase { } servlet.getMetrics().incrementRequests(1); try { - ClusterStatus status = servlet.getAdmin().getClusterStatus(); + ClusterStatus status = servlet.getAdmin().getClusterStatus( + EnumSet.of(Option.LIVE_SERVERS, Option.DEAD_SERVERS)); StorageClusterStatusModel model = new StorageClusterStatusModel(); model.setRegions(status.getRegionsCount()); model.setRequests(status.getRequestsCount()); http://git-wip-us.apache.org/repos/asf/hbase/blob/5d6b20ad/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/StorageClusterVersionResource.java ---------------------------------------------------------------------- diff --git a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/StorageClusterVersionResource.java b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/StorageClusterVersionResource.java index 347f85b..42f531c 100644 --- a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/StorageClusterVersionResource.java +++ b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/StorageClusterVersionResource.java @@ -20,6 +20,7 @@ package org.apache.hadoop.hbase.rest; import java.io.IOException; +import java.util.EnumSet; import javax.ws.rs.GET; import javax.ws.rs.Produces; @@ -33,6 +34,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.yetus.audience.InterfaceAudience; +import org.apache.hadoop.hbase.ClusterStatus.Option; import org.apache.hadoop.hbase.rest.model.StorageClusterVersionModel; @InterfaceAudience.Private @@ -64,7 +66,9 @@ public class StorageClusterVersionResource extends ResourceBase { servlet.getMetrics().incrementRequests(1); try { StorageClusterVersionModel model = new StorageClusterVersionModel(); - model.setVersion(servlet.getAdmin().getClusterStatus().getHBaseVersion()); + model.setVersion( + servlet.getAdmin().getClusterStatus(EnumSet.of(Option.HBASE_VERSION)) + .getHBaseVersion()); ResponseBuilder response = Response.ok(model); response.cacheControl(cacheControl); servlet.getMetrics().incrementSucessfulGetRequests(1); http://git-wip-us.apache.org/repos/asf/hbase/blob/5d6b20ad/hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.java ---------------------------------------------------------------------- diff --git a/hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.java b/hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.java index 367bb98..6a5d68b 100644 --- a/hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.java +++ b/hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.java @@ -25,6 +25,7 @@ import static org.junit.Assert.fail; import java.io.IOException; import java.security.SecureRandom; +import java.util.EnumSet; import java.util.HashSet; import java.util.LinkedList; import java.util.List; @@ -45,6 +46,7 @@ import org.apache.hadoop.hbase.RegionLoad; import org.apache.hadoop.hbase.ServerName; import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.Waiter; +import org.apache.hadoop.hbase.ClusterStatus.Option; import org.apache.hadoop.hbase.client.Admin; import org.apache.hadoop.hbase.client.ClusterConnection; import org.apache.hadoop.hbase.constraint.ConstraintException; @@ -263,7 +265,8 @@ public abstract class TestRSGroupsBase { // return the real number of region servers, excluding the master embedded region server in 2.0+ public int getNumServers() throws IOException { - ClusterStatus status = admin.getClusterStatus(); + ClusterStatus status = + admin.getClusterStatus(EnumSet.of(Option.MASTER, Option.LIVE_SERVERS)); ServerName master = status.getMaster(); int count = 0; for (ServerName sn : status.getServers()) { @@ -489,8 +492,9 @@ public abstract class TestRSGroupsBase { } //get server which is not a member of new group ServerName targetServer = null; - for(ServerName server : admin.getClusterStatus().getServers()) { - if(!newGroup.containsServer(server.getAddress())) { + for (ServerName server : admin.getClusterStatus(EnumSet.of(Option.LIVE_SERVERS)) + .getServers()) { + if (!newGroup.containsServer(server.getAddress())) { targetServer = server; break; } @@ -518,7 +522,8 @@ public abstract class TestRSGroupsBase { return getTableRegionMap().get(tableName) != null && getTableRegionMap().get(tableName).size() == 6 && - admin.getClusterStatus().getRegionsInTransition().size() < 1; + admin.getClusterStatus(EnumSet.of(Option.REGIONS_IN_TRANSITION)) + .getRegionsInTransition().size() < 1; } }); @@ -722,7 +727,7 @@ public abstract class TestRSGroupsBase { //get server which is not a member of new group ServerName targetServer = null; - for(ServerName server : admin.getClusterStatus().getServers()) { + for(ServerName server : admin.getClusterStatus(EnumSet.of(Option.LIVE_SERVERS)).getServers()) { if(!newGroup.containsServer(server.getAddress()) && !rsGroupAdmin.getRSGroupInfo("master").containsServer(server.getAddress())) { targetServer = server; @@ -785,7 +790,8 @@ public abstract class TestRSGroupsBase { return getTableRegionMap().get(tableName) != null && getTableRegionMap().get(tableName).size() == 5 && getTableServerRegionMap().get(tableName).size() == 1 && - admin.getClusterStatus().getRegionsInTransition().size() < 1; + admin.getClusterStatus(EnumSet.of(Option.REGIONS_IN_TRANSITION)) + .getRegionsInTransition().size() < 1; } }); http://git-wip-us.apache.org/repos/asf/hbase/blob/5d6b20ad/hbase-server/src/main/java/org/apache/hadoop/hbase/master/RegionPlacementMaintainer.java ---------------------------------------------------------------------- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/RegionPlacementMaintainer.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/RegionPlacementMaintainer.java index 30127dc..d23cf7d 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/RegionPlacementMaintainer.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/RegionPlacementMaintainer.java @@ -22,6 +22,7 @@ package org.apache.hadoop.hbase.master; import java.io.IOException; import java.text.DecimalFormat; import java.util.ArrayList; +import java.util.EnumSet; import java.util.HashMap; import java.util.HashSet; import java.util.List; @@ -47,6 +48,7 @@ import org.apache.hadoop.hbase.HConstants; import org.apache.hadoop.hbase.HRegionInfo; import org.apache.hadoop.hbase.ServerName; import org.apache.hadoop.hbase.TableName; +import org.apache.hadoop.hbase.ClusterStatus.Option; import org.apache.hadoop.hbase.client.Admin; import org.apache.hadoop.hbase.client.ClusterConnection; import org.apache.hadoop.hbase.client.Connection; @@ -206,7 +208,7 @@ public class RegionPlacementMaintainer { // Get the all the region servers List<ServerName> servers = new ArrayList<>(); try (Admin admin = this.connection.getAdmin()) { - servers.addAll(admin.getClusterStatus().getServers()); + servers.addAll(admin.getClusterStatus(EnumSet.of(Option.LIVE_SERVERS)).getServers()); } LOG.info("Start to generate assignment plan for " + numRegions + http://git-wip-us.apache.org/repos/asf/hbase/blob/5d6b20ad/hbase-server/src/main/java/org/apache/hadoop/hbase/tool/Canary.java ---------------------------------------------------------------------- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/tool/Canary.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/tool/Canary.java index 1ecd7c6..916b1d8 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/tool/Canary.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/tool/Canary.java @@ -30,6 +30,7 @@ import java.net.InetSocketAddress; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; +import java.util.EnumSet; import java.util.HashMap; import java.util.HashSet; import java.util.LinkedList; @@ -56,6 +57,7 @@ import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.AuthUtil; import org.apache.hadoop.hbase.ChoreService; import org.apache.hadoop.hbase.ClusterStatus; +import org.apache.hadoop.hbase.ClusterStatus.Option; import org.apache.hadoop.hbase.DoNotRetryIOException; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.HColumnDescriptor; @@ -1177,7 +1179,9 @@ public final class Canary implements Tool { private void checkWriteTableDistribution() throws IOException { if (!admin.tableExists(writeTableName)) { - int numberOfServers = admin.getClusterStatus().getServers().size(); + int numberOfServers = + admin.getClusterStatus(EnumSet.of(Option.LIVE_SERVERS)).getServers() + .size(); if (numberOfServers == 0) { throw new IllegalStateException("No live regionservers"); } @@ -1188,7 +1192,8 @@ public final class Canary implements Tool { admin.enableTable(writeTableName); } - ClusterStatus status = admin.getClusterStatus(); + ClusterStatus status = + admin.getClusterStatus(EnumSet.of(Option.LIVE_SERVERS, Option.MASTER)); int numberOfServers = status.getServersSize(); if (status.getServers().contains(status.getMaster())) { numberOfServers -= 1; @@ -1491,11 +1496,12 @@ public final class Canary implements Tool { table.close(); } - //get any live regionservers not serving any regions - for (ServerName rs : this.admin.getClusterStatus().getServers()) { + // get any live regionservers not serving any regions + for (ServerName rs : this.admin + .getClusterStatus(EnumSet.of(Option.LIVE_SERVERS)).getServers()) { String rsName = rs.getHostname(); if (!rsAndRMap.containsKey(rsName)) { - rsAndRMap.put(rsName, Collections.<HRegionInfo>emptyList()); + rsAndRMap.put(rsName, Collections.<HRegionInfo> emptyList()); } } } catch (IOException e) { http://git-wip-us.apache.org/repos/asf/hbase/blob/5d6b20ad/hbase-server/src/main/java/org/apache/hadoop/hbase/util/HBaseFsck.java ---------------------------------------------------------------------- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/util/HBaseFsck.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/util/HBaseFsck.java index a768070..53160e6 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/util/HBaseFsck.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/util/HBaseFsck.java @@ -42,6 +42,7 @@ import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.Comparator; +import java.util.EnumSet; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; @@ -85,6 +86,7 @@ import org.apache.hadoop.hbase.Abortable; import org.apache.hadoop.hbase.Cell; import org.apache.hadoop.hbase.CellUtil; import org.apache.hadoop.hbase.ClusterStatus; +import org.apache.hadoop.hbase.ClusterStatus.Option; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.HBaseInterfaceAudience; import org.apache.hadoop.hbase.HConstants; @@ -519,7 +521,9 @@ public class HBaseFsck extends Configured implements Closeable { connection = (ClusterConnection)ConnectionFactory.createConnection(getConf()); admin = connection.getAdmin(); meta = connection.getTable(TableName.META_TABLE_NAME); - status = admin.getClusterStatus(); + status = admin.getClusterStatus(EnumSet.of(Option.LIVE_SERVERS, + Option.DEAD_SERVERS, Option.MASTER, Option.BACKUP_MASTERS, + Option.REGIONS_IN_TRANSITION, Option.HBASE_VERSION)); } /** @@ -2440,7 +2444,7 @@ public class HBaseFsck extends Configured implements Closeable { LOG.info("Patching hbase:meta with .regioninfo: " + hbi.getHdfsHRI()); int numReplicas = admin.getTableDescriptor(hbi.getTableName()).getRegionReplication(); HBaseFsckRepair.fixMetaHoleOnlineAndAddReplicas(getConf(), hbi.getHdfsHRI(), - admin.getClusterStatus().getServers(), numReplicas); + admin.getClusterStatus(EnumSet.of(Option.LIVE_SERVERS)).getServers(), numReplicas); tryAssignmentRepair(hbi, "Trying to reassign region..."); } @@ -2467,7 +2471,7 @@ public class HBaseFsck extends Configured implements Closeable { LOG.info("Patching hbase:meta with with .regioninfo: " + hbi.getHdfsHRI()); int numReplicas = admin.getTableDescriptor(hbi.getTableName()).getRegionReplication(); HBaseFsckRepair.fixMetaHoleOnlineAndAddReplicas(getConf(), hbi.getHdfsHRI(), - admin.getClusterStatus().getServers(), numReplicas); + admin.getClusterStatus(EnumSet.of(Option.LIVE_SERVERS)).getServers(), numReplicas); tryAssignmentRepair(hbi, "Trying to fix unassigned region..."); } http://git-wip-us.apache.org/repos/asf/hbase/blob/5d6b20ad/hbase-server/src/main/java/org/apache/hadoop/hbase/util/HBaseFsckRepair.java ---------------------------------------------------------------------- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/util/HBaseFsckRepair.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/util/HBaseFsckRepair.java index 8fa21bc..651d6e5 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/util/HBaseFsckRepair.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/util/HBaseFsckRepair.java @@ -20,6 +20,7 @@ package org.apache.hadoop.hbase.util; import java.io.IOException; import java.util.Collection; +import java.util.EnumSet; import java.util.List; import java.util.Random; @@ -33,6 +34,7 @@ import org.apache.hadoop.hbase.ServerName; import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.ZooKeeperConnectionException; import org.apache.yetus.audience.InterfaceAudience; +import org.apache.hadoop.hbase.ClusterStatus.Option; import org.apache.hadoop.hbase.client.Admin; import org.apache.hadoop.hbase.client.ClusterConnection; import org.apache.hadoop.hbase.client.Connection; @@ -123,7 +125,8 @@ public class HBaseFsckRepair { while (EnvironmentEdgeManager.currentTime() < expiration) { try { boolean inTransition = false; - for (RegionState rs: admin.getClusterStatus().getRegionsInTransition()) { + for (RegionState rs : admin.getClusterStatus(EnumSet.of(Option.REGIONS_IN_TRANSITION)) + .getRegionsInTransition()) { if (rs.getRegion().equals(region)) { inTransition = true; break; http://git-wip-us.apache.org/repos/asf/hbase/blob/5d6b20ad/hbase-server/src/main/java/org/apache/hadoop/hbase/util/RegionMover.java ---------------------------------------------------------------------- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/util/RegionMover.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/util/RegionMover.java index 70fec5b..4d9e24c 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/util/RegionMover.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/util/RegionMover.java @@ -29,6 +29,7 @@ import java.io.FileReader; import java.io.IOException; import java.util.ArrayList; import java.util.Collections; +import java.util.EnumSet; import java.util.Iterator; import java.util.List; import java.util.Locale; @@ -51,6 +52,7 @@ import org.apache.hadoop.hbase.HRegionInfo; import org.apache.hadoop.hbase.ServerName; import org.apache.hadoop.hbase.TableName; import org.apache.yetus.audience.InterfaceAudience; +import org.apache.hadoop.hbase.ClusterStatus.Option; import org.apache.hadoop.hbase.client.Admin; import org.apache.hadoop.hbase.client.Connection; import org.apache.hadoop.hbase.client.ConnectionFactory; @@ -745,8 +747,9 @@ public class RegionMover extends AbstractHBaseTool { * @throws IOException */ private void stripMaster(ArrayList<String> regionServers, Admin admin) throws IOException { - String masterHostname = admin.getClusterStatus().getMaster().getHostname(); - int masterPort = admin.getClusterStatus().getMaster().getPort(); + ServerName master = admin.getClusterStatus(EnumSet.of(Option.MASTER)).getMaster(); + String masterHostname = master.getHostname(); + int masterPort = master.getPort(); try { stripServer(regionServers, masterHostname, masterPort); } catch (Exception e) { @@ -821,7 +824,8 @@ public class RegionMover extends AbstractHBaseTool { * @throws IOException */ private ArrayList<String> getServers(Admin admin) throws IOException { - ArrayList<ServerName> serverInfo = new ArrayList<>(admin.getClusterStatus().getServers()); + ArrayList<ServerName> serverInfo = new ArrayList<>( + admin.getClusterStatus(EnumSet.of(Option.LIVE_SERVERS)).getServers()); ArrayList<String> regionServers = new ArrayList<>(serverInfo.size()); for (ServerName server : serverInfo) { regionServers.add(server.getServerName()); http://git-wip-us.apache.org/repos/asf/hbase/blob/5d6b20ad/hbase-server/src/main/java/org/apache/hadoop/hbase/util/RegionSplitter.java ---------------------------------------------------------------------- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/util/RegionSplitter.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/util/RegionSplitter.java index 799c39e..c31f72b 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/util/RegionSplitter.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/util/RegionSplitter.java @@ -23,6 +23,7 @@ import java.math.BigInteger; import java.util.Arrays; import java.util.Collection; +import java.util.EnumSet; import java.util.LinkedList; import java.util.List; import java.util.Map; @@ -46,6 +47,7 @@ import org.apache.hadoop.fs.Path; import org.apache.hadoop.hbase.client.ColumnFamilyDescriptor; import org.apache.hadoop.hbase.client.TableDescriptor; import org.apache.hadoop.hbase.ClusterStatus; +import org.apache.hadoop.hbase.ClusterStatus.Option; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.HRegionInfo; import org.apache.hadoop.hbase.HRegionLocation; @@ -417,7 +419,7 @@ public class RegionSplitter { */ private static int getRegionServerCount(final Connection connection) throws IOException { try (Admin admin = connection.getAdmin()) { - ClusterStatus status = admin.getClusterStatus(); + ClusterStatus status = admin.getClusterStatus(EnumSet.of(Option.LIVE_SERVERS)); Collection<ServerName> servers = status.getServers(); return servers == null || servers.isEmpty()? 0: servers.size(); } http://git-wip-us.apache.org/repos/asf/hbase/blob/5d6b20ad/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 a957c01..71f6338 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 @@ -37,6 +37,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.Collections; +import java.util.EnumSet; import java.util.HashSet; import java.util.List; import java.util.Map; @@ -59,6 +60,7 @@ import org.apache.commons.logging.impl.Log4JLogger; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; +import org.apache.hadoop.hbase.ClusterStatus.Option; import org.apache.hadoop.hbase.Waiter.ExplainingPredicate; import org.apache.hadoop.hbase.Waiter.Predicate; import org.apache.yetus.audience.InterfaceAudience; @@ -4037,7 +4039,9 @@ public class HBaseTestingUtility extends HBaseCommonTestingUtility { // create a table a pre-splits regions. // The number of splits is set as: // region servers * regions per region server). - int numberOfServers = admin.getClusterStatus().getServers().size(); + int numberOfServers = + admin.getClusterStatus(EnumSet.of(Option.LIVE_SERVERS)).getServers() + .size(); if (numberOfServers == 0) { throw new IllegalStateException("No live regionservers"); } http://git-wip-us.apache.org/repos/asf/hbase/blob/5d6b20ad/hbase-server/src/test/java/org/apache/hadoop/hbase/TestRegionLoad.java ---------------------------------------------------------------------- diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/TestRegionLoad.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/TestRegionLoad.java index b787eb5..d482484 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/TestRegionLoad.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/TestRegionLoad.java @@ -23,6 +23,7 @@ import static org.junit.Assert.*; import org.apache.hadoop.hbase.shaded.com.google.common.collect.Lists; import org.apache.hadoop.hbase.shaded.com.google.common.collect.Maps; +import org.apache.hadoop.hbase.ClusterStatus.Option; import org.apache.hadoop.hbase.client.Admin; import org.apache.hadoop.hbase.client.Table; import org.apache.hadoop.hbase.testclassification.MediumTests; @@ -35,6 +36,7 @@ import org.junit.experimental.categories.Category; import java.io.IOException; import java.util.Collection; +import java.util.EnumSet; import java.util.List; import java.util.Map; @@ -78,7 +80,8 @@ public class TestRegionLoad { public void testRegionLoad() throws Exception { // Check if regions match with the regionLoad from the server - for (ServerName serverName : admin.getClusterStatus().getServers()) { + for (ServerName serverName : admin + .getClusterStatus(EnumSet.of(Option.LIVE_SERVERS)).getServers()) { List<HRegionInfo> regions = admin.getOnlineRegions(serverName); Collection<RegionLoad> regionLoads = admin.getRegionLoad(serverName).values(); checkRegionsAndRegionLoads(regions, regionLoads); @@ -89,14 +92,15 @@ public class TestRegionLoad { List<HRegionInfo> tableRegions = admin.getTableRegions(table); List<RegionLoad> regionLoads = Lists.newArrayList(); - for (ServerName serverName : admin.getClusterStatus().getServers()) { + for (ServerName serverName : admin + .getClusterStatus(EnumSet.of(Option.LIVE_SERVERS)).getServers()) { regionLoads.addAll(admin.getRegionLoad(serverName, table).values()); } checkRegionsAndRegionLoads(tableRegions, regionLoads); } // Check RegionLoad matches the regionLoad from ClusterStatus - ClusterStatus clusterStatus = admin.getClusterStatus(); + ClusterStatus clusterStatus = admin.getClusterStatus(EnumSet.of(Option.LIVE_SERVERS)); for (ServerName serverName : clusterStatus.getServers()) { ServerLoad serverLoad = clusterStatus.getLoad(serverName); Map<byte[], RegionLoad> regionLoads = admin.getRegionLoad(serverName); http://git-wip-us.apache.org/repos/asf/hbase/blob/5d6b20ad/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAdmin2.java ---------------------------------------------------------------------- diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAdmin2.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAdmin2.java index cfc4911..e95f382 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAdmin2.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAdmin2.java @@ -26,6 +26,7 @@ import static org.junit.Assert.fail; import java.io.IOException; import java.util.ArrayList; import java.util.Collection; +import java.util.EnumSet; import java.util.List; import java.util.Random; import java.util.concurrent.ExecutorService; @@ -37,6 +38,7 @@ import java.util.concurrent.atomic.AtomicInteger; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.hbase.ClusterStatus.Option; import org.apache.hadoop.hbase.HBaseTestingUtility; import org.apache.hadoop.hbase.HColumnDescriptor; import org.apache.hadoop.hbase.HConstants; @@ -701,7 +703,8 @@ public class TestAdmin2 { assertTrue(drainingServers.isEmpty()); // Drain all region servers. - Collection<ServerName> clusterServers = admin.getClusterStatus().getServers(); + Collection<ServerName> clusterServers = + admin.getClusterStatus(EnumSet.of(Option.LIVE_SERVERS)).getServers(); drainingServers = new ArrayList<>(); for (ServerName server : clusterServers) { drainingServers.add(server); http://git-wip-us.apache.org/repos/asf/hbase/blob/5d6b20ad/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAsyncClusterAdminApi.java ---------------------------------------------------------------------- diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAsyncClusterAdminApi.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAsyncClusterAdminApi.java index 1a0ceed..1acfcde 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAsyncClusterAdminApi.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAsyncClusterAdminApi.java @@ -27,6 +27,7 @@ import java.nio.file.Path; import java.nio.file.StandardCopyOption; import java.util.ArrayList; import java.util.Collection; +import java.util.EnumSet; import java.util.List; import java.util.Map; import java.util.Optional; @@ -40,6 +41,7 @@ import org.apache.hadoop.hbase.RegionLoad; import org.apache.hadoop.hbase.ServerLoad; import org.apache.hadoop.hbase.ServerName; import org.apache.hadoop.hbase.TableName; +import org.apache.hadoop.hbase.ClusterStatus.Option; import org.apache.hadoop.hbase.regionserver.HRegionServer; import org.apache.hadoop.hbase.regionserver.Region; import org.apache.hadoop.hbase.testclassification.ClientTests; @@ -240,7 +242,7 @@ public class TestAsyncClusterAdminApi extends TestAsyncAdminBase { } // Check RegionLoad matches the regionLoad from ClusterStatus - ClusterStatus clusterStatus = admin.getClusterStatus().get(); + ClusterStatus clusterStatus = admin.getClusterStatus(EnumSet.of(Option.LIVE_SERVERS)).get(); for (ServerName serverName : clusterStatus.getServers()) { ServerLoad serverLoad = clusterStatus.getLoad(serverName); compareRegionLoads(serverLoad.getRegionsLoad().values(), admin.getRegionLoads(serverName) http://git-wip-us.apache.org/repos/asf/hbase/blob/5d6b20ad/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestFromClientSide.java ---------------------------------------------------------------------- diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestFromClientSide.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestFromClientSide.java index 4e2b65a..ae4f8a8 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestFromClientSide.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestFromClientSide.java @@ -31,6 +31,7 @@ import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; +import java.util.EnumSet; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; @@ -68,6 +69,7 @@ import org.apache.hadoop.hbase.RegionLocations; import org.apache.hadoop.hbase.ServerName; import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.Waiter; +import org.apache.hadoop.hbase.ClusterStatus.Option; import org.apache.hadoop.hbase.client.metrics.ScanMetrics; import org.apache.hadoop.hbase.coprocessor.CoprocessorHost; import org.apache.hadoop.hbase.coprocessor.MultiRowMutationEndpoint; @@ -4423,8 +4425,8 @@ public class TestFromClientSide { boolean tablesOnMaster = LoadBalancer.isTablesOnMaster(TEST_UTIL.getConfiguration()); try (Admin admin = conn.getAdmin()) { assertTrue(admin.tableExists(tableName)); - assertTrue(admin.getClusterStatus().getServersSize() == - SLAVES + (tablesOnMaster? 1: 0)); + assertTrue(admin.getClusterStatus(EnumSet.of(Option.LIVE_SERVERS)) + .getServersSize() == SLAVES + (tablesOnMaster ? 1 : 0)); } } http://git-wip-us.apache.org/repos/asf/hbase/blob/5d6b20ad/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestMetaWithReplicas.java ---------------------------------------------------------------------- diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestMetaWithReplicas.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestMetaWithReplicas.java index 3847e6e..6f590d1 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestMetaWithReplicas.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestMetaWithReplicas.java @@ -26,6 +26,7 @@ import static org.junit.Assert.fail; import java.io.IOException; import java.util.Arrays; import java.util.Collection; +import java.util.EnumSet; import java.util.List; import java.util.concurrent.ExecutorService; @@ -34,6 +35,7 @@ import org.apache.commons.logging.LogFactory; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.Abortable; import org.apache.hadoop.hbase.CategoryBasedTimeout; +import org.apache.hadoop.hbase.ClusterStatus.Option; import org.apache.hadoop.hbase.HBaseTestingUtility; import org.apache.hadoop.hbase.HConstants; import org.apache.hadoop.hbase.HRegionInfo; @@ -406,7 +408,8 @@ public class TestMetaWithReplicas { // check that the data in the znode is parseable (this would also mean the znode exists) byte[] data = ZKUtil.getData(zkw, primaryMetaZnode); ServerName currentServer = ProtobufUtil.toServerName(data); - Collection<ServerName> liveServers = TEST_UTIL.getAdmin().getClusterStatus().getServers(); + Collection<ServerName> liveServers = TEST_UTIL.getAdmin() + .getClusterStatus(EnumSet.of(Option.LIVE_SERVERS)).getServers(); ServerName moveToServer = null; for (ServerName s : liveServers) { if (!currentServer.equals(s)) { http://git-wip-us.apache.org/repos/asf/hbase/blob/5d6b20ad/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 8b0874a..a8b9998 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 @@ -23,6 +23,7 @@ import static org.junit.Assert.assertTrue; import java.io.IOException; import java.util.Collection; +import java.util.EnumSet; import java.util.HashMap; import java.util.HashSet; import java.util.List; @@ -33,6 +34,7 @@ import java.util.concurrent.atomic.AtomicInteger; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.hbase.ClusterStatus.Option; import org.apache.hadoop.hbase.HBaseTestingUtility; import org.apache.hadoop.hbase.HColumnDescriptor; import org.apache.hadoop.hbase.HConstants; @@ -80,7 +82,8 @@ public class TestMasterOperationsForRegionReplicas { TEST_UTIL.startMiniCluster(numSlaves); CONNECTION = ConnectionFactory.createConnection(TEST_UTIL.getConfiguration()); ADMIN = CONNECTION.getAdmin(); - while(ADMIN.getClusterStatus().getServers().size() < numSlaves) { + while(ADMIN.getClusterStatus(EnumSet.of(Option.LIVE_SERVERS)) + .getServers().size() < numSlaves) { Thread.sleep(100); } } http://git-wip-us.apache.org/repos/asf/hbase/blob/5d6b20ad/hbase-server/src/test/java/org/apache/hadoop/hbase/master/balancer/TestFavoredStochasticBalancerPickers.java ---------------------------------------------------------------------- diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/balancer/TestFavoredStochasticBalancerPickers.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/balancer/TestFavoredStochasticBalancerPickers.java index fef7d30..8f2e893 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/balancer/TestFavoredStochasticBalancerPickers.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/balancer/TestFavoredStochasticBalancerPickers.java @@ -25,6 +25,7 @@ import static org.junit.Assert.assertTrue; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; +import java.util.EnumSet; import java.util.List; import java.util.Map; @@ -44,6 +45,7 @@ import org.apache.hadoop.hbase.testclassification.LargeTests; import org.apache.hadoop.hbase.ServerName; import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.Waiter; +import org.apache.hadoop.hbase.ClusterStatus.Option; import org.apache.hadoop.hbase.favored.FavoredNodesManager; import org.apache.hadoop.hbase.master.LoadBalancer; import org.apache.hadoop.hbase.master.balancer.BaseLoadBalancer.Cluster; @@ -131,14 +133,14 @@ public class TestFavoredStochasticBalancerPickers extends BalancerTestBase { TEST_UTIL.getHBaseCluster().startRegionServerAndWait(60000); Map<ServerName, List<HRegionInfo>> serverAssignments = Maps.newHashMap(); - ClusterStatus status = admin.getClusterStatus(); + ClusterStatus status = admin.getClusterStatus(EnumSet.of(Option.LIVE_SERVERS)); for (ServerName sn : status.getServers()) { if (!ServerName.isSameAddress(sn, masterServerName)) { serverAssignments.put(sn, admin.getOnlineRegions(sn)); } } RegionLocationFinder regionFinder = new RegionLocationFinder(); - regionFinder.setClusterStatus(admin.getClusterStatus()); + regionFinder.setClusterStatus(admin.getClusterStatus(EnumSet.of(Option.LIVE_SERVERS))); regionFinder.setConf(conf); regionFinder.setServices(TEST_UTIL.getMiniHBaseCluster().getMaster()); Cluster cluster = new Cluster(serverAssignments, null, regionFinder, new RackManager(conf)); @@ -182,7 +184,7 @@ public class TestFavoredStochasticBalancerPickers extends BalancerTestBase { int maxRegions = 0; ServerName maxLoadedServer = null; - for (ServerName sn : admin.getClusterStatus().getServers()) { + for (ServerName sn : admin.getClusterStatus(EnumSet.of(Option.LIVE_SERVERS)).getServers()) { if (admin.getOnlineRegions(sn).size() > maxRegions) { if (excludeNodes == null || !doesMatchExcludeNodes(excludeNodes, sn)) { maxRegions = admin.getOnlineRegions(sn).size(); http://git-wip-us.apache.org/repos/asf/hbase/blob/5d6b20ad/hbase-server/src/test/java/org/apache/hadoop/hbase/master/balancer/TestFavoredStochasticLoadBalancer.java ---------------------------------------------------------------------- diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/balancer/TestFavoredStochasticLoadBalancer.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/balancer/TestFavoredStochasticLoadBalancer.java index ddba7ce..991cf72 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/balancer/TestFavoredStochasticLoadBalancer.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/balancer/TestFavoredStochasticLoadBalancer.java @@ -25,6 +25,7 @@ import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import java.io.IOException; +import java.util.EnumSet; import java.util.List; import java.util.Map; import java.util.Map.Entry; @@ -40,6 +41,7 @@ import org.apache.hadoop.hbase.HRegionInfo; import org.apache.hadoop.hbase.HTableDescriptor; import org.apache.hadoop.hbase.MiniHBaseCluster; import org.apache.hadoop.hbase.Waiter; +import org.apache.hadoop.hbase.ClusterStatus.Option; import org.apache.hadoop.hbase.client.Admin; import org.apache.hadoop.hbase.favored.FavoredNodeAssignmentHelper; import org.apache.hadoop.hbase.favored.FavoredNodesPlan; @@ -151,7 +153,8 @@ public class TestFavoredStochasticLoadBalancer extends BalancerTestBase { List<HRegionInfo> regions = admin.getTableRegions(tableName); regions.addAll(admin.getTableRegions(TableName.META_TABLE_NAME)); regions.addAll(admin.getTableRegions(TableName.NAMESPACE_TABLE_NAME)); - List<ServerName> servers = Lists.newArrayList(admin.getClusterStatus().getServers()); + List<ServerName> servers = Lists.newArrayList( + admin.getClusterStatus(EnumSet.of(Option.LIVE_SERVERS)).getServers()); Map<ServerName, List<HRegionInfo>> map = balancer.roundRobinAssignment(regions, servers); for (List<HRegionInfo> regionInfos : map.values()) { regions.removeAll(regionInfos); @@ -177,10 +180,12 @@ public class TestFavoredStochasticLoadBalancer extends BalancerTestBase { assertEquals(FavoredNodeAssignmentHelper.FAVORED_NODES_NUM, favNodes.size()); } - Map<ServerName, List<Integer>> replicaLoadMap = - fnm.getReplicaLoad(Lists.newArrayList(admin.getClusterStatus().getServers())); + Map<ServerName, List<Integer>> replicaLoadMap = fnm.getReplicaLoad( + Lists.newArrayList(admin.getClusterStatus(EnumSet.of(Option.LIVE_SERVERS)) + .getServers())); assertTrue("Not all replica load collected.", - admin.getClusterStatus().getServers().size() == replicaLoadMap.size()); + admin.getClusterStatus(EnumSet.of(Option.LIVE_SERVERS)) + .getServers().size() == replicaLoadMap.size()); for (Entry<ServerName, List<Integer>> entry : replicaLoadMap.entrySet()) { assertTrue(entry.getValue().size() == FavoredNodeAssignmentHelper.FAVORED_NODES_NUM); assertTrue(entry.getValue().get(0) >= 0); @@ -190,10 +195,12 @@ public class TestFavoredStochasticLoadBalancer extends BalancerTestBase { admin.disableTable(TableName.valueOf(tableName)); admin.deleteTable(TableName.valueOf(tableName)); - replicaLoadMap = - fnm.getReplicaLoad(Lists.newArrayList(admin.getClusterStatus().getServers())); + replicaLoadMap = fnm.getReplicaLoad(Lists.newArrayList( + admin.getClusterStatus(EnumSet.of(Option.LIVE_SERVERS)).getServers())); assertTrue("replica load found " + replicaLoadMap.size() + " instead of 0.", - replicaLoadMap.size() == admin.getClusterStatus().getServers().size()); + replicaLoadMap.size() == admin + .getClusterStatus(EnumSet.of(Option.LIVE_SERVERS)).getServers() + .size()); } @Test @@ -213,7 +220,7 @@ public class TestFavoredStochasticLoadBalancer extends BalancerTestBase { LoadBalancer balancer = master.getLoadBalancer(); ServerName destination = balancer.randomAssignment(hri, Lists.newArrayList(admin - .getClusterStatus().getServers())); + .getClusterStatus(EnumSet.of(Option.LIVE_SERVERS)).getServers())); assertNotNull(destination); List<ServerName> favoredNodes = fnm.getFavoredNodes(hri); assertNotNull(favoredNodes); @@ -279,7 +286,7 @@ public class TestFavoredStochasticLoadBalancer extends BalancerTestBase { assertNotNull(currentFN); List<ServerName> serversForNewFN = Lists.newArrayList(); - for (ServerName sn : admin.getClusterStatus().getServers()) { + for (ServerName sn : admin.getClusterStatus(EnumSet.of(Option.LIVE_SERVERS)).getServers()) { serversForNewFN.add(ServerName.valueOf(sn.getHostname(), sn.getPort(), NON_STARTCODE)); } for (ServerName sn : currentFN) { @@ -379,7 +386,7 @@ public class TestFavoredStochasticLoadBalancer extends BalancerTestBase { // Regenerate FN and assign, everything else should be fine List<ServerName> serversForNewFN = Lists.newArrayList(); - for (ServerName sn : admin.getClusterStatus().getServers()) { + for (ServerName sn : admin.getClusterStatus(EnumSet.of(Option.LIVE_SERVERS)).getServers()) { serversForNewFN.add(ServerName.valueOf(sn.getHostname(), sn.getPort(), NON_STARTCODE)); } @@ -473,7 +480,7 @@ public class TestFavoredStochasticLoadBalancer extends BalancerTestBase { // Regenerate FN and assign, everything else should be fine List<ServerName> serversForNewFN = Lists.newArrayList(); - for (ServerName sn : admin.getClusterStatus().getServers()) { + for (ServerName sn : admin.getClusterStatus(EnumSet.of(Option.LIVE_SERVERS)).getServers()) { serversForNewFN.add(ServerName.valueOf(sn.getHostname(), sn.getPort(), NON_STARTCODE)); } http://git-wip-us.apache.org/repos/asf/hbase/blob/5d6b20ad/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.java ---------------------------------------------------------------------- diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.java index 2cd1559..7822bc7 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.java @@ -18,6 +18,7 @@ */ package org.apache.hadoop.hbase.regionserver; +import org.apache.hadoop.hbase.ClusterStatus.Option; import org.apache.hadoop.hbase.HBaseTestingUtility; import org.apache.hadoop.hbase.HColumnDescriptor; import org.apache.hadoop.hbase.HRegionInfo; @@ -51,6 +52,7 @@ import org.junit.experimental.categories.Category; import java.io.IOException; import java.util.Collection; +import java.util.EnumSet; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -93,7 +95,7 @@ public class TestRegionServerReadRequestMetrics { TEST_UTIL.getConfiguration().setBoolean(LoadBalancer.SYSTEM_TABLES_ON_MASTER, true); TEST_UTIL.startMiniCluster(); admin = TEST_UTIL.getAdmin(); - serverNames = admin.getClusterStatus().getServers(); + serverNames = admin.getClusterStatus(EnumSet.of(Option.LIVE_SERVERS)).getServers(); table = createTable(); putData(); tableRegions = admin.getTableRegions(TABLE_NAME); @@ -154,7 +156,7 @@ public class TestRegionServerReadRequestMetrics { boolean metricsUpdated = false; for (int i = 0; i < MAX_TRY; i++) { for (ServerName serverName : serverNames) { - serverLoad = admin.getClusterStatus().getLoad(serverName); + serverLoad = admin.getClusterStatus(EnumSet.of(Option.LIVE_SERVERS)).getLoad(serverName); Map<byte[], RegionLoad> regionsLoad = serverLoad.getRegionsLoad(); for (HRegionInfo tableRegion : tableRegions) { http://git-wip-us.apache.org/repos/asf/hbase/blob/5d6b20ad/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/TestMasterReplication.java ---------------------------------------------------------------------- diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/TestMasterReplication.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/TestMasterReplication.java index a0c3c5a..e3a5b19 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/TestMasterReplication.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/TestMasterReplication.java @@ -25,6 +25,7 @@ import static org.junit.Assert.fail; import java.io.Closeable; import java.io.IOException; import java.util.Arrays; +import java.util.EnumSet; import java.util.List; import java.util.Random; import java.util.concurrent.CountDownLatch; @@ -47,6 +48,7 @@ import org.apache.hadoop.hbase.ServerLoad; import org.apache.hadoop.hbase.ServerName; import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.Waiter; +import org.apache.hadoop.hbase.ClusterStatus.Option; import org.apache.hadoop.hbase.client.Admin; import org.apache.hadoop.hbase.client.ConnectionFactory; import org.apache.hadoop.hbase.client.Delete; @@ -186,7 +188,8 @@ public class TestMasterReplication { Waiter.waitFor(baseConfiguration, 10000, new Waiter.Predicate<Exception>() { @Override public boolean evaluate() throws Exception { - ClusterStatus clusterStatus = utilities[0].getAdmin().getClusterStatus(); + ClusterStatus clusterStatus = utilities[0].getAdmin() + .getClusterStatus(EnumSet.of(Option.LIVE_SERVERS)); ServerLoad serverLoad = clusterStatus.getLoad(rsName); List<ReplicationLoadSource> replicationLoadSourceList = serverLoad.getReplicationLoadSourceList(); http://git-wip-us.apache.org/repos/asf/hbase/blob/5d6b20ad/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/TestReplicationStatus.java ---------------------------------------------------------------------- diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/TestReplicationStatus.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/TestReplicationStatus.java index 4dd06a9..7a2377f 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/TestReplicationStatus.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/TestReplicationStatus.java @@ -20,6 +20,7 @@ package org.apache.hadoop.hbase.replication; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; +import java.util.EnumSet; import java.util.List; import org.apache.commons.logging.Log; @@ -27,6 +28,7 @@ import org.apache.commons.logging.LogFactory; import org.apache.hadoop.hbase.ClusterStatus; import org.apache.hadoop.hbase.ServerLoad; import org.apache.hadoop.hbase.ServerName; +import org.apache.hadoop.hbase.ClusterStatus.Option; import org.apache.hadoop.hbase.client.Admin; import org.apache.hadoop.hbase.client.Put; import org.apache.hadoop.hbase.testclassification.MediumTests; @@ -66,7 +68,7 @@ public class TestReplicationStatus extends TestReplicationBase { htable1.put(p); } - ClusterStatus status = hbaseAdmin.getClusterStatus(); + ClusterStatus status = hbaseAdmin.getClusterStatus(EnumSet.of(Option.LIVE_SERVERS)); for (JVMClusterUtil.RegionServerThread thread : utility1.getHBaseCluster() .getRegionServerThreads()) { @@ -89,7 +91,7 @@ public class TestReplicationStatus extends TestReplicationBase { // Stop rs1, then the queue of rs1 will be transfered to rs0 utility1.getHBaseCluster().getRegionServer(1).stop("Stop RegionServer"); Thread.sleep(10000); - status = hbaseAdmin.getClusterStatus(); + status = hbaseAdmin.getClusterStatus(EnumSet.of(Option.LIVE_SERVERS)); ServerName server = utility1.getHBaseCluster().getRegionServer(0).getServerName(); ServerLoad sl = status.getLoad(server); List<ReplicationLoadSource> rLoadSourceList = sl.getReplicationLoadSourceList(); http://git-wip-us.apache.org/repos/asf/hbase/blob/5d6b20ad/hbase-server/src/test/java/org/apache/hadoop/hbase/util/BaseTestHBaseFsck.java ---------------------------------------------------------------------- diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/util/BaseTestHBaseFsck.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/util/BaseTestHBaseFsck.java index c18d6d0..d1c287f 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/util/BaseTestHBaseFsck.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/util/BaseTestHBaseFsck.java @@ -24,6 +24,7 @@ import static org.junit.Assert.fail; import java.io.IOException; import java.util.ArrayList; import java.util.Collection; +import java.util.EnumSet; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -47,6 +48,7 @@ import org.apache.hadoop.hbase.HRegionLocation; import org.apache.hadoop.hbase.HTableDescriptor; import org.apache.hadoop.hbase.ServerName; import org.apache.hadoop.hbase.TableName; +import org.apache.hadoop.hbase.ClusterStatus.Option; import org.apache.hadoop.hbase.MetaTableAccessor; import org.apache.hadoop.hbase.client.Admin; import org.apache.hadoop.hbase.client.ClusterConnection; @@ -328,7 +330,7 @@ public class BaseTestHBaseFsck { * Get region info from local cluster. */ Map<ServerName, List<String>> getDeployedHRIs(final Admin admin) throws IOException { - ClusterStatus status = admin.getClusterStatus(); + ClusterStatus status = admin.getClusterStatus(EnumSet.of(Option.LIVE_SERVERS)); Collection<ServerName> regionServers = status.getServers(); Map<ServerName, List<String>> mm = new HashMap<>(); for (ServerName hsi : regionServers) { http://git-wip-us.apache.org/repos/asf/hbase/blob/5d6b20ad/hbase-server/src/test/java/org/apache/hadoop/hbase/util/TestHBaseFsckReplicas.java ---------------------------------------------------------------------- diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/util/TestHBaseFsckReplicas.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/util/TestHBaseFsckReplicas.java index 6e49b81..ea47fcb 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/util/TestHBaseFsckReplicas.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/util/TestHBaseFsckReplicas.java @@ -22,6 +22,7 @@ import org.apache.hadoop.hbase.HRegionInfo; import org.apache.hadoop.hbase.MetaTableAccessor; import org.apache.hadoop.hbase.ServerName; import org.apache.hadoop.hbase.TableName; +import org.apache.hadoop.hbase.ClusterStatus.Option; import org.apache.hadoop.hbase.client.ClusterConnection; import org.apache.hadoop.hbase.client.Delete; import org.apache.hadoop.hbase.client.Put; @@ -46,6 +47,7 @@ import org.junit.rules.TestName; import java.util.Arrays; import java.util.Collection; +import java.util.EnumSet; import java.util.HashSet; import java.util.List; import java.util.Map; @@ -203,7 +205,7 @@ public class TestHBaseFsckReplicas extends BaseTestHBaseFsck { } } Put put = new Put(metaKey); - Collection<ServerName> var = admin.getClusterStatus().getServers(); + Collection<ServerName> var = admin.getClusterStatus(EnumSet.of(Option.LIVE_SERVERS)).getServers(); ServerName sn = var.toArray(new ServerName[var.size()])[0]; //add a location with replicaId as 2 (since we already have replicas with replicaid 0 and 1) MetaTableAccessor.addLocation(put, sn, sn.getStartcode(), -1, 2); @@ -285,7 +287,8 @@ public class TestHBaseFsckReplicas extends BaseTestHBaseFsck { } } // get all the online regions in the regionservers - Collection<ServerName> servers = admin.getClusterStatus().getServers(); + Collection<ServerName> servers = + admin.getClusterStatus(EnumSet.of(Option.LIVE_SERVERS)).getServers(); Set<HRegionInfo> onlineRegions = new HashSet<>(); for (ServerName s : servers) { List<HRegionInfo> list = admin.getOnlineRegions(s); http://git-wip-us.apache.org/repos/asf/hbase/blob/5d6b20ad/hbase-server/src/test/java/org/apache/hadoop/hbase/util/TestMiniClusterLoadSequential.java ---------------------------------------------------------------------- diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/util/TestMiniClusterLoadSequential.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/util/TestMiniClusterLoadSequential.java index f765221..be4e850 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/util/TestMiniClusterLoadSequential.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/util/TestMiniClusterLoadSequential.java @@ -21,6 +21,7 @@ import static org.junit.Assert.assertEquals; import java.io.IOException; import java.util.ArrayList; import java.util.Collection; +import java.util.EnumSet; import java.util.List; import org.apache.commons.logging.Log; @@ -32,6 +33,7 @@ import org.apache.hadoop.hbase.HColumnDescriptor; import org.apache.hadoop.hbase.HConstants; import org.apache.hadoop.hbase.HTableDescriptor; import org.apache.hadoop.hbase.TableNotFoundException; +import org.apache.hadoop.hbase.ClusterStatus.Option; import org.apache.hadoop.hbase.client.Admin; import org.apache.hadoop.hbase.io.compress.Compression; import org.apache.hadoop.hbase.io.encoding.DataBlockEncoding; @@ -152,7 +154,8 @@ public class TestMiniClusterLoadSequential { ", isMultiPut=" + isMultiPut); numKeys = numKeys(); Admin admin = TEST_UTIL.getAdmin(); - while (admin.getClusterStatus().getServers().size() < NUM_RS) { + while (admin.getClusterStatus(EnumSet.of(Option.LIVE_SERVERS)) + .getServers().size() < NUM_RS) { LOG.info("Sleeping until " + NUM_RS + " RSs are online"); Threads.sleepWithoutInterrupt(1000); }