如何将Java API HDFS文件校验和与本地文件进行比较?

时间:2019-03-14 13:53:57

标签: hadoop hdfs checksum java-api

我正在编写一个Java API,用于使用IOUtils.copyBytes将文件从Windows计算机上传到远程HDFS。我想通过检查校验和来检查上传的文件数据的真实性。由于Hadoop上校验和的计算是MD5-of-0MD5-of-512CRC32C,因此我无法将其与本地文件校验和进行比较。 如何比较两者?谁能给我看一个代码示例?这是我的代码,它上传文件并在将文件上传到HDFS之后计算文件的校验和。其中src将类似于“ C:\ temp.txt”,而dst将为“ / user / admin / tempDirectory”

public void upload(String src, String dst){
    String hdfsPath = "hdfs://" + hdfsIP + ":" + hdfsPort;
    String dataNameLocation = hdfsPath + dst;
    FileSystem hdfs = null    
    hdfs = FileSystem.get(new URI(dataNameLocation), configuration);
    Path destFile = new Path(dst + "/" + srcFileName);
    FSDataOutputStream out = hdfs.create(destFile);
    InputStream is = new BufferedInputStream(new FileInputStreaa(src));
    IOUtils.copyBytes(is, out, configuration);
    FileChecksum hdfsChecksum = hdfs.getFileChecksum(destFile);
    System.out.println("HDFS Checksum : 
    "+hdfsChecksum.toString()+"\t"+hdfsChecksum.getLength());
    is.close();
    out.close();
    hdfs.close();
 }

0 个答案:

没有答案