/** * @return Maximum number of regions in transition */ private int getMaxRegionsInTransition() { int numRegions = this.assignmentManager.getRegionStates().getRegionAssignments().size(); return Math.max((int) Math.floor(numRegions * this.maxRitPercent), 1); }
@Override public void postMasterStartupInitialize() { if (services != null && regionFinder != null) { try { Set<RegionInfo> regions = services.getAssignmentManager().getRegionStates().getRegionAssignments().keySet(); regionFinder.refreshAndWait(regions); } catch (Exception e) { LOG.warn("Refreshing region HDFS Block dist failed with exception, ignoring", e); } } }
Map<TableName, Map<ServerName, List<RegionInfo>>> assignments = Maps.newHashMap(); for(Map.Entry<RegionInfo, ServerName> entry: master.getAssignmentManager().getRegionStates().getRegionAssignments().entrySet()) { TableName currTable = entry.getKey().getTable(); ServerName currServer = entry.getValue();
/** * @return List of Regions associated with this <code>server</code>. */ private List<RegionInfo> getRegions(final Address server) { LinkedList<RegionInfo> regions = new LinkedList<>(); for (Map.Entry<RegionInfo, ServerName> el : master.getAssignmentManager().getRegionStates().getRegionAssignments().entrySet()) { if (el.getValue() == null) { continue; } if (el.getValue().getAddress().equals(server)) { addRegion(regions, el.getKey()); } } for (RegionStateNode state : master.getAssignmentManager().getRegionsInTransition()) { if (state.getRegionLocation().getAddress().equals(server)) { addRegion(regions, state.getRegionInfo()); } } return regions; }
@Test public void testBasicStartUp() throws IOException { RSGroupInfo defaultInfo = rsGroupAdmin.getRSGroupInfo(RSGroupInfo.DEFAULT_GROUP); assertEquals(4, defaultInfo.getServers().size()); // Assignment of root and meta regions. int count = master.getAssignmentManager().getRegionStates().getRegionAssignments().size(); // 2 meta, group assertEquals(2, count); }
public String explainTableAvailability(TableName tableName) throws IOException { String msg = explainTableState(tableName, TableState.State.ENABLED) + ", "; if (getHBaseCluster().getMaster().isAlive()) { Map<RegionInfo, ServerName> assignments = getHBaseCluster().getMaster().getAssignmentManager().getRegionStates() .getRegionAssignments(); final List<Pair<RegionInfo, ServerName>> metaLocations = MetaTableAccessor.getTableRegionsAndLocations(connection, tableName); for (Pair<RegionInfo, ServerName> metaLocation : metaLocations) { RegionInfo hri = metaLocation.getFirst(); ServerName sn = metaLocation.getSecond(); if (!assignments.containsKey(hri)) { msg += ", region " + hri + " not assigned, but found in meta, it expected to be on " + sn; } else if (sn == null) { msg += ", region " + hri + " assigned, but has no server in meta"; } else if (!sn.equals(assignments.get(hri))) { msg += ", region " + hri + " assigned, but has different servers in meta and AM ( " + sn + " <> " + assignments.get(hri); } } } return msg; }
assignments = master.getMaster().getAssignmentManager().getRegionStates().getRegionAssignments(); } while (assignments == null || assignments.size() < 2); RegionInfo hri = null;
RSGroupAdmin groupAdmin = new RSGroupAdminClient(TEST_UTIL.getConnection()); groupAdmin.addRSGroup(newGroup); if (master.getAssignmentManager().getRegionStates().getRegionAssignments() .containsValue(failoverRS.getServerName())) { for (RegionInfo regionInfo : hbaseAdmin.getRegions(failoverRS.getServerName())) {
Map<TableName, Map<ServerName, List<RegionInfo>>> assignments = Maps.newHashMap(); for(Map.Entry<RegionInfo, ServerName> entry: master.getAssignmentManager().getRegionStates().getRegionAssignments().entrySet()) { TableName currTable = entry.getKey().getTable(); ServerName currServer = entry.getValue();
Map<TableName, Map<ServerName, List<RegionInfo>>> assignments = Maps.newHashMap(); for(Map.Entry<RegionInfo, ServerName> entry: master.getAssignmentManager().getRegionStates().getRegionAssignments().entrySet()) { TableName currTable = entry.getKey().getTable(); ServerName currServer = entry.getValue();
/** * @return List of Regions associated with this <code>server</code>. */ private List<RegionInfo> getRegions(final Address server) { LinkedList<RegionInfo> regions = new LinkedList<>(); for (Map.Entry<RegionInfo, ServerName> el : master.getAssignmentManager().getRegionStates().getRegionAssignments().entrySet()) { if (el.getValue() == null) { continue; } if (el.getValue().getAddress().equals(server)) { addRegion(regions, el.getKey()); } } for (RegionStateNode state : master.getAssignmentManager().getRegionsInTransition()) { if (state.getRegionLocation().getAddress().equals(server)) { addRegion(regions, state.getRegionInfo()); } } return regions; }
/** * @return List of Regions associated with this <code>server</code>. */ private List<RegionInfo> getRegions(final Address server) { LinkedList<RegionInfo> regions = new LinkedList<>(); for (Map.Entry<RegionInfo, ServerName> el : master.getAssignmentManager().getRegionStates().getRegionAssignments().entrySet()) { if (el.getValue() == null) { continue; } if (el.getValue().getAddress().equals(server)) { addRegion(regions, el.getKey()); } } for (RegionStateNode state : master.getAssignmentManager().getRegionsInTransition()) { if (state.getRegionLocation().getAddress().equals(server)) { addRegion(regions, state.getRegionInfo()); } } return regions; }
@Test public void testBasicStartUp() throws IOException { RSGroupInfo defaultInfo = rsGroupAdmin.getRSGroupInfo(RSGroupInfo.DEFAULT_GROUP); assertEquals(4, defaultInfo.getServers().size()); // Assignment of root and meta regions. int count = master.getAssignmentManager().getRegionStates().getRegionAssignments().size(); //3 meta,namespace, group assertEquals(3, count); }
public String explainTableAvailability(TableName tableName) throws IOException { String msg = explainTableState(tableName, TableState.State.ENABLED) + ", "; if (getHBaseCluster().getMaster().isAlive()) { Map<RegionInfo, ServerName> assignments = getHBaseCluster().getMaster().getAssignmentManager().getRegionStates() .getRegionAssignments(); final List<Pair<RegionInfo, ServerName>> metaLocations = MetaTableAccessor.getTableRegionsAndLocations(connection, tableName); for (Pair<RegionInfo, ServerName> metaLocation : metaLocations) { RegionInfo hri = metaLocation.getFirst(); ServerName sn = metaLocation.getSecond(); if (!assignments.containsKey(hri)) { msg += ", region " + hri + " not assigned, but found in meta, it expected to be on " + sn; } else if (sn == null) { msg += ", region " + hri + " assigned, but has no server in meta"; } else if (!sn.equals(assignments.get(hri))) { msg += ", region " + hri + " assigned, but has different servers in meta and AM ( " + sn + " <> " + assignments.get(hri); } } } return msg; }
assignments = master.getMaster().getAssignmentManager().getRegionStates().getRegionAssignments(); } while (assignments == null || assignments.size() < 2); RegionInfo hri = null;
RSGroupAdmin groupAdmin = new RSGroupAdminClient(TEST_UTIL.getConnection()); groupAdmin.addRSGroup(newGroup); if(master.getAssignmentManager().getRegionStates().getRegionAssignments() .containsValue(failoverRS.getServerName())) { for (HRegionInfo regionInfo : hbaseAdmin.getOnlineRegions(failoverRS.getServerName())) {