From 24d7bf8e1e09abc625ee39e52af13b25b1ba98d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=AE=B8=E5=BB=BA=E6=8C=AF?= Date: Tue, 3 Dec 2019 19:40:31 +0800 Subject: [PATCH 1/5] fix --- .../rsgroup/RSGroupBasedLoadBalancer.java | 15 +++++++++ .../hbase/master/AssignmentManager.java | 31 +++++++++++++++++++ .../hadoop/hbase/master/LoadBalancer.java | 11 +++++++ .../balancer/FavoredNodeLoadBalancer.java | 11 ++++--- .../master/balancer/SimpleLoadBalancer.java | 16 +++++----- .../balancer/StochasticLoadBalancer.java | 28 ++++++----------- .../master/balancer/TestBaseLoadBalancer.java | 5 +++ 7 files changed, 85 insertions(+), 32 deletions(-) diff --git a/hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.java b/hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.java index 5e5112856a7e..bca2cd1bc578 100644 --- a/hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.java +++ b/hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.java @@ -274,6 +274,21 @@ public ServerName randomAssignment(HRegionInfo region, return this.internalBalancer.randomAssignment(region, filteredServers); } + @Override + public Set
getServersInDefaultOrGroup(HRegionInfo region) throws HBaseIOException { + try{ + String groupName = infoManager.getRSGroupOfTable(region.getTable()); + if (groupName == null) { + groupName = RSGroupInfo.DEFAULT_GROUP; + } + RSGroupInfo info = infoManager.getRSGroup(groupName); + Set
serversInGroup = info.getServers(); + return serversInGroup; + } catch (Exception e) { + throw new HBaseIOException("Failed to get servers ", e); + } + } + private void generateGroupMaps( List regions, List servers, diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java index 4d7c0301b066..5cfe9f40c657 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java @@ -89,6 +89,7 @@ import org.apache.hadoop.hbase.master.handler.DisableTableHandler; import org.apache.hadoop.hbase.master.handler.EnableTableHandler; import org.apache.hadoop.hbase.master.handler.OpenedRegionHandler; +import org.apache.hadoop.hbase.net.Address; import org.apache.hadoop.hbase.protobuf.generated.RegionServerStatusProtos.RegionStateTransition; import org.apache.hadoop.hbase.protobuf.generated.RegionServerStatusProtos.RegionStateTransition.TransitionCode; import org.apache.hadoop.hbase.protobuf.generated.ZooKeeperProtos; @@ -2636,10 +2637,30 @@ public void run() { for (ServerName server : getExcludedServersForSystemTable()) { regionsShouldMove.addAll(getCarryingSystemTables(server)); } + Set
serverbygroup = new HashSet<>(); + Set
remainservers = new HashSet<>(); + Set
excludedAddresses = new HashSet<>(); if (!regionsShouldMove.isEmpty()) { List plans = new ArrayList<>(); + List names = getExcludedServersForSystemTable(); for (HRegionInfo regionInfo : regionsShouldMove) { RegionPlan plan = getRegionPlan(regionInfo, true); + serverbygroup = balancer.getServersInDefaultOrGroup(regionInfo); + excludedAddresses = getAddressFromServerName(names); + if (serverbygroup != null) { + for (Address address : serverbygroup) { + if ( !excludedAddresses.contains(address) && + getAddressFromServerName(serverManager. + getOnlineServersList()).contains(address)) { + remainservers.add(address); + } + } + if (remainservers.size() == 0) { + LOG.info("The region("+regionInfo.getRegionNameAsString()+")" + + "do not need to move to RS with the highest version "); + continue; + } + } if (regionInfo.isMetaRegion()) { // Must move meta region first. balance(plan); @@ -2659,6 +2680,16 @@ public void run() { }).start(); } + public HashSet
getAddressFromServerName(List servernames) { + HashSet
addresses = new HashSet<>(); + if (servernames == null) { + return addresses; + } + for (ServerName servername : servernames) { + addresses.add(servername.getAddress()); + } + return addresses; + } /** * Unassigns the specified region. diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/LoadBalancer.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/LoadBalancer.java index c8121b98c22d..1814572bec79 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/LoadBalancer.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/LoadBalancer.java @@ -20,6 +20,7 @@ import java.util.List; import java.util.Map; +import java.util.Set; import org.apache.hadoop.hbase.classification.InterfaceAudience; import org.apache.hadoop.hbase.conf.ConfigurationObserver; @@ -31,6 +32,7 @@ import org.apache.hadoop.hbase.ServerName; import org.apache.hadoop.hbase.Stoppable; import org.apache.hadoop.hbase.TableName; +import org.apache.hadoop.hbase.net.Address; /** * Makes decisions about the placement and movement of Regions across @@ -127,6 +129,15 @@ ServerName randomAssignment( HRegionInfo regionInfo, List servers ) throws HBaseIOException; + /** + * Get all the servers of this region's rs_group,and now only used in RSGroupBasedLoadBalancer + * @param region + * @return Set of Address + * @throws HBaseIOException + */ + Set
getServersInDefaultOrGroup( + HRegionInfo region) throws HBaseIOException; + /** * Initialize the load balancer. Must be called after setters. * @throws HBaseIOException diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/FavoredNodeLoadBalancer.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/FavoredNodeLoadBalancer.java index 32d9c6c0c4aa..f9a2c41879c1 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/FavoredNodeLoadBalancer.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/FavoredNodeLoadBalancer.java @@ -19,10 +19,7 @@ package org.apache.hadoop.hbase.master.balancer; import java.io.IOException; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -40,6 +37,7 @@ import org.apache.hadoop.hbase.master.ServerManager; import org.apache.hadoop.hbase.master.SnapshotOfRegionAssignmentFromMeta; import org.apache.hadoop.hbase.master.balancer.FavoredNodesPlan.Position; +import org.apache.hadoop.hbase.net.Address; import org.apache.hadoop.hbase.util.Pair; /** @@ -225,6 +223,11 @@ public ServerName randomAssignment(HRegionInfo regionInfo, List serv } } + @Override + public Set
getServersInDefaultOrGroup(HRegionInfo region) throws HBaseIOException { + return null; + } + private Pair>, List> segregateRegionsAndAssignRegionsWithFavoredNodes(List regions, List availableServers) { diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/SimpleLoadBalancer.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/SimpleLoadBalancer.java index a354e40eeaa2..cd8744a10855 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/SimpleLoadBalancer.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/SimpleLoadBalancer.java @@ -17,15 +17,7 @@ */ package org.apache.hadoop.hbase.master.balancer; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.NavigableMap; -import java.util.Random; -import java.util.TreeMap; +import java.util.*; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -38,6 +30,7 @@ import org.apache.hadoop.hbase.master.RegionPlan; import com.google.common.collect.MinMaxPriorityQueue; +import org.apache.hadoop.hbase.net.Address; /** * Makes decisions about the placement and movement of Regions across @@ -437,4 +430,9 @@ public List balanceCluster(TableName tableName, Map> clusterState) throws HBaseIOException { return balanceCluster(clusterState); } + + @Override + public Set
getServersInDefaultOrGroup(HRegionInfo region) throws HBaseIOException { + return null; + } } diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.java index 374070ceb68b..e453760cdea7 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.java @@ -18,31 +18,15 @@ package org.apache.hadoop.hbase.master.balancer; import com.google.common.annotations.VisibleForTesting; -import java.util.ArrayDeque; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.Collections; -import java.util.Deque; -import java.util.HashMap; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; + +import java.util.*; import java.util.Map.Entry; -import java.util.Random; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.apache.hadoop.hbase.*; import org.apache.hadoop.hbase.classification.InterfaceAudience; import org.apache.hadoop.conf.Configuration; -import org.apache.hadoop.hbase.ClusterStatus; -import org.apache.hadoop.hbase.HBaseInterfaceAudience; -import org.apache.hadoop.hbase.HConstants; -import org.apache.hadoop.hbase.HRegionInfo; -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.master.MasterServices; import org.apache.hadoop.hbase.master.RegionPlan; import org.apache.hadoop.hbase.master.balancer.BaseLoadBalancer.Cluster.Action; @@ -51,6 +35,7 @@ import org.apache.hadoop.hbase.master.balancer.BaseLoadBalancer.Cluster.LocalityType; import org.apache.hadoop.hbase.master.balancer.BaseLoadBalancer.Cluster.MoveRegionAction; import org.apache.hadoop.hbase.master.balancer.BaseLoadBalancer.Cluster.SwapRegionsAction; +import org.apache.hadoop.hbase.net.Address; import org.apache.hadoop.hbase.util.Bytes; import org.apache.hadoop.hbase.util.EnvironmentEdgeManager; @@ -442,6 +427,11 @@ public synchronized List balanceCluster(Map getServersInDefaultOrGroup(HRegionInfo region) throws HBaseIOException { + return null; + } + /** * update costs to JMX */ diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/balancer/TestBaseLoadBalancer.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/balancer/TestBaseLoadBalancer.java index 2823d649ce6a..a1c510fdbcd9 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/balancer/TestBaseLoadBalancer.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/balancer/TestBaseLoadBalancer.java @@ -38,6 +38,7 @@ import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.HBaseIOException; import org.apache.hadoop.hbase.HRegionInfo; +import org.apache.hadoop.hbase.net.Address; import org.apache.hadoop.hbase.testclassification.MediumTests; import org.apache.hadoop.hbase.ServerName; import org.apache.hadoop.hbase.TableName; @@ -100,6 +101,10 @@ public static void beforeAllTests() throws Exception { } public static class MockBalancer extends BaseLoadBalancer { + @Override + public Set
getServersInDefaultOrGroup(HRegionInfo region) throws HBaseIOException { + return null; + } @Override public List balanceCluster(Map> clusterState) { From a886172e42cef5dbc1e4e86286701b94656f41ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=AE=B8=E5=BB=BA=E6=8C=AF?= Date: Tue, 3 Dec 2019 19:48:52 +0800 Subject: [PATCH 2/5] fix conflicts --- .../hadoop/hbase/master/balancer/StochasticLoadBalancer.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.java index e453760cdea7..5996d2df469c 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.java @@ -35,9 +35,9 @@ import org.apache.hadoop.hbase.master.balancer.BaseLoadBalancer.Cluster.LocalityType; import org.apache.hadoop.hbase.master.balancer.BaseLoadBalancer.Cluster.MoveRegionAction; import org.apache.hadoop.hbase.master.balancer.BaseLoadBalancer.Cluster.SwapRegionsAction; +import org.apache.hadoop.hbase.util.EnvironmentEdgeManager; import org.apache.hadoop.hbase.net.Address; import org.apache.hadoop.hbase.util.Bytes; -import org.apache.hadoop.hbase.util.EnvironmentEdgeManager; import com.google.common.base.Optional; From a09f2d98285ffe585f722e4e22f8bd07a292bda2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=AE=B8=E5=BB=BA=E6=8C=AF?= Date: Tue, 3 Dec 2019 20:56:20 +0800 Subject: [PATCH 3/5] i --- .../master/balancer/StochasticLoadBalancer.java | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.java index 5996d2df469c..00b50dcf7a0b 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.java @@ -18,8 +18,16 @@ package org.apache.hadoop.hbase.master.balancer; import com.google.common.annotations.VisibleForTesting; - -import java.util.*; +import java.util.ArrayDeque; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; +import java.util.Deque; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; import java.util.Map.Entry; import org.apache.commons.logging.Log; @@ -35,9 +43,9 @@ import org.apache.hadoop.hbase.master.balancer.BaseLoadBalancer.Cluster.LocalityType; import org.apache.hadoop.hbase.master.balancer.BaseLoadBalancer.Cluster.MoveRegionAction; import org.apache.hadoop.hbase.master.balancer.BaseLoadBalancer.Cluster.SwapRegionsAction; +import org.apache.hadoop.hbase.util.Bytes; import org.apache.hadoop.hbase.util.EnvironmentEdgeManager; import org.apache.hadoop.hbase.net.Address; -import org.apache.hadoop.hbase.util.Bytes; import com.google.common.base.Optional; From d54ffee2c1ddba0394c3e5ef085c1585052659da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=AE=B8=E5=BB=BA=E6=8C=AF?= Date: Wed, 4 Dec 2019 11:03:03 +0800 Subject: [PATCH 4/5] hbase --- .../hadoop/hbase/master/AssignmentManager.java | 8 +++----- .../apache/hadoop/hbase/master/LoadBalancer.java | 3 +-- .../hbase/master/balancer/SimpleLoadBalancer.java | 13 +++++++++++-- .../master/balancer/StochasticLoadBalancer.java | 15 +++++++++++++-- 4 files changed, 28 insertions(+), 11 deletions(-) diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java index 5cfe9f40c657..861fb7b19452 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java @@ -2637,19 +2637,17 @@ public void run() { for (ServerName server : getExcludedServersForSystemTable()) { regionsShouldMove.addAll(getCarryingSystemTables(server)); } - Set
serverbygroup = new HashSet<>(); Set
remainservers = new HashSet<>(); - Set
excludedAddresses = new HashSet<>(); if (!regionsShouldMove.isEmpty()) { List plans = new ArrayList<>(); List names = getExcludedServersForSystemTable(); for (HRegionInfo regionInfo : regionsShouldMove) { RegionPlan plan = getRegionPlan(regionInfo, true); - serverbygroup = balancer.getServersInDefaultOrGroup(regionInfo); - excludedAddresses = getAddressFromServerName(names); + Set
serverbygroup = balancer.getServersInDefaultOrGroup(regionInfo); + Set
excludedAddresses = getAddressFromServerName(names); if (serverbygroup != null) { for (Address address : serverbygroup) { - if ( !excludedAddresses.contains(address) && + if (!excludedAddresses.contains(address) && getAddressFromServerName(serverManager. getOnlineServersList()).contains(address)) { remainservers.add(address); diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/LoadBalancer.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/LoadBalancer.java index 1814572bec79..e03c390172c4 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/LoadBalancer.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/LoadBalancer.java @@ -131,9 +131,8 @@ ServerName randomAssignment( /** * Get all the servers of this region's rs_group,and now only used in RSGroupBasedLoadBalancer - * @param region + * @param region Get the servers of region's table * @return Set of Address - * @throws HBaseIOException */ Set
getServersInDefaultOrGroup( HRegionInfo region) throws HBaseIOException; diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/SimpleLoadBalancer.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/SimpleLoadBalancer.java index cd8744a10855..4667990a4c0f 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/SimpleLoadBalancer.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/SimpleLoadBalancer.java @@ -17,7 +17,16 @@ */ package org.apache.hadoop.hbase.master.balancer; -import java.util.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.NavigableMap; +import java.util.Random; +import java.util.Set; +import java.util.TreeMap; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -28,9 +37,9 @@ import org.apache.hadoop.hbase.ServerName; import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.master.RegionPlan; +import org.apache.hadoop.hbase.net.Address; import com.google.common.collect.MinMaxPriorityQueue; -import org.apache.hadoop.hbase.net.Address; /** * Makes decisions about the placement and movement of Regions across diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.java index 00b50dcf7a0b..9584b5345af8 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.java @@ -29,12 +29,23 @@ import java.util.List; import java.util.Map; import java.util.Map.Entry; +import java.util.Random; +import java.util.Set; + import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.apache.hadoop.hbase.*; import org.apache.hadoop.hbase.classification.InterfaceAudience; import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.hbase.ClusterStatus; +import org.apache.hadoop.hbase.HBaseInterfaceAudience; +import org.apache.hadoop.hbase.HBaseIOException; +import org.apache.hadoop.hbase.HConstants; +import org.apache.hadoop.hbase.HRegionInfo; +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.master.MasterServices; import org.apache.hadoop.hbase.master.RegionPlan; import org.apache.hadoop.hbase.master.balancer.BaseLoadBalancer.Cluster.Action; @@ -43,9 +54,9 @@ import org.apache.hadoop.hbase.master.balancer.BaseLoadBalancer.Cluster.LocalityType; import org.apache.hadoop.hbase.master.balancer.BaseLoadBalancer.Cluster.MoveRegionAction; import org.apache.hadoop.hbase.master.balancer.BaseLoadBalancer.Cluster.SwapRegionsAction; +import org.apache.hadoop.hbase.net.Address; import org.apache.hadoop.hbase.util.Bytes; import org.apache.hadoop.hbase.util.EnvironmentEdgeManager; -import org.apache.hadoop.hbase.net.Address; import com.google.common.base.Optional; From 4db62d458161236d041c4b5816d0493b9603eb82 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=AE=B8=E5=BB=BA=E6=8C=AF?= Date: Wed, 4 Dec 2019 11:08:22 +0800 Subject: [PATCH 5/5] hbase_v1 --- .../hadoop/hbase/master/balancer/StochasticLoadBalancer.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.java index 9584b5345af8..7dac320ebece 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.java @@ -54,9 +54,9 @@ import org.apache.hadoop.hbase.master.balancer.BaseLoadBalancer.Cluster.LocalityType; import org.apache.hadoop.hbase.master.balancer.BaseLoadBalancer.Cluster.MoveRegionAction; import org.apache.hadoop.hbase.master.balancer.BaseLoadBalancer.Cluster.SwapRegionsAction; -import org.apache.hadoop.hbase.net.Address; import org.apache.hadoop.hbase.util.Bytes; import org.apache.hadoop.hbase.util.EnvironmentEdgeManager; +import org.apache.hadoop.hbase.net.Address; import com.google.common.base.Optional;