HBASE-25365 The log in move_servers_rsgroup is incorrect (#2743)
Signed-off-by: stack <stack@apache.org>
This commit is contained in:
parent
9b4be47c24
commit
b6c03f2027
|
@ -199,11 +199,13 @@ public class RSGroupAdminServer implements RSGroupAdmin {
|
||||||
* @param movedServers the servers that are moved to new group
|
* @param movedServers the servers that are moved to new group
|
||||||
* @param movedTables the tables that are moved to new group
|
* @param movedTables the tables that are moved to new group
|
||||||
* @param srcGrpServers all servers in the source group, excluding the movedServers
|
* @param srcGrpServers all servers in the source group, excluding the movedServers
|
||||||
* @param targetGrp the target group
|
* @param targetGroupName the target group
|
||||||
|
* @param sourceGroupName the source group
|
||||||
* @throws IOException if any error while moving regions
|
* @throws IOException if any error while moving regions
|
||||||
*/
|
*/
|
||||||
private void moveServerRegionsFromGroup(Set<Address> movedServers, Set<TableName> movedTables,
|
private void moveServerRegionsFromGroup(Set<Address> movedServers, Set<TableName> movedTables,
|
||||||
Set<Address> srcGrpServers, RSGroupInfo targetGrp) throws IOException {
|
Set<Address> srcGrpServers, String targetGroupName,
|
||||||
|
String sourceGroupName) throws IOException {
|
||||||
// Get server names corresponding to given Addresses
|
// Get server names corresponding to given Addresses
|
||||||
List<ServerName> movedServerNames = new ArrayList<>(movedServers.size());
|
List<ServerName> movedServerNames = new ArrayList<>(movedServers.size());
|
||||||
List<ServerName> srcGrpServerNames = new ArrayList<>(srcGrpServers.size());
|
List<ServerName> srcGrpServerNames = new ArrayList<>(srcGrpServers.size());
|
||||||
|
@ -229,7 +231,7 @@ public class RSGroupAdminServer implements RSGroupAdmin {
|
||||||
if (!movedTables.contains(region.getTable()) && !srcGrpServers
|
if (!movedTables.contains(region.getTable()) && !srcGrpServers
|
||||||
.contains(getRegionAddress(region))) {
|
.contains(getRegionAddress(region))) {
|
||||||
LOG.info("Moving server region {}, which do not belong to RSGroup {}",
|
LOG.info("Moving server region {}, which do not belong to RSGroup {}",
|
||||||
region.getShortNameToLog(), targetGrp.getName());
|
region.getShortNameToLog(), targetGroupName);
|
||||||
// Move region back to source RSGroup servers
|
// Move region back to source RSGroup servers
|
||||||
ServerName dest =
|
ServerName dest =
|
||||||
this.master.getLoadBalancer().randomAssignment(region, srcGrpServerNames);
|
this.master.getLoadBalancer().randomAssignment(region, srcGrpServerNames);
|
||||||
|
@ -243,17 +245,16 @@ public class RSGroupAdminServer implements RSGroupAdmin {
|
||||||
assignmentFutures.add(Pair.newPair(region, future));
|
assignmentFutures.add(Pair.newPair(region, future));
|
||||||
} catch (Exception ioe) {
|
} catch (Exception ioe) {
|
||||||
errorInRegionMove = true;
|
errorInRegionMove = true;
|
||||||
LOG.error("Move region {} from group failed, will retry, current retry time is {}",
|
LOG.error("Move region {} failed, will retry, current retry time is {}",
|
||||||
region.getShortNameToLog(), retry, ioe);
|
region.getShortNameToLog(), retry, ioe);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
boolean allRegionsMoved =
|
boolean allRegionsMoved =
|
||||||
waitForRegionMovement(assignmentFutures, targetGrp.getName(), retry);
|
waitForRegionMovement(assignmentFutures, sourceGroupName, retry);
|
||||||
if (allRegionsMoved && !errorInRegionMove) {
|
if (allRegionsMoved && !errorInRegionMove) {
|
||||||
LOG.info("All regions from server(s) {} moved to target group {}.", movedServerNames,
|
LOG.info("All regions from {} are moved back to {}", movedServerNames, sourceGroupName);
|
||||||
targetGrp.getName());
|
|
||||||
return;
|
return;
|
||||||
} else {
|
} else {
|
||||||
retry++;
|
retry++;
|
||||||
|
@ -277,9 +278,9 @@ public class RSGroupAdminServer implements RSGroupAdmin {
|
||||||
* completion even if some region movement fails.
|
* completion even if some region movement fails.
|
||||||
*/
|
*/
|
||||||
private boolean waitForRegionMovement(List<Pair<RegionInfo, Future<byte[]>>> regionMoveFutures,
|
private boolean waitForRegionMovement(List<Pair<RegionInfo, Future<byte[]>>> regionMoveFutures,
|
||||||
String tgtGrpName, int retryCount) {
|
String groupName, int retryCount) {
|
||||||
LOG.info("Moving {} region(s) to group {}, current retry={}", regionMoveFutures.size(),
|
LOG.info("Moving {} region(s) to group {}, current retry={}", regionMoveFutures.size(),
|
||||||
tgtGrpName, retryCount);
|
groupName, retryCount);
|
||||||
boolean allRegionsMoved = true;
|
boolean allRegionsMoved = true;
|
||||||
for (Pair<RegionInfo, Future<byte[]>> pair : regionMoveFutures) {
|
for (Pair<RegionInfo, Future<byte[]>> pair : regionMoveFutures) {
|
||||||
try {
|
try {
|
||||||
|
@ -295,7 +296,7 @@ public class RSGroupAdminServer implements RSGroupAdmin {
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
allRegionsMoved = false;
|
allRegionsMoved = false;
|
||||||
LOG.error("Move region {} to group {} failed, will retry on next attempt",
|
LOG.error("Move region {} to group {} failed, will retry on next attempt",
|
||||||
pair.getFirst().getShortNameToLog(), tgtGrpName, e);
|
pair.getFirst().getShortNameToLog(), groupName, e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return allRegionsMoved;
|
return allRegionsMoved;
|
||||||
|
@ -426,7 +427,7 @@ public class RSGroupAdminServer implements RSGroupAdmin {
|
||||||
targetGroupName);
|
targetGroupName);
|
||||||
moveServerRegionsFromGroup(movedServers, Collections.emptySet(),
|
moveServerRegionsFromGroup(movedServers, Collections.emptySet(),
|
||||||
rsGroupInfoManager.getRSGroup(srcGrp.getName()).getServers(),
|
rsGroupInfoManager.getRSGroup(srcGrp.getName()).getServers(),
|
||||||
rsGroupInfoManager.getRSGroup(targetGroupName));
|
targetGroupName, srcGrp.getName());
|
||||||
LOG.info("Move servers done: {} => {}", srcGrp.getName(), targetGroupName);
|
LOG.info("Move servers done: {} => {}", srcGrp.getName(), targetGroupName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -579,7 +580,7 @@ public class RSGroupAdminServer implements RSGroupAdmin {
|
||||||
//move regions on these servers which do not belong to group tables
|
//move regions on these servers which do not belong to group tables
|
||||||
moveServerRegionsFromGroup(servers, tables,
|
moveServerRegionsFromGroup(servers, tables,
|
||||||
rsGroupInfoManager.getRSGroup(srcGroup).getServers(),
|
rsGroupInfoManager.getRSGroup(srcGroup).getServers(),
|
||||||
rsGroupInfoManager.getRSGroup(targetGroup));
|
targetGroup, srcGroup);
|
||||||
//move regions of these tables which are not on group servers
|
//move regions of these tables which are not on group servers
|
||||||
moveTableRegionsToGroup(tables, rsGroupInfoManager.getRSGroup(targetGroup));
|
moveTableRegionsToGroup(tables, rsGroupInfoManager.getRSGroup(targetGroup));
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue