Как сравнить сравнение контрольной суммы файла API Java HDFS с локальным файлом? - PullRequest
0 голосов
/ 14 марта 2019

Я пишу 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();
 }
...