/// <exception cref="System.IO.IOException"/> public override void WriteBlock(ExtendedBlock blk, StorageType storageType, Org.Apache.Hadoop.Security.Token.Token <BlockTokenIdentifier> blockToken, string clientName, DatanodeInfo[] targets, StorageType [] targetStorageTypes, DatanodeInfo source, BlockConstructionStage stage, int pipelineSize , long minBytesRcvd, long maxBytesRcvd, long latestGenerationStamp, DataChecksum requestedChecksum, CachingStrategy cachingStrategy, bool allowLazyPersist, bool pinning, bool[] targetPinnings) { DataTransferProtos.ClientOperationHeaderProto header = DataTransferProtoUtil.BuildClientHeader (blk, clientName, blockToken); DataTransferProtos.ChecksumProto checksumProto = DataTransferProtoUtil.ToProto(requestedChecksum ); DataTransferProtos.OpWriteBlockProto.Builder proto = DataTransferProtos.OpWriteBlockProto .NewBuilder().SetHeader(header).SetStorageType(PBHelper.ConvertStorageType(storageType )).AddAllTargets(PBHelper.Convert(targets, 1)).AddAllTargetStorageTypes(PBHelper .ConvertStorageTypes(targetStorageTypes, 1)).SetStage(DataTransferProtoUtil.ToProto (stage)).SetPipelineSize(pipelineSize).SetMinBytesRcvd(minBytesRcvd).SetMaxBytesRcvd (maxBytesRcvd).SetLatestGenerationStamp(latestGenerationStamp).SetRequestedChecksum (checksumProto).SetCachingStrategy(GetCachingStrategy(cachingStrategy)).SetAllowLazyPersist (allowLazyPersist).SetPinning(pinning).AddAllTargetPinnings(PBHelper.Convert(targetPinnings , 1)); if (source != null) { proto.SetSource(PBHelper.ConvertDatanodeInfo(source)); } Send(@out, OP.WriteBlock, ((DataTransferProtos.OpWriteBlockProto)proto.Build())); }
public abstract void WriteBlock(ExtendedBlock arg1, StorageType arg2, Org.Apache.Hadoop.Security.Token.Token <BlockTokenIdentifier> arg3, string arg4, DatanodeInfo[] arg5, StorageType[] arg6 , DatanodeInfo arg7, BlockConstructionStage arg8, int arg9, long arg10, long arg11 , long arg12, DataChecksum arg13, CachingStrategy arg14, bool arg15, bool arg16, bool[] arg17);
internal static DataTransferProtos.OpWriteBlockProto.BlockConstructionStage ToProto (BlockConstructionStage stage) { return(DataTransferProtos.OpWriteBlockProto.BlockConstructionStage.ValueOf(stage. ToString())); }
/// <summary>Write a block to a datanode pipeline.</summary> /// <remarks> /// Write a block to a datanode pipeline. /// The receiver datanode of this call is the next datanode in the pipeline. /// The other downstream datanodes are specified by the targets parameter. /// Note that the receiver /// <see cref="Org.Apache.Hadoop.Hdfs.Protocol.DatanodeInfo"/> /// is not required in the /// parameter list since the receiver datanode knows its info. However, the /// <see cref="Org.Apache.Hadoop.FS.StorageType"/> /// for storing the replica in the receiver datanode is a /// parameter since the receiver datanode may support multiple storage types. /// </remarks> /// <param name="blk">the block being written.</param> /// <param name="storageType">for storing the replica in the receiver datanode.</param> /// <param name="blockToken">security token for accessing the block.</param> /// <param name="clientName">client's name.</param> /// <param name="targets">other downstream datanodes in the pipeline.</param> /// <param name="targetStorageTypes"> /// target /// <see cref="Org.Apache.Hadoop.FS.StorageType"/> /// s corresponding /// to the target datanodes. /// </param> /// <param name="source">source datanode.</param> /// <param name="stage">pipeline stage.</param> /// <param name="pipelineSize">the size of the pipeline.</param> /// <param name="minBytesRcvd">minimum number of bytes received.</param> /// <param name="maxBytesRcvd">maximum number of bytes received.</param> /// <param name="latestGenerationStamp">the latest generation stamp of the block.</param> /// <param name="pinning">whether to pin the block, so Balancer won't move it.</param> /// <param name="targetPinnings">whether to pin the block on target datanode</param> /// <exception cref="System.IO.IOException"/> public abstract void WriteBlock(ExtendedBlock blk, StorageType storageType, Org.Apache.Hadoop.Security.Token.Token <BlockTokenIdentifier> blockToken, string clientName, DatanodeInfo[] targets, StorageType [] targetStorageTypes, DatanodeInfo source, BlockConstructionStage stage, int pipelineSize , long minBytesRcvd, long maxBytesRcvd, long latestGenerationStamp, DataChecksum requestedChecksum, CachingStrategy cachingStrategy, bool allowLazyPersist, bool pinning, bool[] targetPinnings);