示例#1
0
 /**
  * Convert a RegionInfo to a HRegionInfo
  *
  * @param proto the RegionInfo to convert
  * @return the converted HRegionInfho
  */
 public static HRegionInfo convert(final RegionInfo proto) {
   if (proto == null) return null;
   TableName tableName = ProtobufUtil.toTableName(proto.getTableName());
   if (tableName.equals(TableName.META_TABLE_NAME)) {
     return FIRST_META_REGIONINFO;
   }
   long regionId = proto.getRegionId();
   int replicaId = proto.hasReplicaId() ? proto.getReplicaId() : DEFAULT_REPLICA_ID;
   byte[] startKey = null;
   byte[] endKey = null;
   if (proto.hasStartKey()) {
     startKey = proto.getStartKey().toByteArray();
   }
   if (proto.hasEndKey()) {
     endKey = proto.getEndKey().toByteArray();
   }
   boolean split = false;
   if (proto.hasSplit()) {
     split = proto.getSplit();
   }
   HRegionInfo hri = new HRegionInfo(tableName, startKey, endKey, split, regionId, replicaId);
   if (proto.hasOffline()) {
     hri.setOffline(proto.getOffline());
   }
   return hri;
 }
  @Override
  public void prepareBulkLoad(
      RpcController controller,
      PrepareBulkLoadRequest request,
      RpcCallback<PrepareBulkLoadResponse> done) {
    try {
      List<BulkLoadObserver> bulkLoadObservers = getBulkLoadObservers();

      if (bulkLoadObservers != null) {
        ObserverContext<RegionCoprocessorEnvironment> ctx =
            new ObserverContext<RegionCoprocessorEnvironment>();
        ctx.prepare(env);

        for (BulkLoadObserver bulkLoadObserver : bulkLoadObservers) {
          bulkLoadObserver.prePrepareBulkLoad(ctx, request);
        }
      }

      String bulkToken =
          createStagingDir(
                  baseStagingDir, getActiveUser(), ProtobufUtil.toTableName(request.getTableName()))
              .toString();
      done.run(PrepareBulkLoadResponse.newBuilder().setBulkToken(bulkToken).build());
    } catch (IOException e) {
      ResponseConverter.setControllerException(controller, e);
    }
    done.run(null);
  }
示例#3
0
 /** Extract the region encoded name from the region manifest */
 static String getRegionNameFromManifest(final SnapshotRegionManifest manifest) {
   byte[] regionName =
       HRegionInfo.createRegionName(
           ProtobufUtil.toTableName(manifest.getRegionInfo().getTableName()),
           manifest.getRegionInfo().getStartKey().toByteArray(),
           manifest.getRegionInfo().getRegionId(),
           true);
   return HRegionInfo.encodeRegionName(regionName);
 }
  @Override
  public void deserializeStateData(final InputStream stream) throws IOException {
    super.deserializeStateData(stream);

    MasterProcedureProtos.AddColumnFamilyStateData addCFMsg =
        MasterProcedureProtos.AddColumnFamilyStateData.parseDelimitedFrom(stream);
    user = MasterProcedureUtil.toUserInfo(addCFMsg.getUserInfo());
    tableName = ProtobufUtil.toTableName(addCFMsg.getTableName());
    cfDescriptor = HColumnDescriptor.convert(addCFMsg.getColumnfamilySchema());
    if (addCFMsg.hasUnmodifiedTableSchema()) {
      unmodifiedHTableDescriptor = HTableDescriptor.convert(addCFMsg.getUnmodifiedTableSchema());
    }
  }
示例#5
0
  @Override
  public void deserializeStateData(final InputStream stream) throws IOException {
    super.deserializeStateData(stream);

    MasterProcedureProtos.TruncateTableStateData state =
        MasterProcedureProtos.TruncateTableStateData.parseDelimitedFrom(stream);
    user = MasterProcedureUtil.toUserInfo(state.getUserInfo());
    if (state.hasTableSchema()) {
      hTableDescriptor = HTableDescriptor.convert(state.getTableSchema());
      tableName = hTableDescriptor.getTableName();
    } else {
      tableName = ProtobufUtil.toTableName(state.getTableName());
    }
    preserveSplits = state.getPreserveSplits();
    if (state.getRegionInfoCount() == 0) {
      regions = null;
    } else {
      regions = new ArrayList<HRegionInfo>(state.getRegionInfoCount());
      for (HBaseProtos.RegionInfo hri : state.getRegionInfoList()) {
        regions.add(HRegionInfo.convert(hri));
      }
    }
  }