public class RSGroupBasedLoadBalancer extends java.lang.Object implements RSGroupableBalancer
HBASE_RSGROUP_LOADBALANCER_CLASSBOGUS_SERVER_NAME, SYSTEM_TABLES_ON_MASTER, TABLES_ON_MASTER| Constructor and Description |
|---|
RSGroupBasedLoadBalancer()
Used by reflection in
LoadBalancerFactory. |
| Modifier and Type | Method and Description |
|---|---|
java.util.List<RegionPlan> |
balanceCluster(java.util.Map<ServerName,java.util.List<RegionInfo>> clusterState)
Perform the major balance operation
|
java.util.List<RegionPlan> |
balanceCluster(TableName tableName,
java.util.Map<ServerName,java.util.List<RegionInfo>> clusterState)
Perform the major balance operation
|
Configuration |
getConf() |
java.util.Set<RegionInfo> |
getMisplacedRegions(java.util.Map<RegionInfo,ServerName> regions) |
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. |
void |
postMasterStartupInitialize()
If balancer needs to do initialization after Master has started up, lets do that here.
|
ServerName |
randomAssignment(RegionInfo region,
java.util.List<ServerName> servers)
Get a random region server from the list
|
void |
regionOffline(RegionInfo regionInfo)
Marks the region as offline at balancer.
|
void |
regionOnline(RegionInfo regionInfo,
ServerName sn)
Marks the region as online at balancer.
|
java.util.Map<ServerName,java.util.List<RegionInfo>> |
retainAssignment(java.util.Map<RegionInfo,ServerName> regions,
java.util.List<ServerName> servers)
Assign regions to the previously hosting region server
|
java.util.Map<ServerName,java.util.List<RegionInfo>> |
roundRobinAssignment(java.util.List<RegionInfo> regions,
java.util.List<ServerName> servers)
Perform a Round Robin assignment of regions.
|
void |
setClusterLoad(java.util.Map<TableName,java.util.Map<ServerName,java.util.List<RegionInfo>>> clusterLoad)
Pass RegionStates and allow balancer to set the current cluster load.
|
void |
setClusterMetrics(ClusterMetrics sm)
Set the current cluster status.
|
void |
setConf(Configuration conf) |
void |
setMasterServices(MasterServices masterServices)
Set the master service.
|
void |
setRsGroupInfoManager(RSGroupInfoManager rsGroupInfoManager) |
void |
stop(java.lang.String why) |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitisSystemTablesOnlyOnMaster, isTablesOnMasterpublic RSGroupBasedLoadBalancer()
LoadBalancerFactory.public Configuration getConf()
public void setConf(Configuration conf)
public void setClusterMetrics(ClusterMetrics sm)
LoadBalancersetClusterMetrics 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<RegionInfo>> clusterState) throws HBaseIOException
LoadBalancerbalanceCluster in interface LoadBalancerHBaseIOExceptionpublic java.util.List<RegionPlan> balanceCluster(java.util.Map<ServerName,java.util.List<RegionInfo>> clusterState) throws HBaseIOException
LoadBalancerbalanceCluster in interface LoadBalancerHBaseIOExceptionpublic java.util.Map<ServerName,java.util.List<RegionInfo>> roundRobinAssignment(java.util.List<RegionInfo> regions,
java.util.List<ServerName> servers)
throws HBaseIOException
LoadBalancerroundRobinAssignment in interface LoadBalancerHBaseIOExceptionpublic java.util.Map<ServerName,java.util.List<RegionInfo>> retainAssignment(java.util.Map<RegionInfo,ServerName> regions,
java.util.List<ServerName> servers)
throws HBaseIOException
LoadBalancerretainAssignment in interface LoadBalancerHBaseIOExceptionpublic ServerName randomAssignment(RegionInfo region,
java.util.List<ServerName> servers)
throws HBaseIOException
LoadBalancerrandomAssignment in interface LoadBalancerregion - Region for which this selection is being done.HBaseIOExceptionpublic java.util.Set<RegionInfo> getMisplacedRegions(java.util.Map<RegionInfo,ServerName> regions)
throws java.io.IOException
java.io.IOExceptionpublic void initialize()
throws HBaseIOException
LoadBalancerinitialize in interface LoadBalancerHBaseIOExceptionpublic boolean isOnline()
public void setClusterLoad(java.util.Map<TableName,java.util.Map<ServerName,java.util.List<RegionInfo>>> clusterLoad)
LoadBalancersetClusterLoad in interface LoadBalancerpublic void regionOnline(RegionInfo regionInfo,
ServerName sn)
LoadBalancerregionOnline in interface LoadBalancerpublic void regionOffline(RegionInfo 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)
public boolean isStopped()
public void setRsGroupInfoManager(RSGroupInfoManager rsGroupInfoManager)
public void postMasterStartupInitialize()
LoadBalancerpostMasterStartupInitialize in interface LoadBalancer