복붙노트

[HADOOP] 하둡의 체크섬 확인

HADOOP

하둡의 체크섬 확인

Linux 서버에서 Webhdfs를 통해 파일을 Hadoop (HDFS)로 이동 한 후 체크섬을 확인해야합니까?

HDFS의 파일을 복사 한 후 손상 여부를 확인하고 싶습니다. 하지만 체크섬을 확인하는 중입니까?

데이터가 HDFS에 기록되기 전에 클라이언트가 체크섬을 읽음

누군가 내가 리눅스 시스템의 소스 파일이 webhdfs를 사용하는 Hdfs의 수집 된 파일과 동일한 지 어떻게 확인할 수 있는지 이해할 수 있습니까?

해결법

  1. ==============================

    1.목표가 HDFS에있는 두 파일을 비교하는 것이라면 필자는 "hdfs dfs -checksum URI"를 사용하지 않을 것입니다. 동일한 내용의 파일에 대해 다른 체크섬을 생성합니다.

    목표가 HDFS에있는 두 파일을 비교하는 것이라면 필자는 "hdfs dfs -checksum URI"를 사용하지 않을 것입니다. 동일한 내용의 파일에 대해 다른 체크섬을 생성합니다.

    아래 예제에서 두 파일을 서로 다른 위치의 동일한 내용으로 비교합니다.

    구식 md5sum 메서드는 동일한 체크섬을 반환합니다.

    $ hdfs dfs -cat /project1/file.txt | md5sum
    b9fdea463b1ce46fabc2958fc5f7644a  -
    
    $ hdfs dfs -cat /project2/file.txt | md5sum
    b9fdea463b1ce46fabc2958fc5f7644a  -
    

    그러나 HDFS에서 생성 된 체크섬은 동일한 내용의 파일에 따라 다릅니다.

    $ hdfs dfs -checksum /project1/file.txt
    0000020000000000000000003e50be59553b2ddaf401c575f8df6914
    
    $ hdfs dfs -checksum /project2/file.txt
    0000020000000000000000001952d653ccba138f0c4cd4209fbf8e2e
    

    동일한 내용에 대해 동일한 체크섬이 생성 될 것으로 예상되므로 다소 혼란 스러울 것입니다.

  2. ==============================

    2.hadoop fs 명령을 사용하여 파일의 체크섬을 계산할 수 있습니다.

    hadoop fs 명령을 사용하여 파일의 체크섬을 계산할 수 있습니다.

    사용법 : hadoop fs -checksum URI

    파일의 체크섬 정보를 반환합니다.

    예:

    hadoop fs -checksum hdfs : //nn1.example.com/file1 hadoop fs -checksum 파일 : /// 경로 / in / linux / file1

    자세한 내용은 Hadoop 문서를 참조하십시오.

    따라서 file1을 linux와 hdfs에서 비교하고 싶다면 위의 유틸리티를 사용할 수 있습니다.

  3. ==============================

    3.나는 당신이 로컬 파일의 체크섬을 계산할 수있는 라이브러리를 작성했다. 단지 hadoop이 hdfs 파일에서 그것을 수행하는 방식이다.

    나는 당신이 로컬 파일의 체크섬을 계산할 수있는 라이브러리를 작성했다. 단지 hadoop이 hdfs 파일에서 그것을 수행하는 방식이다.

    따라서 체크섬과 크로스 체크를 비교할 수 있습니다. https://github.com/srch07/HDFSChecksumForLocalfile

  4. ==============================

    4.API를 통해이 확인을 수행하는 경우

    API를 통해이 확인을 수행하는 경우

    import org.apache.hadoop.fs._
    import org.apache.hadoop.io._
    

    옵션 1 : b9fdea463b1ce46fabc2958fc5f7644a 값

    val md5:String = MD5Hash.digest(FileSystem.get(hadoopConfiguration).open(new Path("/project1/file.txt"))).toString
    

    옵션 2 : 3e50be59553b2ddaf401c575f8df6914 값

    val md5:String = FileSystem.get(hadoopConfiguration).getFileChecksum(new Path("/project1/file.txt"))).toString.split(":")(0)
    
  5. ==============================

    5.그것은 crc 수표 않습니다. 각각의 모든 파일에 대해 .crc를 작성하여 손상이 없는지 확인하십시오.

    그것은 crc 수표 않습니다. 각각의 모든 파일에 대해 .crc를 작성하여 손상이 없는지 확인하십시오.

  6. from https://stackoverflow.com/questions/31920033/checksum-verification-in-hadoop by cc-by-sa and MIT license