복붙노트

[HADOOP] Hadoop Reducer : 어떻게 투기 실행을 사용하여 여러 디렉토리로 출력 할 수 있습니까?

HADOOP

Hadoop Reducer : 어떻게 투기 실행을 사용하여 여러 디렉토리로 출력 할 수 있습니까?

결과를 다른 디렉토리에 출력해야하는 감속기가 있으므로 나중에 출력을 하이브에 대한 입력으로 분할 된 테이블로 사용할 수 있습니다. (하이브는 폴더 이름에 따라 파티션을 생성합니다). 이 위치를 작성하기 위해 현재이 작업을 수행하기 위해 Hadoop 프레임 워크를 사용하고 있지 않으며, 말하자면 "Hadoop 뒤에있는"위치를 분리하여 작성하고 있습니다. 즉, 우리는 hadoop의 API를 사용하여 이러한 파일을 출력하지 않습니다.

mapred.reduce.tasks.speculative.execution이 true로 설정된 문제가있었습니다. 동일한 작업에 대한 여러 작업 시도가 동일한 위치에 쓰고 있기 때문에이 경우에 해당하는 것으로 알고 있습니다.

Hadoop의 API를 사용하여 mapred.reduce.tasks.speculative.execution = true를 사용할 수 있도록 동일한 감속기에서 여러 개의 다른 폴더로 출력하는 방법이 있습니까? (나는 투기 실행을 지원하는지 확신 할 수없는 MultipleOutputs에 대해 알고있다.)

그렇다면 S3로 출력하는 방법이 있습니까?

해결법

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

    1.Hadoop이 일반적으로 추측 실행을 처리하는 방법은 각 작업 시도 (실제 HDFS 출력 디렉토리의 _temporary 하위 폴더에 있음)에 대한 출력 폴더를 만드는 것입니다.

    Hadoop이 일반적으로 추측 실행을 처리하는 방법은 각 작업 시도 (실제 HDFS 출력 디렉토리의 _temporary 하위 폴더에 있음)에 대한 출력 폴더를 만드는 것입니다.

    OutputFormat의 OutputCommitter는 작업이 성공하면 temp 작업 폴더의 내용을 실제 출력 폴더로 간단히 이동하고 실패 / 중단 된 작업에 대해서는 다른 임시 작업 폴더를 삭제합니다 (대부분의 FileOutputFormats의 기본 동작)

    따라서 작업 출력 폴더 외부의 폴더에 쓰는 경우 사용자 자신의 출력 커미터를 확장 / 구현해야합니다. 나는 파일을 만들 때 똑같은 원칙을 따를 것이다. 추론 적으로 실행할 때 이름 충돌을 피하기 위해 전체 작업 ID (시도 ID 포함)를 포함시킨다. 작업에서 생성 된 파일을 추적하고 중단 / 실패 시나리오에서 삭제를 관리하는 방법은 사용자에게 달려 있습니다 (작업 ID를위한 일부 파일 전역 화)?

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

    2.http://hadoop.apache.org/docs/r2.3.0/api/org/apache/hadoop/mapreduce/lib/output/MultipleOutputs.html에 관심이있을 수 있습니다.

    http://hadoop.apache.org/docs/r2.3.0/api/org/apache/hadoop/mapreduce/lib/output/MultipleOutputs.html에 관심이있을 수 있습니다.

  3. from https://stackoverflow.com/questions/14824215/hadoop-reducer-how-can-i-output-to-multiple-directories-using-speculative-execu by cc-by-sa and MIT license