/** * @return Index into List of {@link MiniHBaseCluster#getRegionServerThreads()} * of HRS carrying regionName. Returns -1 if none found. */ public int getServerWithMeta() { return getServerWith(HRegionInfo.FIRST_META_REGIONINFO.getRegionName()); }
int tableRegionIndex = cluster.getServerWith(hri.getRegionName()); assertTrue(tableRegionIndex != -1); HRegionServer tableRegionServer = cluster.getRegionServer(tableRegionIndex); tableRegionIndex = cluster.getServerWith(hri.getRegionName()); if (tableRegionIndex != -1 && tableRegionIndex != metaServerIndex) break; LOG.debug("Waiting on region move off the hbase:meta server; current index " + tableRegionIndex != -1 && tableRegionIndex != metaServerIndex); tableRegionIndex = cluster.getServerWith(hri.getRegionName()); assertTrue(tableRegionIndex != -1); assertNotSame(metaServerIndex, tableRegionIndex);
RetryCounter retrier = new RetryCounter(numRetries+1, (int)pause, TimeUnit.MICROSECONDS); while(retrier.shouldRetry()) { int index = getMiniHBaseCluster().getServerWith(firstRegionName); if (index != -1) { return getMiniHBaseCluster().getRegionServerThreads().get(index).getRegionServer();
@Test public void testMerge() throws IOException, InterruptedException, ExecutionException, TimeoutException { try (Table table = createTable(true)) { table.put(new Put(Bytes.toBytes(0)).addColumn(CF, CQ, Bytes.toBytes(0))); table.put(new Put(Bytes.toBytes(1)).addColumn(CF, CQ, Bytes.toBytes(0))); table.put(new Put(Bytes.toBytes(2)).addColumn(CF, CQ, Bytes.toBytes(0))); } UTIL.flush(NAME); MiniHBaseCluster cluster = UTIL.getMiniHBaseCluster(); List<HRegion> regions = cluster.getRegions(NAME); HRegion regionA = regions.get(0); HRegion regionB = regions.get(1); HRegionServer rsA = cluster.getRegionServer(cluster.getServerWith(regionA.getRegionInfo().getRegionName())); HRegionServer rsB = cluster.getRegionServer(cluster.getServerWith(regionB.getRegionInfo().getRegionName())); UTIL.getAdmin().mergeRegionsAsync(regionA.getRegionInfo().getRegionName(), regionB.getRegionInfo().getRegionName(), false).get(1, TimeUnit.MINUTES); long maxSeqIdA = getMaxSeqId(rsA, regionA.getRegionInfo()); long maxSeqIdB = getMaxSeqId(rsB, regionB.getRegionInfo()); HRegionLocation loc = UTIL.getConnection().getRegionLocator(NAME).getRegionLocation(Bytes.toBytes(0), true); assertEquals(Math.max(maxSeqIdA, maxSeqIdB) + 1, loc.getSeqNum()); } }
@Override public ServerName getServerHoldingRegion(final TableName tn, byte[] regionName) throws IOException { // Assume there is only one master thread which is the active master. // If there are multiple master threads, the backup master threads // should hold some regions. Please refer to #countServedRegions // to see how we find out all regions. HMaster master = getMaster(); Region region = master.getOnlineRegion(regionName); if (region != null) { return master.getServerName(); } int index = getServerWith(regionName); if (index < 0) { return null; } return getRegionServer(index).getServerName(); }
@Test public void testRegionMove() throws InterruptedException, ExecutionException, IOException { // This will leave a cached entry in location cache HRegionLocation loc = CONN.getRegionLocator(TABLE_NAME).getRegionLocation(ROW).get(); int index = TEST_UTIL.getHBaseCluster().getServerWith(loc.getRegion().getRegionName()); TEST_UTIL.getAdmin().move(loc.getRegion().getEncodedNameAsBytes(), Bytes.toBytes( TEST_UTIL.getHBaseCluster().getRegionServer(1 - index).getServerName().getServerName())); AsyncTable<?> table = CONN.getTableBuilder(TABLE_NAME).setRetryPause(100, TimeUnit.MILLISECONDS) .setMaxRetries(30).build(); table.put(new Put(ROW).addColumn(FAMILY, QUALIFIER, VALUE)).get(); // move back TEST_UTIL.getAdmin().move(loc.getRegion().getEncodedNameAsBytes(), Bytes.toBytes(loc.getServerName().getServerName())); Result result = table.get(new Get(ROW).addColumn(FAMILY, QUALIFIER)).get(); assertArrayEquals(VALUE, result.getValue(FAMILY, QUALIFIER)); }
for (HRegion h : oldRegions) LOG.debug("OLDREGION " + h.getRegionInfo()); try { int regionServerIndex = cluster.getServerWith(oldRegions.get(0).getRegionInfo() .getRegionName()); HRegionServer regionServer = cluster.getRegionServer(regionServerIndex); assertEquals("The specified table should be present.", true, tableExists); final HRegion region = findSplittableRegion(oldRegions); regionServerIndex = cluster.getServerWith(region.getRegionInfo().getRegionName()); regionServer = cluster.getRegionServer(regionServerIndex); assertTrue("not able to find a splittable region", region != null);
int index = utility1.getMiniHBaseCluster().getServerWith(hri.getRegionName()); WAL wal = utility1.getMiniHBaseCluster().getRegionServer(index).getWAL(region.getRegionInfo()); final byte[] rowName = Bytes.toBytes("testReplicationInReplay");
int regionServerIndex = cluster.getServerWith(region.getRegionInfo().getRegionName()); HRegionServer regionServer = cluster.getRegionServer(regionServerIndex);
@BeforeClass public static void setUp() throws Exception { conf = hbaseTestingUtility.getConfiguration(); hbaseTestingUtility.startMiniCluster(); t1 = hbaseTestingUtility.createTable(TABLE1, COLUMN_FAMILY1); try (RegionLocator locator = hbaseTestingUtility.getConnection().getRegionLocator(TABLE1)) { HRegionInfo firstHRI = locator.getAllRegionLocations().get(0).getRegionInfo(); r1name = firstHRI.getRegionName(); rs1 = hbaseTestingUtility.getHBaseCluster().getRegionServer( hbaseTestingUtility.getHBaseCluster().getServerWith(r1name)); r1 = rs1.getRegion(r1name); } }
int originServerNum = cluster.getServerWith(regionInfo.getRegionName()); HRegionServer originServer = cluster.getRegionServer(originServerNum); int targetServerNum = (originServerNum + 1) % NUM_RS; do { Thread.sleep(1); } while (cluster.getServerWith(regionInfo.getRegionName()) == originServerNum); do { Thread.sleep(1); } while (cluster.getServerWith(regionInfo.getRegionName()) == targetServerNum);
int originServerNum = hbaseCluster.getServerWith(destRegion.getRegionInfo().getRegionName()); assertTrue("Please start more than 1 regionserver", hbaseCluster.getRegionServerThreads().size() > 1);
int currentServerIdx = cluster.getServerWith(regionInfo.getRegionName()); int destServerIdx = (currentServerIdx +1)% cluster.getLiveRegionServerThreads().size(); HRegionServer currentServer = cluster.getRegionServer(currentServerIdx);
MiniHBaseCluster cluster = TEST_UTIL.getMiniHBaseCluster(); byte[] regionName = hri.getRegionName(); int i = cluster.getServerWith(regionName); HRegionServer rs = cluster.getRegionServer(i); LOG.info("Unassigning " + hri); startTime = EnvironmentEdgeManager.currentTime(); while (true) { rs = cluster.getRegionServer(cluster.getServerWith(regionName)); if (rs != null && rs.getOnlineRegion(regionName) != null) { offline = false;
RegionInfo hri = getAndCheckSingleTableRegion(regions); ensureTableRegionNotOnSameServerAsMeta(admin, hri); int regionServerIndex = cluster.getServerWith(regions.get(0).getRegionInfo() .getRegionName()); HRegionServer regionServer = cluster.getRegionServer(regionServerIndex);
int curServerId = TEST_UTIL.getHBaseCluster().getServerWith(regionName); int destServerId = (curServerId == 0 ? 1 : 0);
int curServerId = TEST_UTIL.getHBaseCluster().getServerWith(regionName); int destServerId = curServerId == 0? 1: 0;
private void moveIndexTableRegionIfSameRegionSErver(MiniHBaseCluster miniHBaseCluster) throws IOException, InterruptedException { List<HRegion> dataTableRegions = miniHBaseCluster.getRegions(Bytes.toBytes(DATA_TABLE_NAME)); assertEquals(1, dataTableRegions.size()); List<HRegion> indexTableRegions = miniHBaseCluster.getRegions(Bytes.toBytes(INDEX_TABLE_NAME)); assertEquals(1, indexTableRegions.size()); HRegion dataTableRegion=dataTableRegions.get(0); HRegion indexTableRegion=indexTableRegions.get(0); int dataTableRegionServerIndex = miniHBaseCluster.getServerWith(dataTableRegion.getRegionInfo().getRegionName()); int indexTableRegionServerIndex=miniHBaseCluster.getServerWith(indexTableRegion.getRegionInfo().getRegionName()); if(dataTableRegionServerIndex != indexTableRegionServerIndex) { return; } int newRegionServerIndex=0; while(newRegionServerIndex == indexTableRegionServerIndex) { newRegionServerIndex++; } HRegionServer newRegionServer = miniHBaseCluster.getRegionServer(newRegionServerIndex); this.moveRegionAndWait(miniHBaseCluster,indexTableRegion, newRegionServer); }
/** * @return Index into List of {@link MiniHBaseCluster#getRegionServerThreads()} * of HRS carrying regionName. Returns -1 if none found. */ public int getServerWithMeta() { return getServerWith(HRegionInfo.FIRST_META_REGIONINFO.getRegionName()); }
@BeforeClass public static void setUp() throws Exception { conf = hbaseTestingUtility.getConfiguration(); hbaseTestingUtility.startMiniCluster(1,1); t1 = hbaseTestingUtility.createTable(TABLE1, COLUMN_FAMILY1); try (RegionLocator locator = hbaseTestingUtility.getConnection().getRegionLocator(TABLE1)) { HRegionInfo firstHRI = locator.getAllRegionLocations().get(0).getRegionInfo(); r1name = firstHRI.getRegionName(); rs1 = hbaseTestingUtility.getHBaseCluster().getRegionServer( hbaseTestingUtility.getHBaseCluster().getServerWith(r1name)); r1 = rs1.getRegion(r1name); } }