Java 类org.apache.hadoop.hbase.index.util.SecondaryIndexColocator 实例源码

项目:HIndex    文件:TestSecIndexColocator.java   
@Test(timeout = 180000)
public void testWhenUserTableIsDisabledButIndexTableIsInEnabledState() throws Exception {
  String table = "testWhenUserTableIsDisabledButIndexTableIsInEnabledState";
  HTableDescriptor htd =
      TestUtils.createIndexedHTableDescriptor(table, "cf", "index_name", "cf", "cq");
  byte[][] splits = new byte[10][];
  char c = 'A';
  for (int i = 0; i < 10; i++) {
    byte[] b = { (byte) c };
    splits[i] = b;
    c++;
  }
  admin.createTable(htd, splits);
  admin.disableTable(table);
  admin.enableTable(IndexUtils.getIndexTableName(table));
  SecondaryIndexColocator colocator = new SecondaryIndexColocator(UTIL.getConfiguration());
  colocator.setUp();
  colocator.checkForCoLocationInconsistency();
  assertTrue(
    "The enabled table should be now disabled",
    ZKTableReadOnly.isDisabledTable(HBaseTestingUtility.getZooKeeperWatcher(UTIL),
      TableName.valueOf(IndexUtils.getIndexTableName(table))));
}
项目:HIndex    文件:TestSecIndexColocator.java   
@Test(timeout = 180000)
public void testWhenUserTableIsEabledButIndexTableIsDisabled() throws Exception {
  String table = "testWhenUserTableIsEabledButIndexTableIsDisabled";
  HTableDescriptor htd = new HTableDescriptor(TableName.valueOf(table));
  htd.addFamily(new HColumnDescriptor(new String("cf")));
  byte[][] splits = new byte[10][];
  char c = 'A';
  for (int i = 0; i < 10; i++) {
    byte[] b = { (byte) c };
    splits[i] = b;
    c++;
  }
  admin.createTable(htd, splits);
  ZKAssign.blockUntilNoRIT(HBaseTestingUtility.getZooKeeperWatcher(UTIL));

  String table2 = "testWhenUserTableIsEabledButIndexTableIsDisabled_idx";
  TableName tableName2 = TableName.valueOf(table2);
  HTableDescriptor htd2 = new HTableDescriptor(tableName2);
  htd2.addFamily(new HColumnDescriptor(new String("cf")));
  admin.createTable(htd2, splits);
  ZKAssign.blockUntilNoRIT(HBaseTestingUtility.getZooKeeperWatcher(UTIL));
  admin.disableTable(table2);
  ZKAssign.blockUntilNoRIT(HBaseTestingUtility.getZooKeeperWatcher(UTIL));

  List<HRegionInfo> tableRegions = admin.getTableRegions(Bytes.toBytes(table2));
  SecondaryIndexColocator colocator = new SecondaryIndexColocator(UTIL.getConfiguration());
  colocator.setUp();
  boolean inconsistent = colocator.checkForCoLocationInconsistency();
  List<RegionServerThread> serverThreads =
      UTIL.getMiniHBaseCluster().getLiveRegionServerThreads();

  List<HRegionServer> rs = new ArrayList<HRegionServer>();
  for (RegionServerThread regionServerThread : serverThreads) {
    rs.add(regionServerThread.getRegionServer());
  }

  List<HRegionInfo> onlineregions = new ArrayList<HRegionInfo>();
  for (HRegionServer hrs : rs) {
    List<HRegion> regions = hrs.getOnlineRegions(tableName2);
    for (HRegion region : regions) {
      onlineregions.add(region.getRegionInfo());
    }
  }

  boolean regionOffline = false;
  for (HRegionInfo hri : tableRegions) {
    if (!onlineregions.contains(hri)) {
      regionOffline = true;
      break;
    }
  }
  assertFalse("All region from the disabledTable should be online.", regionOffline);
}
项目:HIndex    文件:TestSecIndexColocator.java   
@Test(timeout = 180000)
public void testWhenRegionsAreNotAssignedAccordingToMeta() throws Exception {
  String table = "testWhenRegionsAreNotAssignedAccordingToMeta";
  TableName tableName = TableName.valueOf(table);
  HTableDescriptor htd = new HTableDescriptor(tableName);
  htd.addFamily(new HColumnDescriptor(new String("cf")));
  byte[][] splits = new byte[10][];
  char c = 'A';
  for (int i = 0; i < 10; i++) {
    byte[] b = { (byte) c };
    splits[i] = b;
    c++;
  }
  admin.createTable(htd, splits);

  ServerName sn = ServerName.valueOf("example.org", 1234, 5678);
  HMaster master = UTIL.getMiniHBaseCluster().getMaster(0);

  List<HRegionInfo> tableRegions = admin.getTableRegions(Bytes.toBytes(table));
  List<HRegion> hRegions = UTIL.getMiniHBaseCluster().getRegions(Bytes.toBytes(table));
  for (int i = 0; i < 5; i++) {
    MetaEditor.updateRegionLocation(master.getCatalogTracker(), tableRegions.get(i), sn, hRegions
        .get(i).getOpenSeqNum());
  }

  SecondaryIndexColocator colocator = new SecondaryIndexColocator(UTIL.getConfiguration());
  colocator.setUp();
  colocator.checkForCoLocationInconsistency();

  List<RegionServerThread> serverThreads =
      UTIL.getMiniHBaseCluster().getLiveRegionServerThreads();
  List<HRegionServer> rs = new ArrayList<HRegionServer>();
  for (RegionServerThread regionServerThread : serverThreads) {
    rs.add(regionServerThread.getRegionServer());
  }

  List<HRegionInfo> onlineregions = new ArrayList<HRegionInfo>();
  for (HRegionServer hrs : rs) {
    List<HRegion> regions = hrs.getOnlineRegions(tableName);
    for (HRegion region : regions) {
      onlineregions.add(region.getRegionInfo());
    }
  }

  boolean regionOffline = false;
  for (HRegionInfo hri : tableRegions) {
    if (!onlineregions.contains(hri)) {
      regionOffline = true;
      break;
    }
  }
  assertFalse("All the regions with wrong META info should be assiged to some online server.",
    regionOffline);
}
项目:hindex    文件:TestSecIndexColocator.java   
@Test(timeout = 180000)
public void testWhenUserTableIsEabledButIndexTableIsDisabled() throws Exception {
  String table = "testWhenUserTableIsEabledButIndexTableIsDisabled";
  HBaseAdmin admin = new HBaseAdmin(UTIL.getConfiguration());
  HTableDescriptor htd = new HTableDescriptor(table);
  htd.addFamily(new HColumnDescriptor(new String("cf")));
  byte[][] splits = new byte[10][];
  char c = 'A';
  for (int i = 0; i < 10; i++) {
    byte[] b = { (byte) c };
    splits[i] = b;
    c++;
  }
  admin.createTable(htd, splits);
  ZKAssign.blockUntilNoRIT(HBaseTestingUtility.getZooKeeperWatcher(UTIL));

  String table2 = "testWhenUserTableIsEabledButIndexTableIsDisabled_idx";
  HTableDescriptor htd2 = new HTableDescriptor(table2);
  htd2.addFamily(new HColumnDescriptor(new String("cf")));
  admin.createTable(htd2, splits);
  ZKAssign.blockUntilNoRIT(HBaseTestingUtility.getZooKeeperWatcher(UTIL));
  admin.disableTable(table2);
  ZKAssign.blockUntilNoRIT(HBaseTestingUtility.getZooKeeperWatcher(UTIL));

  List<HRegionInfo> tableRegions = admin.getTableRegions(Bytes.toBytes(table2));
  SecondaryIndexColocator colocator = new SecondaryIndexColocator(UTIL.getConfiguration());
  colocator.setUp();
  boolean inconsistent = colocator.checkForCoLocationInconsistency();
  List<RegionServerThread> serverThreads =
      UTIL.getMiniHBaseCluster().getLiveRegionServerThreads();

  List<HRegionServer> rs = new ArrayList<HRegionServer>();
  for (RegionServerThread regionServerThread : serverThreads) {
    rs.add(regionServerThread.getRegionServer());
  }

  Set<HRegionInfo> onlineregions = new HashSet<HRegionInfo>();
  for (HRegionServer hrs : rs) {
    onlineregions.addAll(hrs.getOnlineRegions());
  }

  boolean regionOffline = false;
  for (HRegionInfo hri : tableRegions) {
    if (!onlineregions.contains(hri)) {
      regionOffline = true;
      break;
    }
  }
  Assert.assertFalse("All region from the disabledTable should be online.", regionOffline);
}
项目:hindex    文件:TestSecIndexColocator.java   
@Test(timeout = 180000)
public void testWhenRegionsAreNotAssignedAccordingToMeta() throws Exception {
  String table = "testWhenRegionsAreNotAssignedAccordingToMeta";
  HBaseAdmin admin = new HBaseAdmin(UTIL.getConfiguration());
  HTableDescriptor htd = new HTableDescriptor(table);
  htd.addFamily(new HColumnDescriptor(new String("cf")));
  byte[][] splits = new byte[10][];
  char c = 'A';
  for (int i = 0; i < 10; i++) {
    byte[] b = { (byte) c };
    splits[i] = b;
    c++;
  }
  admin.createTable(htd, splits);
  ZKAssign.blockUntilNoRIT(HBaseTestingUtility.getZooKeeperWatcher(UTIL));

  ServerName sn = new ServerName("example.org", 1234, 5678);
  HMaster master = UTIL.getMiniHBaseCluster().getMaster(0);

  List<HRegionInfo> tableRegions = admin.getTableRegions(Bytes.toBytes(table));

  for (int i = 0; i < 5; i++) {
    MetaEditor.updateRegionLocation(master.getCatalogTracker(), tableRegions.get(i), sn);
  }

  SecondaryIndexColocator colocator = new SecondaryIndexColocator(UTIL.getConfiguration());
  colocator.setUp();
  colocator.checkForCoLocationInconsistency();

  List<RegionServerThread> serverThreads =
      UTIL.getMiniHBaseCluster().getLiveRegionServerThreads();
  List<HRegionServer> rs = new ArrayList<HRegionServer>();
  for (RegionServerThread regionServerThread : serverThreads) {
    rs.add(regionServerThread.getRegionServer());
  }

  Set<HRegionInfo> onlineregions = new HashSet<HRegionInfo>();
  for (HRegionServer hrs : rs) {
    onlineregions.addAll(hrs.getOnlineRegions());
  }

  boolean regionOffline = false;
  for (HRegionInfo hri : tableRegions) {
    if (!onlineregions.contains(hri)) {
      regionOffline = true;
      break;
    }
  }
  Assert.assertFalse(
    "All the regions with wrong META info should be assiged to some online server.",
    regionOffline);
}