func newChecksumBlockOp(block *hdfs.LocatedBlockProto) *hdfs.OpBlockChecksumProto { return &hdfs.OpBlockChecksumProto{ Header: &hdfs.BaseHeaderProto{ Block: block.GetB(), Token: block.GetBlockToken(), }, } }
func newBlockReadOp(block *hdfs.LocatedBlockProto, offset, length uint64) *hdfs.OpReadBlockProto { return &hdfs.OpReadBlockProto{ Header: &hdfs.ClientOperationHeaderProto{ BaseHeader: &hdfs.BaseHeaderProto{ Block: block.GetB(), Token: block.GetBlockToken(), }, ClientName: proto.String(ClientName), }, Offset: proto.Uint64(offset), Len: proto.Uint64(length), } }
// NewChecksumReader creates a new ChecksumReader for the given block. func NewChecksumReader(block *hdfs.LocatedBlockProto) *ChecksumReader { locs := block.GetLocs() datanodes := make([]string, len(locs)) for i, loc := range locs { dn := loc.GetId() datanodes[i] = fmt.Sprintf("%s:%d", dn.GetIpAddr(), dn.GetXferPort()) } return &ChecksumReader{ block: block, datanodes: newDatanodeFailover(datanodes), } }