@InterfaceAudience.Private public class RSGroupBasedLoadBalancer extends java.lang.Object implements RSGroupableBalancer, LoadBalancer
| Modifier and Type | Field and Description |
|---|---|
static java.lang.String |
HBASE_GROUP_LOADBALANCER_CLASS
Config for pluggable load balancers
|
BOGUS_SERVER_NAME| Constructor and Description |
|---|
RSGroupBasedLoadBalancer() |
RSGroupBasedLoadBalancer(RSGroupInfoManager RSGroupInfoManager) |
| Modifier and Type | Method and Description |
|---|---|
java.util.List<RegionPlan> |
balanceCluster(java.util.Map<ServerName,java.util.List<HRegionInfo>> clusterState)
Perform the major balance operation
|
java.util.List<RegionPlan> |
balanceCluster(TableName tableName,
java.util.Map<ServerName,java.util.List<HRegionInfo>> clusterState)
Perform the major balance operation
|
Configuration |
getConf() |
java.util.Map<HRegionInfo,ServerName> |
immediateAssignment(java.util.List<HRegionInfo> regions,
java.util.List<ServerName> servers)
Sync assign a region
|
void |
initialize()
Initialize the load balancer.
|
boolean |
isOnline() |
boolean |
isStopped() |
void |
onConfigurationChange(Configuration conf)
This method would be called by the
ConfigurationManager
object when the Configuration object is reloaded from disk. |
ServerName |
randomAssignment(HRegionInfo region,
java.util.List<ServerName> servers)
Get a random region server from the list
|
void |
regionOffline(HRegionInfo regionInfo)
Marks the region as offline at balancer.
|
void |
regionOnline(HRegionInfo regionInfo,
ServerName sn)
Marks the region as online at balancer.
|
java.util.Map<ServerName,java.util.List<HRegionInfo>> |
retainAssignment(java.util.Map<HRegionInfo,ServerName> regions,
java.util.List<ServerName> servers)
Assign regions to the previously hosting region server
|
java.util.Map<ServerName,java.util.List<HRegionInfo>> |
roundRobinAssignment(java.util.List<HRegionInfo> regions,
java.util.List<ServerName> servers)
Perform a Round Robin assignment of regions.
|
void |
setClusterStatus(ClusterStatus st)
Set the current cluster status.
|
void |
setConf(Configuration conf) |
void |
setMasterServices(MasterServices masterServices)
Set the master service.
|
void |
stop(java.lang.String why)
Stop this service.
|
public static final java.lang.String HBASE_GROUP_LOADBALANCER_CLASS
@InterfaceAudience.Private public RSGroupBasedLoadBalancer()
@InterfaceAudience.Private public RSGroupBasedLoadBalancer(RSGroupInfoManager RSGroupInfoManager)
public Configuration getConf()
public void setConf(Configuration conf)
public void setClusterStatus(ClusterStatus st)
LoadBalancersetClusterStatus in interface LoadBalancerpublic void setMasterServices(MasterServices masterServices)
LoadBalancersetMasterServices in interface LoadBalancerpublic java.util.List<RegionPlan> balanceCluster(TableName tableName, java.util.Map<ServerName,java.util.List<HRegionInfo>> clusterState) throws HBaseIOException
LoadBalancerbalanceCluster in interface LoadBalancerHBaseIOExceptionpublic java.util.List<RegionPlan> balanceCluster(java.util.Map<ServerName,java.util.List<HRegionInfo>> clusterState) throws HBaseIOException
LoadBalancerbalanceCluster in interface LoadBalancerHBaseIOExceptionpublic java.util.Map<ServerName,java.util.List<HRegionInfo>> roundRobinAssignment(java.util.List<HRegionInfo> regions, java.util.List<ServerName> servers) throws HBaseIOException
LoadBalancerroundRobinAssignment in interface LoadBalancerHBaseIOExceptionpublic java.util.Map<ServerName,java.util.List<HRegionInfo>> retainAssignment(java.util.Map<HRegionInfo,ServerName> regions, java.util.List<ServerName> servers) throws HBaseIOException
LoadBalancerretainAssignment in interface LoadBalancerHBaseIOExceptionpublic ServerName randomAssignment(HRegionInfo region, java.util.List<ServerName> servers) throws HBaseIOException
LoadBalancerrandomAssignment in interface LoadBalancerregion - Region for which this selection is being done.HBaseIOExceptionpublic java.util.Map<HRegionInfo,ServerName> immediateAssignment(java.util.List<HRegionInfo> regions, java.util.List<ServerName> servers) throws HBaseIOException
LoadBalancerimmediateAssignment in interface LoadBalancerHBaseIOExceptionpublic void initialize()
throws HBaseIOException
LoadBalancerinitialize in interface LoadBalancerHBaseIOExceptionpublic boolean isOnline()
public void regionOnline(HRegionInfo regionInfo, ServerName sn)
LoadBalancerregionOnline in interface LoadBalancerpublic void regionOffline(HRegionInfo regionInfo)
LoadBalancerregionOffline in interface LoadBalancerpublic void onConfigurationChange(Configuration conf)
ConfigurationObserverConfigurationManager
object when the Configuration object is reloaded from disk.onConfigurationChange in interface ConfigurationObserveronConfigurationChange in interface LoadBalancerpublic void stop(java.lang.String why)
Stoppablepublic boolean isStopped()
isStopped in interface StoppableStoppable.stop(String) has been closed.