HBASE-15927 Remove HMaster.assignRegion()
This commit is contained in:
parent
0cbce07626
commit
f0c159b5fe
@ -2378,10 +2378,6 @@ public class HMaster extends HRegionServer implements MasterServices {
|
|||||||
return this.initializationBeforeMetaAssignment;
|
return this.initializationBeforeMetaAssignment;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void assignRegion(HRegionInfo hri) {
|
|
||||||
assignmentManager.assign(hri);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Compute the average load across all region servers.
|
* Compute the average load across all region servers.
|
||||||
* Currently, this uses a very naive computation - just uses the number of
|
* Currently, this uses a very naive computation - just uses the number of
|
||||||
|
@ -3199,6 +3199,21 @@ public class HBaseTestingUtility extends HBaseCommonTestingUtility {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Uses directly the assignment manager to assign the region.
|
||||||
|
* and waits until the specified region has completed assignment.
|
||||||
|
* @param tableName the table name
|
||||||
|
* @throws IOException
|
||||||
|
* @throw InterruptedException
|
||||||
|
* @return true if the region is assigned false otherwise.
|
||||||
|
*/
|
||||||
|
public boolean assignRegion(final HRegionInfo regionInfo)
|
||||||
|
throws IOException, InterruptedException {
|
||||||
|
final AssignmentManager am = getHBaseCluster().getMaster().getAssignmentManager();
|
||||||
|
am.assign(regionInfo);
|
||||||
|
return am.waitForAssignment(regionInfo);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Wait until all regions for a table in hbase:meta have a non-empty
|
* Wait until all regions for a table in hbase:meta have a non-empty
|
||||||
* info:server, up to a configuable timeout value (default is 60 seconds)
|
* info:server, up to a configuable timeout value (default is 60 seconds)
|
||||||
|
@ -448,7 +448,7 @@ public class TestMetaWithReplicas {
|
|||||||
// create in-memory state otherwise master won't assign
|
// create in-memory state otherwise master won't assign
|
||||||
TEST_UTIL.getMiniHBaseCluster().getMaster().getAssignmentManager()
|
TEST_UTIL.getMiniHBaseCluster().getMaster().getAssignmentManager()
|
||||||
.getRegionStates().createRegionState(h);
|
.getRegionStates().createRegionState(h);
|
||||||
TEST_UTIL.getMiniHBaseCluster().getMaster().assignRegion(h);
|
TEST_UTIL.assignRegion(h);
|
||||||
HBaseFsckRepair.waitUntilAssigned(TEST_UTIL.getHBaseAdmin(), h);
|
HBaseFsckRepair.waitUntilAssigned(TEST_UTIL.getHBaseAdmin(), h);
|
||||||
// check that problem exists
|
// check that problem exists
|
||||||
HBaseFsck hbck = doFsck(TEST_UTIL.getConfiguration(), false);
|
HBaseFsck hbck = doFsck(TEST_UTIL.getConfiguration(), false);
|
||||||
|
@ -191,9 +191,8 @@ public class TestAssignmentManagerOnCluster {
|
|||||||
MetaTableAccessor.addRegionToMeta(meta, hri);
|
MetaTableAccessor.addRegionToMeta(meta, hri);
|
||||||
|
|
||||||
HMaster master = TEST_UTIL.getHBaseCluster().getMaster();
|
HMaster master = TEST_UTIL.getHBaseCluster().getMaster();
|
||||||
master.assignRegion(hri);
|
|
||||||
AssignmentManager am = master.getAssignmentManager();
|
AssignmentManager am = master.getAssignmentManager();
|
||||||
am.waitForAssignment(hri);
|
TEST_UTIL.assignRegion(hri);
|
||||||
|
|
||||||
RegionStates regionStates = am.getRegionStates();
|
RegionStates regionStates = am.getRegionStates();
|
||||||
ServerName serverName = regionStates.getRegionServerOfRegion(hri);
|
ServerName serverName = regionStates.getRegionServerOfRegion(hri);
|
||||||
@ -248,7 +247,7 @@ public class TestAssignmentManagerOnCluster {
|
|||||||
final AssignmentManager am = master.getAssignmentManager();
|
final AssignmentManager am = master.getAssignmentManager();
|
||||||
RegionPlan plan = new RegionPlan(hri, null, deadServer);
|
RegionPlan plan = new RegionPlan(hri, null, deadServer);
|
||||||
am.addPlan(hri.getEncodedName(), plan);
|
am.addPlan(hri.getEncodedName(), plan);
|
||||||
master.assignRegion(hri);
|
TEST_UTIL.assignRegion(hri);
|
||||||
|
|
||||||
TEST_UTIL.waitFor(60000, new Waiter.Predicate<Exception>() {
|
TEST_UTIL.waitFor(60000, new Waiter.Predicate<Exception>() {
|
||||||
@Override
|
@Override
|
||||||
@ -446,9 +445,8 @@ public class TestAssignmentManagerOnCluster {
|
|||||||
MetaTableAccessor.addRegionToMeta(meta, hri);
|
MetaTableAccessor.addRegionToMeta(meta, hri);
|
||||||
|
|
||||||
HMaster master = TEST_UTIL.getHBaseCluster().getMaster();
|
HMaster master = TEST_UTIL.getHBaseCluster().getMaster();
|
||||||
master.assignRegion(hri);
|
|
||||||
AssignmentManager am = master.getAssignmentManager();
|
AssignmentManager am = master.getAssignmentManager();
|
||||||
assertTrue(am.waitForAssignment(hri));
|
assertTrue(TEST_UTIL.assignRegion(hri));
|
||||||
|
|
||||||
ServerName sn = am.getRegionStates().getRegionServerOfRegion(hri);
|
ServerName sn = am.getRegionStates().getRegionServerOfRegion(hri);
|
||||||
TEST_UTIL.assertRegionOnServer(hri, sn, 6000);
|
TEST_UTIL.assertRegionOnServer(hri, sn, 6000);
|
||||||
@ -495,9 +493,8 @@ public class TestAssignmentManagerOnCluster {
|
|||||||
MetaTableAccessor.addRegionToMeta(meta, hri);
|
MetaTableAccessor.addRegionToMeta(meta, hri);
|
||||||
|
|
||||||
HMaster master = TEST_UTIL.getHBaseCluster().getMaster();
|
HMaster master = TEST_UTIL.getHBaseCluster().getMaster();
|
||||||
master.assignRegion(hri);
|
|
||||||
AssignmentManager am = master.getAssignmentManager();
|
AssignmentManager am = master.getAssignmentManager();
|
||||||
assertTrue(am.waitForAssignment(hri));
|
assertTrue(TEST_UTIL.assignRegion(hri));
|
||||||
ServerName sn = am.getRegionStates().getRegionServerOfRegion(hri);
|
ServerName sn = am.getRegionStates().getRegionServerOfRegion(hri);
|
||||||
TEST_UTIL.assertRegionOnServer(hri, sn, 6000);
|
TEST_UTIL.assertRegionOnServer(hri, sn, 6000);
|
||||||
|
|
||||||
@ -543,9 +540,8 @@ public class TestAssignmentManagerOnCluster {
|
|||||||
MyLoadBalancer.controledRegion = hri;
|
MyLoadBalancer.controledRegion = hri;
|
||||||
|
|
||||||
HMaster master = TEST_UTIL.getHBaseCluster().getMaster();
|
HMaster master = TEST_UTIL.getHBaseCluster().getMaster();
|
||||||
master.assignRegion(hri);
|
|
||||||
AssignmentManager am = master.getAssignmentManager();
|
AssignmentManager am = master.getAssignmentManager();
|
||||||
assertFalse(am.waitForAssignment(hri));
|
assertFalse(TEST_UTIL.assignRegion(hri));
|
||||||
|
|
||||||
RegionState state = am.getRegionStates().getRegionState(hri);
|
RegionState state = am.getRegionStates().getRegionState(hri);
|
||||||
assertEquals(RegionState.State.FAILED_OPEN, state.getState());
|
assertEquals(RegionState.State.FAILED_OPEN, state.getState());
|
||||||
@ -553,8 +549,7 @@ public class TestAssignmentManagerOnCluster {
|
|||||||
assertNull(state.getServerName());
|
assertNull(state.getServerName());
|
||||||
|
|
||||||
MyLoadBalancer.controledRegion = null;
|
MyLoadBalancer.controledRegion = null;
|
||||||
master.assignRegion(hri);
|
assertTrue(TEST_UTIL.assignRegion(hri));
|
||||||
assertTrue(am.waitForAssignment(hri));
|
|
||||||
|
|
||||||
ServerName serverName = master.getAssignmentManager().
|
ServerName serverName = master.getAssignmentManager().
|
||||||
getRegionStates().getRegionServerOfRegion(hri);
|
getRegionStates().getRegionServerOfRegion(hri);
|
||||||
@ -581,17 +576,15 @@ public class TestAssignmentManagerOnCluster {
|
|||||||
desc.getTableName(), Bytes.toBytes("A"), Bytes.toBytes("Z"));
|
desc.getTableName(), Bytes.toBytes("A"), Bytes.toBytes("Z"));
|
||||||
MetaTableAccessor.addRegionToMeta(meta, hri);
|
MetaTableAccessor.addRegionToMeta(meta, hri);
|
||||||
|
|
||||||
MyLoadBalancer.controledRegion = hri;
|
|
||||||
|
|
||||||
HMaster master = TEST_UTIL.getHBaseCluster().getMaster();
|
HMaster master = TEST_UTIL.getHBaseCluster().getMaster();
|
||||||
AssignmentManager am = master.getAssignmentManager();
|
AssignmentManager am = master.getAssignmentManager();
|
||||||
|
|
||||||
// round-robin assignment but balancer cannot find a plan
|
// round-robin assignment but balancer cannot find a plan
|
||||||
// assignment should fail
|
// assignment should fail
|
||||||
am.assign(Arrays.asList(hri));
|
MyLoadBalancer.controledRegion = hri;
|
||||||
|
|
||||||
// if bulk assignment cannot update region state to online
|
// if bulk assignment cannot update region state to online
|
||||||
// or failed_open this waits until timeout
|
// or failed_open this waits until timeout
|
||||||
assertFalse(am.waitForAssignment(hri));
|
assertFalse(TEST_UTIL.assignRegion(hri));
|
||||||
RegionState state = am.getRegionStates().getRegionState(hri);
|
RegionState state = am.getRegionStates().getRegionState(hri);
|
||||||
assertEquals(RegionState.State.FAILED_OPEN, state.getState());
|
assertEquals(RegionState.State.FAILED_OPEN, state.getState());
|
||||||
// Failed to open since no plan, so it's on no server
|
// Failed to open since no plan, so it's on no server
|
||||||
@ -599,8 +592,7 @@ public class TestAssignmentManagerOnCluster {
|
|||||||
|
|
||||||
// try again with valid plan
|
// try again with valid plan
|
||||||
MyLoadBalancer.controledRegion = null;
|
MyLoadBalancer.controledRegion = null;
|
||||||
am.assign(Arrays.asList(hri));
|
assertTrue(TEST_UTIL.assignRegion(hri));
|
||||||
assertTrue(am.waitForAssignment(hri));
|
|
||||||
|
|
||||||
ServerName serverName = master.getAssignmentManager().
|
ServerName serverName = master.getAssignmentManager().
|
||||||
getRegionStates().getRegionServerOfRegion(hri);
|
getRegionStates().getRegionServerOfRegion(hri);
|
||||||
@ -689,9 +681,8 @@ public class TestAssignmentManagerOnCluster {
|
|||||||
fs.create(regionDir, true);
|
fs.create(regionDir, true);
|
||||||
|
|
||||||
HMaster master = TEST_UTIL.getHBaseCluster().getMaster();
|
HMaster master = TEST_UTIL.getHBaseCluster().getMaster();
|
||||||
master.assignRegion(hri);
|
|
||||||
AssignmentManager am = master.getAssignmentManager();
|
AssignmentManager am = master.getAssignmentManager();
|
||||||
assertFalse(am.waitForAssignment(hri));
|
assertFalse(TEST_UTIL.assignRegion(hri));
|
||||||
|
|
||||||
RegionState state = am.getRegionStates().getRegionState(hri);
|
RegionState state = am.getRegionStates().getRegionState(hri);
|
||||||
assertEquals(RegionState.State.FAILED_OPEN, state.getState());
|
assertEquals(RegionState.State.FAILED_OPEN, state.getState());
|
||||||
@ -702,8 +693,7 @@ public class TestAssignmentManagerOnCluster {
|
|||||||
|
|
||||||
// remove the blocking file, so that region can be opened
|
// remove the blocking file, so that region can be opened
|
||||||
fs.delete(regionDir, true);
|
fs.delete(regionDir, true);
|
||||||
master.assignRegion(hri);
|
assertTrue(TEST_UTIL.assignRegion(hri));
|
||||||
assertTrue(am.waitForAssignment(hri));
|
|
||||||
|
|
||||||
ServerName serverName = master.getAssignmentManager().
|
ServerName serverName = master.getAssignmentManager().
|
||||||
getRegionStates().getRegionServerOfRegion(hri);
|
getRegionStates().getRegionServerOfRegion(hri);
|
||||||
@ -768,9 +758,8 @@ public class TestAssignmentManagerOnCluster {
|
|||||||
MetaTableAccessor.addRegionToMeta(meta, hri);
|
MetaTableAccessor.addRegionToMeta(meta, hri);
|
||||||
|
|
||||||
HMaster master = TEST_UTIL.getHBaseCluster().getMaster();
|
HMaster master = TEST_UTIL.getHBaseCluster().getMaster();
|
||||||
master.assignRegion(hri);
|
|
||||||
AssignmentManager am = master.getAssignmentManager();
|
AssignmentManager am = master.getAssignmentManager();
|
||||||
assertTrue(am.waitForAssignment(hri));
|
assertTrue(TEST_UTIL.assignRegion(hri));
|
||||||
ServerName sn = am.getRegionStates().getRegionServerOfRegion(hri);
|
ServerName sn = am.getRegionStates().getRegionServerOfRegion(hri);
|
||||||
TEST_UTIL.assertRegionOnServer(hri, sn, 6000);
|
TEST_UTIL.assertRegionOnServer(hri, sn, 6000);
|
||||||
|
|
||||||
@ -816,8 +805,9 @@ public class TestAssignmentManagerOnCluster {
|
|||||||
MyRegionObserver.postOpenEnabled.set(true);
|
MyRegionObserver.postOpenEnabled.set(true);
|
||||||
MyRegionObserver.postOpenCalled = false;
|
MyRegionObserver.postOpenCalled = false;
|
||||||
HMaster master = TEST_UTIL.getHBaseCluster().getMaster();
|
HMaster master = TEST_UTIL.getHBaseCluster().getMaster();
|
||||||
|
AssignmentManager am = master.getAssignmentManager();
|
||||||
// Region will be opened, but it won't complete
|
// Region will be opened, but it won't complete
|
||||||
master.assignRegion(hri);
|
am.assign(hri);
|
||||||
long end = EnvironmentEdgeManager.currentTime() + 20000;
|
long end = EnvironmentEdgeManager.currentTime() + 20000;
|
||||||
// Wait till postOpen is called
|
// Wait till postOpen is called
|
||||||
while (!MyRegionObserver.postOpenCalled ) {
|
while (!MyRegionObserver.postOpenCalled ) {
|
||||||
@ -826,7 +816,6 @@ public class TestAssignmentManagerOnCluster {
|
|||||||
Thread.sleep(300);
|
Thread.sleep(300);
|
||||||
}
|
}
|
||||||
|
|
||||||
AssignmentManager am = master.getAssignmentManager();
|
|
||||||
// Now let's unassign it, it should do nothing
|
// Now let's unassign it, it should do nothing
|
||||||
am.unassign(hri);
|
am.unassign(hri);
|
||||||
RegionState state = am.getRegionStates().getRegionState(hri);
|
RegionState state = am.getRegionStates().getRegionState(hri);
|
||||||
@ -887,12 +876,14 @@ public class TestAssignmentManagerOnCluster {
|
|||||||
|
|
||||||
// Assign the region
|
// Assign the region
|
||||||
master = (MyMaster)cluster.getMaster();
|
master = (MyMaster)cluster.getMaster();
|
||||||
master.assignRegion(hri);
|
AssignmentManager am = master.getAssignmentManager();
|
||||||
|
|
||||||
|
am.assign(hri);
|
||||||
|
|
||||||
// Hold SSH before killing the hosting server
|
// Hold SSH before killing the hosting server
|
||||||
master.enableSSH(false);
|
master.enableSSH(false);
|
||||||
|
|
||||||
AssignmentManager am = master.getAssignmentManager();
|
|
||||||
RegionStates regionStates = am.getRegionStates();
|
RegionStates regionStates = am.getRegionStates();
|
||||||
ServerName metaServer = regionStates.getRegionServerOfRegion(
|
ServerName metaServer = regionStates.getRegionServerOfRegion(
|
||||||
HRegionInfo.FIRST_META_REGIONINFO);
|
HRegionInfo.FIRST_META_REGIONINFO);
|
||||||
@ -1015,10 +1006,9 @@ public class TestAssignmentManagerOnCluster {
|
|||||||
|
|
||||||
// Assign the region
|
// Assign the region
|
||||||
master = (MyMaster)cluster.getMaster();
|
master = (MyMaster)cluster.getMaster();
|
||||||
master.assignRegion(hri);
|
|
||||||
AssignmentManager am = master.getAssignmentManager();
|
AssignmentManager am = master.getAssignmentManager();
|
||||||
RegionStates regionStates = am.getRegionStates();
|
RegionStates regionStates = am.getRegionStates();
|
||||||
assertTrue(am.waitForAssignment(hri));
|
assertTrue(TEST_UTIL.assignRegion(hri));
|
||||||
|
|
||||||
// Disable the table
|
// Disable the table
|
||||||
admin.disableTable(table);
|
admin.disableTable(table);
|
||||||
@ -1056,9 +1046,9 @@ public class TestAssignmentManagerOnCluster {
|
|||||||
|
|
||||||
// Assign the region
|
// Assign the region
|
||||||
master = (MyMaster)cluster.getMaster();
|
master = (MyMaster)cluster.getMaster();
|
||||||
master.assignRegion(hri);
|
|
||||||
|
|
||||||
AssignmentManager am = master.getAssignmentManager();
|
AssignmentManager am = master.getAssignmentManager();
|
||||||
|
am.assign(hri);
|
||||||
|
|
||||||
RegionStates regionStates = am.getRegionStates();
|
RegionStates regionStates = am.getRegionStates();
|
||||||
ServerName metaServer = regionStates.getRegionServerOfRegion(
|
ServerName metaServer = regionStates.getRegionServerOfRegion(
|
||||||
HRegionInfo.FIRST_META_REGIONINFO);
|
HRegionInfo.FIRST_META_REGIONINFO);
|
||||||
@ -1129,9 +1119,9 @@ public class TestAssignmentManagerOnCluster {
|
|||||||
|
|
||||||
// Assign the region
|
// Assign the region
|
||||||
master = (MyMaster)cluster.getMaster();
|
master = (MyMaster)cluster.getMaster();
|
||||||
master.assignRegion(hri);
|
|
||||||
|
|
||||||
AssignmentManager am = master.getAssignmentManager();
|
AssignmentManager am = master.getAssignmentManager();
|
||||||
|
am.assign(hri);
|
||||||
|
|
||||||
RegionStates regionStates = am.getRegionStates();
|
RegionStates regionStates = am.getRegionStates();
|
||||||
ServerName metaServer = regionStates.getRegionServerOfRegion(
|
ServerName metaServer = regionStates.getRegionServerOfRegion(
|
||||||
HRegionInfo.FIRST_META_REGIONINFO);
|
HRegionInfo.FIRST_META_REGIONINFO);
|
||||||
@ -1196,9 +1186,8 @@ public class TestAssignmentManagerOnCluster {
|
|||||||
new HRegionInfo(desc.getTableName(), Bytes.toBytes("A"), Bytes.toBytes("Z"));
|
new HRegionInfo(desc.getTableName(), Bytes.toBytes("A"), Bytes.toBytes("Z"));
|
||||||
MetaTableAccessor.addRegionToMeta(meta, hri);
|
MetaTableAccessor.addRegionToMeta(meta, hri);
|
||||||
HMaster master = TEST_UTIL.getHBaseCluster().getMaster();
|
HMaster master = TEST_UTIL.getHBaseCluster().getMaster();
|
||||||
master.assignRegion(hri);
|
|
||||||
AssignmentManager am = master.getAssignmentManager();
|
AssignmentManager am = master.getAssignmentManager();
|
||||||
am.waitForAssignment(hri);
|
TEST_UTIL.assignRegion(hri);
|
||||||
RegionStates regionStates = am.getRegionStates();
|
RegionStates regionStates = am.getRegionStates();
|
||||||
ServerName serverName = regionStates.getRegionServerOfRegion(hri);
|
ServerName serverName = regionStates.getRegionServerOfRegion(hri);
|
||||||
// Assert the the region is actually open on the server
|
// Assert the the region is actually open on the server
|
||||||
|
@ -310,9 +310,8 @@ public class TestHBaseFsckOneRS extends BaseTestHBaseFsck {
|
|||||||
|
|
||||||
HRegionInfo hriOverlap =
|
HRegionInfo hriOverlap =
|
||||||
createRegion(tbl.getTableDescriptor(), Bytes.toBytes("A2"), Bytes.toBytes("B"));
|
createRegion(tbl.getTableDescriptor(), Bytes.toBytes("A2"), Bytes.toBytes("B"));
|
||||||
TEST_UTIL.getHBaseCluster().getMaster().assignRegion(hriOverlap);
|
TEST_UTIL.assignRegion(hriOverlap);
|
||||||
TEST_UTIL.getHBaseCluster().getMaster().getAssignmentManager()
|
|
||||||
.waitForAssignment(hriOverlap);
|
|
||||||
ServerName server = regionStates.getRegionServerOfRegion(hriOverlap);
|
ServerName server = regionStates.getRegionServerOfRegion(hriOverlap);
|
||||||
TEST_UTIL.assertRegionOnServer(hriOverlap, server, REGION_ONLINE_TIMEOUT);
|
TEST_UTIL.assertRegionOnServer(hriOverlap, server, REGION_ONLINE_TIMEOUT);
|
||||||
|
|
||||||
@ -350,9 +349,8 @@ public class TestHBaseFsckOneRS extends BaseTestHBaseFsck {
|
|||||||
// Mess it up by creating an overlap in the metadata
|
// Mess it up by creating an overlap in the metadata
|
||||||
HRegionInfo hriOverlap =
|
HRegionInfo hriOverlap =
|
||||||
createRegion(tbl.getTableDescriptor(), Bytes.toBytes("A2"), Bytes.toBytes("B2"));
|
createRegion(tbl.getTableDescriptor(), Bytes.toBytes("A2"), Bytes.toBytes("B2"));
|
||||||
TEST_UTIL.getHBaseCluster().getMaster().assignRegion(hriOverlap);
|
TEST_UTIL.assignRegion(hriOverlap);
|
||||||
TEST_UTIL.getHBaseCluster().getMaster().getAssignmentManager()
|
|
||||||
.waitForAssignment(hriOverlap);
|
|
||||||
ServerName server = regionStates.getRegionServerOfRegion(hriOverlap);
|
ServerName server = regionStates.getRegionServerOfRegion(hriOverlap);
|
||||||
TEST_UTIL.assertRegionOnServer(hriOverlap, server, REGION_ONLINE_TIMEOUT);
|
TEST_UTIL.assertRegionOnServer(hriOverlap, server, REGION_ONLINE_TIMEOUT);
|
||||||
|
|
||||||
@ -1225,9 +1223,8 @@ public class TestHBaseFsckOneRS extends BaseTestHBaseFsck {
|
|||||||
|
|
||||||
HRegionInfo hriOverlap =
|
HRegionInfo hriOverlap =
|
||||||
createRegion(tbl.getTableDescriptor(), Bytes.toBytes("A2"), Bytes.toBytes("B"));
|
createRegion(tbl.getTableDescriptor(), Bytes.toBytes("A2"), Bytes.toBytes("B"));
|
||||||
TEST_UTIL.getHBaseCluster().getMaster().assignRegion(hriOverlap);
|
TEST_UTIL.assignRegion(hriOverlap);
|
||||||
TEST_UTIL.getHBaseCluster().getMaster().getAssignmentManager()
|
|
||||||
.waitForAssignment(hriOverlap);
|
|
||||||
ServerName server = regionStates.getRegionServerOfRegion(hriOverlap);
|
ServerName server = regionStates.getRegionServerOfRegion(hriOverlap);
|
||||||
TEST_UTIL.assertRegionOnServer(hriOverlap, server, REGION_ONLINE_TIMEOUT);
|
TEST_UTIL.assertRegionOnServer(hriOverlap, server, REGION_ONLINE_TIMEOUT);
|
||||||
|
|
||||||
@ -1351,9 +1348,8 @@ public class TestHBaseFsckOneRS extends BaseTestHBaseFsck {
|
|||||||
// Now let's mess it up, by adding a region with a duplicate startkey
|
// Now let's mess it up, by adding a region with a duplicate startkey
|
||||||
HRegionInfo hriDupe =
|
HRegionInfo hriDupe =
|
||||||
createRegion(tbl.getTableDescriptor(), Bytes.toBytes("B"), Bytes.toBytes("B"));
|
createRegion(tbl.getTableDescriptor(), Bytes.toBytes("B"), Bytes.toBytes("B"));
|
||||||
TEST_UTIL.getHBaseCluster().getMaster().assignRegion(hriDupe);
|
TEST_UTIL.assignRegion(hriDupe);
|
||||||
TEST_UTIL.getHBaseCluster().getMaster().getAssignmentManager()
|
|
||||||
.waitForAssignment(hriDupe);
|
|
||||||
ServerName server = regionStates.getRegionServerOfRegion(hriDupe);
|
ServerName server = regionStates.getRegionServerOfRegion(hriDupe);
|
||||||
TEST_UTIL.assertRegionOnServer(hriDupe, server, REGION_ONLINE_TIMEOUT);
|
TEST_UTIL.assertRegionOnServer(hriDupe, server, REGION_ONLINE_TIMEOUT);
|
||||||
|
|
||||||
|
@ -136,9 +136,8 @@ public class TestHBaseFsckTwoRS extends BaseTestHBaseFsck {
|
|||||||
// Now let's mess it up, by adding a region with a duplicate startkey
|
// Now let's mess it up, by adding a region with a duplicate startkey
|
||||||
HRegionInfo hriDupe =
|
HRegionInfo hriDupe =
|
||||||
createRegion(tbl.getTableDescriptor(), Bytes.toBytes("A"), Bytes.toBytes("A2"));
|
createRegion(tbl.getTableDescriptor(), Bytes.toBytes("A"), Bytes.toBytes("A2"));
|
||||||
TEST_UTIL.getHBaseCluster().getMaster().assignRegion(hriDupe);
|
TEST_UTIL.assignRegion(hriDupe);
|
||||||
TEST_UTIL.getHBaseCluster().getMaster().getAssignmentManager()
|
|
||||||
.waitForAssignment(hriDupe);
|
|
||||||
ServerName server = regionStates.getRegionServerOfRegion(hriDupe);
|
ServerName server = regionStates.getRegionServerOfRegion(hriDupe);
|
||||||
TEST_UTIL.assertRegionOnServer(hriDupe, server, REGION_ONLINE_TIMEOUT);
|
TEST_UTIL.assertRegionOnServer(hriDupe, server, REGION_ONLINE_TIMEOUT);
|
||||||
|
|
||||||
@ -176,10 +175,8 @@ public class TestHBaseFsckTwoRS extends BaseTestHBaseFsck {
|
|||||||
// Now let's mess it up, by adding a region with a duplicate startkey
|
// Now let's mess it up, by adding a region with a duplicate startkey
|
||||||
HRegionInfo hriDupe =
|
HRegionInfo hriDupe =
|
||||||
createRegion(tbl.getTableDescriptor(), Bytes.toBytes("A"), Bytes.toBytes("B"));
|
createRegion(tbl.getTableDescriptor(), Bytes.toBytes("A"), Bytes.toBytes("B"));
|
||||||
|
TEST_UTIL.assignRegion(hriDupe);
|
||||||
|
|
||||||
TEST_UTIL.getHBaseCluster().getMaster().assignRegion(hriDupe);
|
|
||||||
TEST_UTIL.getHBaseCluster().getMaster().getAssignmentManager()
|
|
||||||
.waitForAssignment(hriDupe);
|
|
||||||
ServerName server = regionStates.getRegionServerOfRegion(hriDupe);
|
ServerName server = regionStates.getRegionServerOfRegion(hriDupe);
|
||||||
TEST_UTIL.assertRegionOnServer(hriDupe, server, REGION_ONLINE_TIMEOUT);
|
TEST_UTIL.assertRegionOnServer(hriDupe, server, REGION_ONLINE_TIMEOUT);
|
||||||
|
|
||||||
@ -228,9 +225,8 @@ public class TestHBaseFsckTwoRS extends BaseTestHBaseFsck {
|
|||||||
// Mess it up by creating an overlap in the metadata
|
// Mess it up by creating an overlap in the metadata
|
||||||
HRegionInfo hriOverlap =
|
HRegionInfo hriOverlap =
|
||||||
createRegion(tbl.getTableDescriptor(), Bytes.toBytes("A2"), Bytes.toBytes("B"));
|
createRegion(tbl.getTableDescriptor(), Bytes.toBytes("A2"), Bytes.toBytes("B"));
|
||||||
TEST_UTIL.getHBaseCluster().getMaster().assignRegion(hriOverlap);
|
TEST_UTIL.assignRegion(hriOverlap);
|
||||||
TEST_UTIL.getHBaseCluster().getMaster().getAssignmentManager()
|
|
||||||
.waitForAssignment(hriOverlap);
|
|
||||||
ServerName server = regionStates.getRegionServerOfRegion(hriOverlap);
|
ServerName server = regionStates.getRegionServerOfRegion(hriOverlap);
|
||||||
TEST_UTIL.assertRegionOnServer(hriOverlap, server, REGION_ONLINE_TIMEOUT);
|
TEST_UTIL.assertRegionOnServer(hriOverlap, server, REGION_ONLINE_TIMEOUT);
|
||||||
|
|
||||||
@ -317,12 +313,11 @@ public class TestHBaseFsckTwoRS extends BaseTestHBaseFsck {
|
|||||||
HMaster master = cluster.getMaster();
|
HMaster master = cluster.getMaster();
|
||||||
HRegionInfo hriOverlap1 =
|
HRegionInfo hriOverlap1 =
|
||||||
createRegion(tbl.getTableDescriptor(), Bytes.toBytes("A"), Bytes.toBytes("AB"));
|
createRegion(tbl.getTableDescriptor(), Bytes.toBytes("A"), Bytes.toBytes("AB"));
|
||||||
master.assignRegion(hriOverlap1);
|
TEST_UTIL.assignRegion(hriOverlap1);
|
||||||
master.getAssignmentManager().waitForAssignment(hriOverlap1);
|
|
||||||
HRegionInfo hriOverlap2 =
|
HRegionInfo hriOverlap2 =
|
||||||
createRegion(tbl.getTableDescriptor(), Bytes.toBytes("AB"), Bytes.toBytes("B"));
|
createRegion(tbl.getTableDescriptor(), Bytes.toBytes("AB"), Bytes.toBytes("B"));
|
||||||
master.assignRegion(hriOverlap2);
|
TEST_UTIL.assignRegion(hriOverlap2);
|
||||||
master.getAssignmentManager().waitForAssignment(hriOverlap2);
|
|
||||||
|
|
||||||
HBaseFsck hbck = doFsck(conf, false);
|
HBaseFsck hbck = doFsck(conf, false);
|
||||||
assertErrors(hbck, new HBaseFsck.ErrorReporter.ERROR_CODE[] {HBaseFsck.ErrorReporter.ERROR_CODE.DUPE_STARTKEYS,
|
assertErrors(hbck, new HBaseFsck.ErrorReporter.ERROR_CODE[] {HBaseFsck.ErrorReporter.ERROR_CODE.DUPE_STARTKEYS,
|
||||||
@ -458,7 +453,7 @@ public class TestHBaseFsckTwoRS extends BaseTestHBaseFsck {
|
|||||||
scanner.close();
|
scanner.close();
|
||||||
meta.close();
|
meta.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This creates and fixes a bad table with a missing region -- hole in meta and data present but
|
* This creates and fixes a bad table with a missing region -- hole in meta and data present but
|
||||||
* .regioninfo missing (an orphan hdfs region)in the fs. At last we check every row was present
|
* .regioninfo missing (an orphan hdfs region)in the fs. At last we check every row was present
|
||||||
|
Loading…
x
Reference in New Issue
Block a user