복붙노트

[HADOOP] Oozie 워크 플로우 단축

HADOOP

Oozie 워크 플로우 단축

Oozie를 사용하여 MapReduce 작업 세트를 함께 묶습니다. 각 작업의 개별 스텁은 많은 속성이 필요하기 때문에 약 400 줄입니다. 이러한 특성의 대부분은 작업간에 동일하며 config-default.xml에 설정된 구성을 사용하십시오. 새 작업을 만들 때 어떤 속성이 일반적인지 알아 내야하기 때문에 각 스텁을 줄이고 공통 속성을 중앙 집중화 할 수 있기를 원합니다.

확실한 해결책은 job-xml 태그를 사용하여 각 스텁에서 호출 된 job.xml 파일에 공통 특성을 배치하여 워크 플로우를 단축하는 것입니다. 그러나 job.xml은 config-default.xml을 읽는 것처럼 보이지 않으므로 job.xml에서 변수가 해석되지 않습니다. job-xml 태그에는 config-default.xml을 사용할 수 없습니다. 그 자체에는 job.properties에 설정된 변수가 포함되어 있기 때문입니다.

어떤 제안? bash 스크립트를 실행하고 수동으로 변수를 바꾸는 것은 내가 사용할 수있는 해결책이 아닙니다.

해결법

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

    1.글로벌 구성을 사용하여 워크 플로우 XML을 단축 할 수 있습니다

    글로벌 구성을 사용하여 워크 플로우 XML을 단축 할 수 있습니다

    이렇게하면 모든 조인 속성을 전역 섹션에 넣을 수 있습니다.

    <workflow-app xmlns="uri:oozie:workflow:0.4" name="wf-name">
    <global>
       <job-tracker>${job-tracker}</job-tracker>
       <name-node>${namd-node}</name-node>
       <job-xml>job1.xml</job-xml>
       <configuration>
            <property>
                <name>mapred.job.queue.name</name>
                <value>${queueName}</value>
            </property>
        </configuration>
    </global>
    

    참고 : 올바른 워크 플로우 버전을 사용해야합니다 (제 예에서는 0.4 임)

  2. from https://stackoverflow.com/questions/24327264/shortening-oozie-workflows by cc-by-sa and MIT license