@InterfaceAudience.Private public class FavoredNodeAssignmentHelper extends Object
FavoredNodeLoadBalancer that has all the intelligence for racks,
meta scans, etc. Instantiated by the FavoredNodeLoadBalancer when needed (from
within calls like FavoredNodeLoadBalancer.randomAssignment(RegionInfo, List)).
All updates to favored nodes should only be done from FavoredNodesManager and not
through this helper class (except for tests).| Modifier and Type | Field and Description |
|---|---|
static short |
FAVORED_NODES_NUM |
static byte[] |
FAVOREDNODES_QUALIFIER |
static short |
MAX_ATTEMPTS_FN_GENERATION |
| Constructor and Description |
|---|
FavoredNodeAssignmentHelper(List<org.apache.hadoop.hbase.ServerName> servers,
org.apache.hadoop.conf.Configuration conf) |
FavoredNodeAssignmentHelper(List<org.apache.hadoop.hbase.ServerName> servers,
RackManager rackManager) |
| Modifier and Type | Method and Description |
|---|---|
boolean |
canPlaceFavoredNodes() |
List<org.apache.hadoop.hbase.ServerName> |
generateFavoredNodes(org.apache.hadoop.hbase.client.RegionInfo hri) |
Map<org.apache.hadoop.hbase.client.RegionInfo,List<org.apache.hadoop.hbase.ServerName>> |
generateFavoredNodesRoundRobin(Map<org.apache.hadoop.hbase.ServerName,List<org.apache.hadoop.hbase.client.RegionInfo>> assignmentMap,
List<org.apache.hadoop.hbase.client.RegionInfo> regions) |
org.apache.hadoop.hbase.ServerName |
generateMissingFavoredNode(List<org.apache.hadoop.hbase.ServerName> favoredNodes) |
org.apache.hadoop.hbase.ServerName |
generateMissingFavoredNode(List<org.apache.hadoop.hbase.ServerName> favoredNodes,
List<org.apache.hadoop.hbase.ServerName> excludeNodes) |
static byte[] |
getFavoredNodes(List<org.apache.hadoop.hbase.ServerName> serverAddrList) |
static String |
getFavoredNodesAsString(List<org.apache.hadoop.hbase.ServerName> nodes) |
static org.apache.hadoop.hbase.ServerName[] |
getFavoredNodesList(byte[] favoredNodes) |
protected String |
getOneRandomRack(Set<String> skipRackSet) |
protected org.apache.hadoop.hbase.ServerName |
getOneRandomServer(String rack,
Set<org.apache.hadoop.hbase.ServerName> skipServerSet)
Gets a random server from the specified rack and skips anything specified.
|
org.apache.hadoop.hbase.ServerName[] |
getSecondaryAndTertiary(org.apache.hadoop.hbase.client.RegionInfo regionInfo,
org.apache.hadoop.hbase.ServerName primaryRS) |
void |
initialize() |
void |
placePrimaryRSAsRoundRobin(Map<org.apache.hadoop.hbase.ServerName,List<org.apache.hadoop.hbase.client.RegionInfo>> assignmentMap,
Map<org.apache.hadoop.hbase.client.RegionInfo,org.apache.hadoop.hbase.ServerName> primaryRSMap,
List<org.apache.hadoop.hbase.client.RegionInfo> regions) |
Map<org.apache.hadoop.hbase.client.RegionInfo,org.apache.hadoop.hbase.ServerName[]> |
placeSecondaryAndTertiaryRS(Map<org.apache.hadoop.hbase.client.RegionInfo,org.apache.hadoop.hbase.ServerName> primaryRSMap) |
Map<org.apache.hadoop.hbase.client.RegionInfo,org.apache.hadoop.hbase.ServerName[]> |
placeSecondaryAndTertiaryWithRestrictions(Map<org.apache.hadoop.hbase.client.RegionInfo,org.apache.hadoop.hbase.ServerName> primaryRSMap)
For regions that share the primary, avoid placing the secondary and tertiary
on a same RS.
|
static void |
updateMetaWithFavoredNodesInfo(Map<org.apache.hadoop.hbase.client.RegionInfo,List<org.apache.hadoop.hbase.ServerName>> regionToFavoredNodes,
org.apache.hadoop.conf.Configuration conf)
Update meta table with favored nodes info
|
static void |
updateMetaWithFavoredNodesInfo(Map<org.apache.hadoop.hbase.client.RegionInfo,List<org.apache.hadoop.hbase.ServerName>> regionToFavoredNodes,
org.apache.hadoop.hbase.client.Connection connection)
Update meta table with favored nodes info
|
public static final byte[] FAVOREDNODES_QUALIFIER
public static final short FAVORED_NODES_NUM
public static final short MAX_ATTEMPTS_FN_GENERATION
public FavoredNodeAssignmentHelper(List<org.apache.hadoop.hbase.ServerName> servers, org.apache.hadoop.conf.Configuration conf)
public FavoredNodeAssignmentHelper(List<org.apache.hadoop.hbase.ServerName> servers, RackManager rackManager)
public void initialize()
public static void updateMetaWithFavoredNodesInfo(Map<org.apache.hadoop.hbase.client.RegionInfo,List<org.apache.hadoop.hbase.ServerName>> regionToFavoredNodes, org.apache.hadoop.hbase.client.Connection connection) throws IOException
regionToFavoredNodes - map of RegionInfo's to their favored nodesconnection - connection to be usedIOExceptionpublic static void updateMetaWithFavoredNodesInfo(Map<org.apache.hadoop.hbase.client.RegionInfo,List<org.apache.hadoop.hbase.ServerName>> regionToFavoredNodes, org.apache.hadoop.conf.Configuration conf) throws IOException
regionToFavoredNodes - conf - IOExceptionpublic static org.apache.hadoop.hbase.ServerName[] getFavoredNodesList(byte[] favoredNodes)
throws IOException
favoredNodes - The PB'ed bytes of favored nodesServerName for the byte array of favored nodes.IOExceptionpublic static byte[] getFavoredNodes(List<org.apache.hadoop.hbase.ServerName> serverAddrList)
serverAddrList - HBaseProtos.FavoredNodes generated by the server list.public void placePrimaryRSAsRoundRobin(Map<org.apache.hadoop.hbase.ServerName,List<org.apache.hadoop.hbase.client.RegionInfo>> assignmentMap, Map<org.apache.hadoop.hbase.client.RegionInfo,org.apache.hadoop.hbase.ServerName> primaryRSMap, List<org.apache.hadoop.hbase.client.RegionInfo> regions)
public Map<org.apache.hadoop.hbase.client.RegionInfo,org.apache.hadoop.hbase.ServerName[]> placeSecondaryAndTertiaryRS(Map<org.apache.hadoop.hbase.client.RegionInfo,org.apache.hadoop.hbase.ServerName> primaryRSMap)
public org.apache.hadoop.hbase.ServerName[] getSecondaryAndTertiary(org.apache.hadoop.hbase.client.RegionInfo regionInfo,
org.apache.hadoop.hbase.ServerName primaryRS)
throws IOException
IOExceptionpublic Map<org.apache.hadoop.hbase.client.RegionInfo,org.apache.hadoop.hbase.ServerName[]> placeSecondaryAndTertiaryWithRestrictions(Map<org.apache.hadoop.hbase.client.RegionInfo,org.apache.hadoop.hbase.ServerName> primaryRSMap)
primaryRSMap - public boolean canPlaceFavoredNodes()
protected org.apache.hadoop.hbase.ServerName getOneRandomServer(String rack, Set<org.apache.hadoop.hbase.ServerName> skipServerSet)
rack - rack from a server is neededskipServerSet - the server shouldn't belong to this setprotected String getOneRandomRack(Set<String> skipRackSet) throws IOException
IOExceptionpublic static String getFavoredNodesAsString(List<org.apache.hadoop.hbase.ServerName> nodes)
public org.apache.hadoop.hbase.ServerName generateMissingFavoredNode(List<org.apache.hadoop.hbase.ServerName> favoredNodes) throws IOException
IOExceptionpublic org.apache.hadoop.hbase.ServerName generateMissingFavoredNode(List<org.apache.hadoop.hbase.ServerName> favoredNodes, List<org.apache.hadoop.hbase.ServerName> excludeNodes) throws IOException
IOExceptionpublic List<org.apache.hadoop.hbase.ServerName> generateFavoredNodes(org.apache.hadoop.hbase.client.RegionInfo hri) throws IOException
IOExceptionpublic Map<org.apache.hadoop.hbase.client.RegionInfo,List<org.apache.hadoop.hbase.ServerName>> generateFavoredNodesRoundRobin(Map<org.apache.hadoop.hbase.ServerName,List<org.apache.hadoop.hbase.client.RegionInfo>> assignmentMap, List<org.apache.hadoop.hbase.client.RegionInfo> regions) throws IOException
IOExceptionCopyright © 2007–2020 The Apache Software Foundation. All rights reserved.