복붙노트

[HADOOP] 여러 디렉토리에서 입력 파일을 가져 오는 Hadoop 작업

HADOOP

여러 디렉토리에서 입력 파일을 가져 오는 Hadoop 작업

여러 개의 디렉터리에 압축 된 gz 형식의 파일을 여러 개 (각각 2-3MB의 크기로 100+ 개) 가지고있는 상황이 있습니다. 예를 들어 A1 / B1 / C1 / part-0000.gz A2 / B2 / C2 / part-0000.gz A1 / B1 / C1 / part-0001.gz

이 모든 파일을 하나의지도 작업으로 보내야합니다. 내가 본 것으로부터, MultipleFileInputFormat을 사용하기 위해서는 모든 입력 파일이 같은 디렉토리에 있어야합니다. 여러 디렉토리를 작업에 직접 전달할 수 있습니까? 그렇지 않다면 명명 충돌없이 이러한 파일을 효율적으로 하나의 디렉토리에 넣거나 이러한 파일을 하나의 압축 된 gz 파일로 병합 할 수 있습니다. 참고 : 나는 매퍼를 구현하고 돼지 또는 하프 스트리밍을 사용하지 않는 일반 자바를 사용하고 있습니다.

위 문제와 관련하여 도움을 주시면 감사하겠습니다. 감사, Ankit

해결법

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

    1.FileInputFormat.addInputPaths ()는 쉼표로 구분 된 여러 파일 목록을 취할 수 있습니다.

    FileInputFormat.addInputPaths ()는 쉼표로 구분 된 여러 파일 목록을 취할 수 있습니다.

    FileInputFormat.addInputPaths("foo/file1.gz,bar/file2.gz")
    
  2. from https://stackoverflow.com/questions/4593243/hadoop-job-taking-input-files-from-multiple-directories by cc-by-sa and MIT license