use of org.apache.hadoop.hdfs.protocol.proto.DataTransferProtos.OpTransferBlockProto in project hadoop by apache.
the class Receiver method opTransferBlock.
/** Receive {@link Op#TRANSFER_BLOCK} */
private void opTransferBlock(DataInputStream in) throws IOException {
final OpTransferBlockProto proto = OpTransferBlockProto.parseFrom(vintPrefixed(in));
final DatanodeInfo[] targets = PBHelperClient.convert(proto.getTargetsList());
TraceScope traceScope = continueTraceSpan(proto.getHeader(), proto.getClass().getSimpleName());
try {
transferBlock(PBHelperClient.convert(proto.getHeader().getBaseHeader().getBlock()), PBHelperClient.convert(proto.getHeader().getBaseHeader().getToken()), proto.getHeader().getClientName(), targets, PBHelperClient.convertStorageTypes(proto.getTargetStorageTypesList(), targets.length));
} finally {
if (traceScope != null)
traceScope.close();
}
}
use of org.apache.hadoop.hdfs.protocol.proto.DataTransferProtos.OpTransferBlockProto in project hadoop by apache.
the class Sender method transferBlock.
@Override
public void transferBlock(final ExtendedBlock blk, final Token<BlockTokenIdentifier> blockToken, final String clientName, final DatanodeInfo[] targets, final StorageType[] targetStorageTypes) throws IOException {
OpTransferBlockProto proto = OpTransferBlockProto.newBuilder().setHeader(DataTransferProtoUtil.buildClientHeader(blk, clientName, blockToken)).addAllTargets(PBHelperClient.convert(targets)).addAllTargetStorageTypes(PBHelperClient.convertStorageTypes(targetStorageTypes)).build();
send(out, Op.TRANSFER_BLOCK, proto);
}
Aggregations