복붙노트

[HADOOP] HDFS에서 blockName의 파일을 찾는 방법 hadoop

HADOOP

HDFS에서 blockName의 파일을 찾는 방법 hadoop

블록 이름 / ID가 주어진 HDFS에서 블록과 관련된 파일을 찾는 가장 쉬운 방법은 무엇입니까?

해결법

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

    1.길고 고통스러운 방법은 모든 파일에 대한 읽기 권한이 있다고 가정하고 (디렉토리에 대해 실행) :

    길고 고통스러운 방법은 모든 파일에 대한 읽기 권한이 있다고 가정하고 (디렉토리에 대해 실행) :

    hadoop fsck / -files -blocks | grep blk_520275863902385418_1002 -B 20
    

    그런 다음 블록 일치에서 이전 파일 이름으로 백업을 스캔합니다.

    /hadoop/mapred/system/jobtracker.info 4 bytes, 1 block(s):  OK
    0. blk_520275863902385418_1002 len=4 repl=1
    

    이 경우 blk_5202 ...는 /hadoop/mapred/system/jobtracker.info 파일의 일부입니다.

    프로그래밍 방식으로 이들은 블럭 ID로 검색 할 수있는 이름 노드에 대한 인터페이스는 아니지만 2 차 이름 노드의 소스를 조사하여 편집을 통합하는 방법을 확인한 다음 2 차 이름 노드에서 저장된 출력을 실험 할 수 있습니다 이름 노드 (라이브 이름 노드 파일에서 작업하는 위험이 있음).

    행운을 빕니다!

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

    2.이것이 언제 소개되었을 지 확신하지 못했지만 이것을 할 수 있습니다.

    이것이 언제 소개되었을 지 확신하지 못했지만 이것을 할 수 있습니다.

    hdfs fsck -blockId <block_id>
    
    hdfs fsck -blockId blk_1100790203
    Connecting to namenode 
    FSCK started by hdfs 
    
    Block Id: blk_1100790203
    Block belongs to: /common/FFL1447685899336.txt
    
  3. from https://stackoverflow.com/questions/10881449/how-to-find-file-from-blockname-in-hdfs-hadoop by cc-by-sa and MIT license