當前位置: 首頁>>代碼示例>>Java>>正文


Java HTableDescriptor.getRegionReplication方法代碼示例

本文整理匯總了Java中org.apache.hadoop.hbase.HTableDescriptor.getRegionReplication方法的典型用法代碼示例。如果您正苦於以下問題:Java HTableDescriptor.getRegionReplication方法的具體用法?Java HTableDescriptor.getRegionReplication怎麽用?Java HTableDescriptor.getRegionReplication使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在org.apache.hadoop.hbase.HTableDescriptor的用法示例。


在下文中一共展示了HTableDescriptor.getRegionReplication方法的6個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: addReplicas

import org.apache.hadoop.hbase.HTableDescriptor; //導入方法依賴的package包/類
/**
 * Create any replicas for the regions (the default replicas that was
 * already created is passed to the method)
 * @param hTableDescriptor
 * @param regions default replicas
 * @return the combined list of default and non-default replicas
 */
protected List<HRegionInfo> addReplicas(HTableDescriptor hTableDescriptor,
    List<HRegionInfo> regions) {
  int numRegionReplicas = hTableDescriptor.getRegionReplication() - 1;
  if (numRegionReplicas <= 0) {
    return regions;
  }
  List<HRegionInfo> hRegionInfos =
      new ArrayList<HRegionInfo>((numRegionReplicas+1)*regions.size());
  for (int i = 0; i < regions.size(); i++) {
    for (int j = 1; j <= numRegionReplicas; j++) {
      hRegionInfos.add(RegionReplicaUtil.getRegionInfoForReplica(regions.get(i), j));
    }
  }
  hRegionInfos.addAll(regions);
  return hRegionInfos;
}
 
開發者ID:fengchen8086,項目名稱:ditb,代碼行數:24,代碼來源:CreateTableHandler.java

示例2: addTableToMeta

import org.apache.hadoop.hbase.HTableDescriptor; //導入方法依賴的package包/類
protected static List<HRegionInfo> addTableToMeta(final MasterProcedureEnv env,
    final HTableDescriptor hTableDescriptor,
    final List<HRegionInfo> regions) throws IOException {
  if (regions != null && regions.size() > 0) {
    ProcedureSyncWait.waitMetaRegions(env);

    // Add regions to META
    addRegionsToMeta(env, hTableDescriptor, regions);
    // Add replicas if needed
    List<HRegionInfo> newRegions = addReplicas(env, hTableDescriptor, regions);

    // Setup replication for region replicas if needed
    if (hTableDescriptor.getRegionReplication() > 1) {
      ServerRegionReplicaUtil.setupRegionReplicaReplication(env.getMasterConfiguration());
    }
    return newRegions;
  }
  return regions;
}
 
開發者ID:fengchen8086,項目名稱:ditb,代碼行數:20,代碼來源:CreateTableProcedure.java

示例3: addReplicas

import org.apache.hadoop.hbase.HTableDescriptor; //導入方法依賴的package包/類
/**
 * Create any replicas for the regions (the default replicas that was
 * already created is passed to the method)
 * @param hTableDescriptor descriptor to use
 * @param regions default replicas
 * @return the combined list of default and non-default replicas
 */
private static List<HRegionInfo> addReplicas(final MasterProcedureEnv env,
    final HTableDescriptor hTableDescriptor,
    final List<HRegionInfo> regions) {
  int numRegionReplicas = hTableDescriptor.getRegionReplication() - 1;
  if (numRegionReplicas <= 0) {
    return regions;
  }
  List<HRegionInfo> hRegionInfos =
      new ArrayList<HRegionInfo>((numRegionReplicas+1)*regions.size());
  for (int i = 0; i < regions.size(); i++) {
    for (int j = 1; j <= numRegionReplicas; j++) {
      hRegionInfos.add(RegionReplicaUtil.getRegionInfoForReplica(regions.get(i), j));
    }
  }
  hRegionInfos.addAll(regions);
  return hRegionInfos;
}
 
開發者ID:fengchen8086,項目名稱:ditb,代碼行數:25,代碼來源:CreateTableProcedure.java

示例4: replicaRegionsNotRecordedInMeta

import org.apache.hadoop.hbase.HTableDescriptor; //導入方法依賴的package包/類
/**
 * Get a list of replica regions that are:
 * not recorded in meta yet. We might not have recorded the locations
 * for the replicas since the replicas may not have been online yet, master restarted
 * in the middle of assigning, ZK erased, etc.
 * @param regionsRecordedInMeta the list of regions we know are recorded in meta
 * either as a default, or, as the location of a replica
 * @param master
 * @return list of replica regions
 * @throws IOException
 */
public static List<HRegionInfo> replicaRegionsNotRecordedInMeta(
    Set<HRegionInfo> regionsRecordedInMeta, MasterServices master)throws IOException {
  List<HRegionInfo> regionsNotRecordedInMeta = new ArrayList<HRegionInfo>();
  for (HRegionInfo hri : regionsRecordedInMeta) {
    TableName table = hri.getTable();
    HTableDescriptor htd = master.getTableDescriptors().get(table);
    // look at the HTD for the replica count. That's the source of truth
    int desiredRegionReplication = htd.getRegionReplication();
    for (int i = 0; i < desiredRegionReplication; i++) {
      HRegionInfo replica = RegionReplicaUtil.getRegionInfoForReplica(hri, i);
      if (regionsRecordedInMeta.contains(replica)) continue;
      regionsNotRecordedInMeta.add(replica);
    }
  }
  return regionsNotRecordedInMeta;
}
 
開發者ID:fengchen8086,項目名稱:ditb,代碼行數:28,代碼來源:AssignmentManager.java

示例5: getRegionReplication

import org.apache.hadoop.hbase.HTableDescriptor; //導入方法依賴的package包/類
private int getRegionReplication(HRegionInfo r) throws IOException {
  if (tableStateManager != null) {
    HTableDescriptor htd = ((MasterServices)server).getTableDescriptors().get(r.getTable());
    if (htd != null) {
      return htd.getRegionReplication();
    }
  }
  return 1;
}
 
開發者ID:fengchen8086,項目名稱:ditb,代碼行數:10,代碼來源:RegionStates.java

示例6: updateReplicaColumnsIfNeeded

import org.apache.hadoop.hbase.HTableDescriptor; //導入方法依賴的package包/類
/**
 * update replica column families if necessary.
 * @param env MasterProcedureEnv
 * @throws IOException
 */
private void updateReplicaColumnsIfNeeded(
  final MasterProcedureEnv env,
  final HTableDescriptor oldHTableDescriptor,
  final HTableDescriptor newHTableDescriptor) throws IOException {
  final int oldReplicaCount = oldHTableDescriptor.getRegionReplication();
  final int newReplicaCount = newHTableDescriptor.getRegionReplication();

  if (newReplicaCount < oldReplicaCount) {
    Set<byte[]> tableRows = new HashSet<byte[]>();
    Connection connection = env.getMasterServices().getConnection();
    Scan scan = MetaTableAccessor.getScanForTableName(getTableName());
    scan.addColumn(HConstants.CATALOG_FAMILY, HConstants.REGIONINFO_QUALIFIER);

    try (Table metaTable = connection.getTable(TableName.META_TABLE_NAME)) {
      ResultScanner resScanner = metaTable.getScanner(scan);
      for (Result result : resScanner) {
        tableRows.add(result.getRow());
      }
      MetaTableAccessor.removeRegionReplicasFromMeta(
        tableRows,
        newReplicaCount,
        oldReplicaCount - newReplicaCount,
        connection);
    }
  }

  // Setup replication for region replicas if needed
  if (newReplicaCount > 1 && oldReplicaCount <= 1) {
    ServerRegionReplicaUtil.setupRegionReplicaReplication(env.getMasterConfiguration());
  }
}
 
開發者ID:fengchen8086,項目名稱:ditb,代碼行數:37,代碼來源:ModifyTableProcedure.java


注:本文中的org.apache.hadoop.hbase.HTableDescriptor.getRegionReplication方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。