/** Spin up a cluster with a bunch of regions on it. */ @BeforeClass public static void setUpBeforeClass() throws Exception { TEST_UTIL.startMiniCluster(NB_SLAVES); TEST_UTIL.getHBaseCluster().waitForActiveAndReadyMaster(); TEST_UTIL.getConfiguration().setBoolean("hbase.master.enabletable.roundrobin", true); final List<String> families = new ArrayList<String>(1); families.add("family"); TEST_UTIL.createRandomTable("table", families, 1, 0, 0, COUNT_OF_REGIONS, 0); // Ensure a stable env TEST_UTIL.getHBaseAdmin().setBalancerRunning(false, false); boolean ready = false; while (!ready) { waitForAllRegionsOnline(); // Assert that every regionserver has some regions on it. int i = 0; ready = true; while (i < NB_SLAVES && ready) { HRegionServer hrs = TEST_UTIL.getMiniHBaseCluster().getRegionServer(i); if (ProtobufUtil.getOnlineRegions(hrs).isEmpty()) { ready = false; } i++; } if (!ready) { TEST_UTIL.getHBaseAdmin().setBalancerRunning(true, true); Assert.assertTrue("Can't start a balance!", TEST_UTIL.getHBaseAdmin().balancer()); TEST_UTIL.getHBaseAdmin().setBalancerRunning(false, false); Thread.sleep(100); } } }