복붙노트

[HADOOP] Oozie : Oozie <java> 액션에서 Map-Reduce를 시작 하시겠습니까?

HADOOP

Oozie : Oozie 액션에서 Map-Reduce를 시작 하시겠습니까?

작업을 사용하여 Oozie 워크 플로에서 Map-Reduce 작업을 실행하려고합니다.

O'Reilley의 Apache Oozie (Islam and Srinivasan 2015)는 다음과 같이 말합니다.

그러나, 나는이 접근법을 사용하여 성공하지 못하고있다.

워크 플로의 작업 정의는 다음과 같습니다.

<java>
    <!-- Namenode etc. in global configuration -->
    <prepare>
      <delete path="${transformOut}" />
    </prepare>
    <configuration>
        <property>
            <name>mapreduce.job.queuename</name>
            <value>default</value>
        </property>
    </configuration>
    <main-class>package.containing.TransformTool</main-class>
    <arg>${transformIn}</arg>
    <arg>${transformOut}</arg>
    <file>${avroJar}</file>
    <file>${avroMapReduceJar}</file>
</java>

Tool 구현의 main () 구현은 다음과 같습니다.

public static void main(String[] args) throws Exception {
    int res = ToolRunner.run(new TransformTool(), args);
    if (res != 0) {
        throw new Exception("Error running MapReduce.");
    }
}

워크 플로가 매번 위에있는 "MapReduce 실행 오류"예외로 인해 충돌합니다. 문제를 진단하기 위해 MapReduce의 출력을 얻으려면 어떻게해야합니까? 이 도구를 사용하여 MapReduce 응용 프로그램을 실행하는 데 문제가 있습니까? 잘못된 API 호출을 사용하고 있습니까?

Oozie 작업을 사용하는 것을 매우 꺼려합니다. 워크 플로의 각 작업은 여러 버전으로 분리 된 AVRO 스키마를 사용하기 때문입니다.

여기에 무슨 문제가 있니? 나는 '새로운'mapreduce API를 사용하고있다.

어떤 도움을 주셔서 감사합니다.

해결법

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

    1.> MapReduce의 출력을 얻으려면 어떻게해야합니까?

    > MapReduce의 출력을 얻으려면 어떻게해야합니까?

    기본 사항으로 돌아갑니다.

    어떤 버전의 Hadoop 및 어떤 Oozie 버전을 사용하고 있는지 언급하지 않으므로 "최근"설정 (예 : Hadoop 2.7 / TimelineServer 및 Oozie 4.2)을 사용합니다. 그리고 어떤 종류의 인터페이스 (커맨드 라인 인 Oozie / Yarn UI? Hue?)를 언급하지 않았기 때문에 good'old'CLI를 사용하여 몇 가지 예제를 제공 할 것입니다.

    > 오지 작업 - 로컬 타임 -len 10 - 필터 이름 = CrazyExperiment

    "CrazyExperiment"워크 플로우의 마지막 10 번 실행을 보여줍니다. 그러면 다음 명령에서 적절한 "작업 ID"를 주입 할 수 있습니다.

    > 직장 - 정보 0000005-151217173344062-oozie-oozi-W

    Oozie의 관점에서 그 실행 상태를 보여줍니다. Java 작업이 PREP 모드에서 멈춘 경우 Oozie가 YARN에 제출하지 못했습니다. 그렇지 않으면 "외부 ID"에서 job_1449681681381_5858과 같은 것을 찾을 수 있습니다. 그러나 조심하십시오! 작업 접두어는 유산입니다. 실제 YARN ID는 application_1449681681381_5858입니다.

    > 오지 작업 - 로그 0000005-151217173344062-oozie-oozi-W

    예상대로 Oozie 로그를 표시합니다.

    > 실 로그 -applicationId application_1449681681381_5858

    실행이 끝난 후 AppMaster (컨테이너 # 1) 및 Java 액션 시작 관리자 (컨테이너 # 2)에 대한 통합 로그를 표시합니다. Launcher에 대한 stdout 로그에는 Oozie 디버그 항목이 포함되어 있습니다. 실제 stdout은 맨 아래에 있습니다.

    Java 작업이 다른 YARN 작업을 성공적으로 생성하고 자식 "응용 프로그램 ID"를주의해서 표시 한 경우에는 해당 응용 프로그램을 검색하고 다른 스레드 로그 명령을 실행할 수 있어야합니다.

    다음 5 일간의 디버깅을 즐기십시오 ;-)

  2. from https://stackoverflow.com/questions/34344114/oozie-launch-map-reduce-from-oozie-java-action by cc-by-sa and MIT license