我正在编写一个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();
}