@InterfaceAudience.Private public interface LoadBalancer extends org.apache.hadoop.conf.Configurable, org.apache.hadoop.hbase.Stoppable, ConfigurationObserver
Cluster-wide load balancing will occur only when there are no regions in
transition and according to a fixed period of a time using balanceCluster(Map).
On cluster startup, bulk assignment can be used to determine locations for all Regions in a cluster.
This class produces plans for the
AssignmentManager
to execute.
| Modifier and Type | Field and Description |
|---|---|
static org.apache.hadoop.hbase.ServerName |
BOGUS_SERVER_NAME |
static String |
SYSTEM_TABLES_ON_MASTER
Master carries system tables.
|
static String |
TABLES_ON_MASTER
Master can carry regions as of hbase-2.0.0.
|
| Modifier and Type | Method and Description |
|---|---|
List<RegionPlan> |
balanceCluster(Map<org.apache.hadoop.hbase.ServerName,List<org.apache.hadoop.hbase.client.RegionInfo>> clusterState)
Perform the major balance operation
|
List<RegionPlan> |
balanceCluster(org.apache.hadoop.hbase.TableName tableName,
Map<org.apache.hadoop.hbase.ServerName,List<org.apache.hadoop.hbase.client.RegionInfo>> clusterState)
Perform the major balance operation
|
void |
initialize()
Initialize the load balancer.
|
static boolean |
isMasterCanHostUserRegions(org.apache.hadoop.conf.Configuration conf) |
static boolean |
isSystemTablesOnlyOnMaster(org.apache.hadoop.conf.Configuration conf) |
static boolean |
isTablesOnMaster(org.apache.hadoop.conf.Configuration conf) |
void |
onConfigurationChange(org.apache.hadoop.conf.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.
|
org.apache.hadoop.hbase.ServerName |
randomAssignment(org.apache.hadoop.hbase.client.RegionInfo regionInfo,
List<org.apache.hadoop.hbase.ServerName> servers)
Get a random region server from the list
|
void |
regionOffline(org.apache.hadoop.hbase.client.RegionInfo regionInfo)
Marks the region as offline at balancer.
|
void |
regionOnline(org.apache.hadoop.hbase.client.RegionInfo regionInfo,
org.apache.hadoop.hbase.ServerName sn)
Marks the region as online at balancer.
|
Map<org.apache.hadoop.hbase.ServerName,List<org.apache.hadoop.hbase.client.RegionInfo>> |
retainAssignment(Map<org.apache.hadoop.hbase.client.RegionInfo,org.apache.hadoop.hbase.ServerName> regions,
List<org.apache.hadoop.hbase.ServerName> servers)
Assign regions to the previously hosting region server
|
Map<org.apache.hadoop.hbase.ServerName,List<org.apache.hadoop.hbase.client.RegionInfo>> |
roundRobinAssignment(List<org.apache.hadoop.hbase.client.RegionInfo> regions,
List<org.apache.hadoop.hbase.ServerName> servers)
Perform a Round Robin assignment of regions.
|
void |
setClusterLoad(Map<org.apache.hadoop.hbase.TableName,Map<org.apache.hadoop.hbase.ServerName,List<org.apache.hadoop.hbase.client.RegionInfo>>> ClusterLoad)
Pass RegionStates and allow balancer to set the current cluster load.
|
void |
setClusterMetrics(org.apache.hadoop.hbase.ClusterMetrics st)
Set the current cluster status.
|
void |
setMasterServices(MasterServices masterServices)
Set the master service.
|
void |
updateBalancerStatus(boolean status) |
static final String TABLES_ON_MASTER
static final String SYSTEM_TABLES_ON_MASTER
static final org.apache.hadoop.hbase.ServerName BOGUS_SERVER_NAME
void setClusterMetrics(org.apache.hadoop.hbase.ClusterMetrics st)
st - void setClusterLoad(Map<org.apache.hadoop.hbase.TableName,Map<org.apache.hadoop.hbase.ServerName,List<org.apache.hadoop.hbase.client.RegionInfo>>> ClusterLoad)
ClusterLoad - void setMasterServices(MasterServices masterServices)
masterServices - List<RegionPlan> balanceCluster(org.apache.hadoop.hbase.TableName tableName, Map<org.apache.hadoop.hbase.ServerName,List<org.apache.hadoop.hbase.client.RegionInfo>> clusterState) throws org.apache.hadoop.hbase.HBaseIOException
tableName - clusterState - org.apache.hadoop.hbase.HBaseIOExceptionList<RegionPlan> balanceCluster(Map<org.apache.hadoop.hbase.ServerName,List<org.apache.hadoop.hbase.client.RegionInfo>> clusterState) throws org.apache.hadoop.hbase.HBaseIOException
clusterState - org.apache.hadoop.hbase.HBaseIOExceptionMap<org.apache.hadoop.hbase.ServerName,List<org.apache.hadoop.hbase.client.RegionInfo>> roundRobinAssignment(List<org.apache.hadoop.hbase.client.RegionInfo> regions, List<org.apache.hadoop.hbase.ServerName> servers) throws org.apache.hadoop.hbase.HBaseIOException
regions - servers - org.apache.hadoop.hbase.HBaseIOException@Nullable Map<org.apache.hadoop.hbase.ServerName,List<org.apache.hadoop.hbase.client.RegionInfo>> retainAssignment(Map<org.apache.hadoop.hbase.client.RegionInfo,org.apache.hadoop.hbase.ServerName> regions, List<org.apache.hadoop.hbase.ServerName> servers) throws org.apache.hadoop.hbase.HBaseIOException
regions - servers - org.apache.hadoop.hbase.HBaseIOExceptionorg.apache.hadoop.hbase.ServerName randomAssignment(org.apache.hadoop.hbase.client.RegionInfo regionInfo,
List<org.apache.hadoop.hbase.ServerName> servers)
throws org.apache.hadoop.hbase.HBaseIOException
regionInfo - Region for which this selection is being done.servers - org.apache.hadoop.hbase.HBaseIOExceptionvoid initialize()
throws org.apache.hadoop.hbase.HBaseIOException
org.apache.hadoop.hbase.HBaseIOExceptionvoid regionOnline(org.apache.hadoop.hbase.client.RegionInfo regionInfo,
org.apache.hadoop.hbase.ServerName sn)
regionInfo - sn - void regionOffline(org.apache.hadoop.hbase.client.RegionInfo regionInfo)
regionInfo - void onConfigurationChange(org.apache.hadoop.conf.Configuration conf)
ConfigurationObserverConfigurationManager
object when the Configuration object is reloaded from disk.onConfigurationChange in interface ConfigurationObservervoid postMasterStartupInitialize()
void updateBalancerStatus(boolean status)
static boolean isTablesOnMaster(org.apache.hadoop.conf.Configuration conf)
static boolean isSystemTablesOnlyOnMaster(org.apache.hadoop.conf.Configuration conf)
static boolean isMasterCanHostUserRegions(org.apache.hadoop.conf.Configuration conf)
Copyright © 2007–2020 The Apache Software Foundation. All rights reserved.