Example usage for org.apache.hadoop.hdfs.server.datanode CachingStrategy newDefaultStrategy

List of usage examples for org.apache.hadoop.hdfs.server.datanode CachingStrategy newDefaultStrategy

Introduction

In this page you can find the example usage for org.apache.hadoop.hdfs.server.datanode CachingStrategy newDefaultStrategy.

Prototype

public static CachingStrategy newDefaultStrategy() 

Source Link

Usage

From source file:com.mellanox.r4h.DFSClient.java

License:Apache License

/**
 * Infer the checksum type for a replica by sending an OP_READ_BLOCK
 * for the first byte of that replica. This is used for compatibility
 * with older HDFS versions which did not include the checksum type in
 * OpBlockChecksumResponseProto.//from w ww. j  ava2s. c o m
 * 
 * @param lb
 *            the located block
 * @param dn
 *            the connected datanode
 * @return the inferred checksum type
 * @throws IOException
 *             if an error occurs
 */
private Type inferChecksumTypeByReading(LocatedBlock lb, DatanodeInfo dn) throws IOException {
    IOStreamPair pair = connectToDN(dn, dfsClientConf.socketTimeout(), lb);

    try {
        DataOutputStream out = new DataOutputStream(
                new BufferedOutputStream(pair.out, HdfsConstants.SMALL_BUFFER_SIZE));
        DataInputStream in = new DataInputStream(pair.in);

        new Sender(out).readBlock(lb.getBlock(), lb.getBlockToken(), clientName, 0, 1, true,
                CachingStrategy.newDefaultStrategy());
        final BlockOpResponseProto reply = BlockOpResponseProto.parseFrom(PBHelper.vintPrefixed(in));
        String logInfo = "trying to read " + lb.getBlock() + " from datanode " + dn;
        DataTransferProtoUtil.checkBlockOpStatus(reply, logInfo);

        return PBHelper.convert(reply.getReadOpChecksumInfo().getChecksum().getType());
    } finally {
        IOUtils.cleanup(null, pair.in, pair.out);
    }
}