복붙노트

[HADOOP] HDFS 파일 비교

HADOOP

HDFS 파일 비교

diff가 없기 때문에 두 HDFS 파일을 어떻게 비교할 수 있습니까?

하이브 테이블을 사용하고 HDFS에서 데이터를로드 한 다음 2 개의 테이블에 조인 문을 사용하려고 생각했습니다. 더 좋은 접근 방법이 있습니까?

해결법

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

    1.hadoop과 함께 제공되는 diff 명령은 없지만 실제로 diff 명령을 사용하여 쉘에서 리디렉션을 사용할 수 있습니다.

    hadoop과 함께 제공되는 diff 명령은 없지만 실제로 diff 명령을 사용하여 쉘에서 리디렉션을 사용할 수 있습니다.

    diff <(hadoop fs -cat /path/to/file) <(hadoop fs -cat /path/to/file2)
    

    두 파일이 동일한 지 아닌지를 알고 싶다면 차이점을 알지 않고도 다른 체크섬 기반 방식을 제안합니다. 두 파일의 체크섬을 가져 와서 비교할 수 있습니다. Hadoop은 체크섬을 생성 할 필요가 없다고 생각합니다. 왜냐하면 Hadoop은 이미 저장되어 있으므로 빠르지 만 잘못된 것일 수 있습니다. 나는 거기에 명령 행 옵션이 있다고 생각하지 않지만 자바 API로 쉽게 이것을 할 수 있고 작은 앱을 만들 수있다.

    FileSystem fs = FileSystem.get(conf);
    chksum1 = fs.getFileChecksum(new Path("/path/to/file"));
    chksum2 = fs.getFileChecksum(new Path("/path/to/file2"));
    return chksum1 == chksum2;
    
  2. ==============================

    2.글쎄, 가장 간단한 대답은 아마도 :

    글쎄, 가장 간단한 대답은 아마도 :

    diff <(hadoop fs -cat file1) <(hadoop fs -cat file2)
    

    로컬 컴퓨터에서 실행됩니다. 너무 느리다면 하이브 (Hive)와 MapReduce (MapReduce)로 뭔가를해야 할 것입니다.하지만 조금 까다 롭고 diff가하는 순서 비교 (in-order comparison)와 정확히 일치하지는 않습니다.

  3. from https://stackoverflow.com/questions/14488779/hdfs-file-comparison by cc-by-sa and MIT license