当前位置: 首页>>代码示例>>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;未经允许,请勿转载。