Я пишу Java API для загрузки файла с компьютера с Windows на удаленную HDFS с использованием IOUtils.copyBytes. Я хочу проверить подлинность загруженного файла, проверив контрольную сумму. Поскольку вычисление контрольной суммы в 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();
}