복붙노트

[HADOOP] oozie 작업 이름의 이름을 동적으로 바꿀 수 있습니까?

HADOOP

oozie 작업 이름의 이름을 동적으로 바꿀 수 있습니까?

우리에게는 여러 애플리케이션이있는 Hadoop 서비스가 있습니다. 동일한 워크 플로를 다시 실행하여 각 응용 프로그램의 데이터를 처리해야합니다. 이것들은 하루 중 같은 시간에 실행될 예정입니다. 문제는 이러한 작업이 실행중인 응용 프로그램이 작업을 실행 / 실패 / 성공했음을 알기 어렵다는 것입니다. 물론, 나는 작업 구성을 열어서 알 수 있지만 그 서비스에서 실행되는 응용 프로그램이 10 개이므로 시간이 걸립니다.

oozie에서 작업을 실행할 때 워크 플로우 (또는 그 일부)의 이름을 동적으로 전달하는 옵션이 있습니까?

oozie job -run -config <filename> -name "<NameIWishToGive>"
OR
oozie job -run -config <filename> -nameSuffix "<MyApplicationNameUnderTheService>"

또한 복사 붙여 넣기가 너무 많아서 개별 작업을 수행 할 여러 작업 폴더를 만들지 않습니다.

제발 제안해라.

해결법

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

    1.당신은 apache 문서들에서 많은 oozie 명령 행들을 찾을 수있을 것입니다. 나는 어느 쪽이 당신이 찾고 있는지 정확하게 모르겠다. 그래서 나는 단지 링크를 붙여 넣을 것이라고 생각했다. 이 도움이되기를 바랍니다!

    당신은 apache 문서들에서 많은 oozie 명령 행들을 찾을 수있을 것입니다. 나는 어느 쪽이 당신이 찾고 있는지 정확하게 모르겠다. 그래서 나는 단지 링크를 붙여 넣을 것이라고 생각했다. 이 도움이되기를 바랍니다!

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

    2.작업 구성에 설정된 속성을 사용할 수 있어야합니다.

    작업 구성에 설정된 속성을 사용할 수 있어야합니다.

    나는 다음과 같이함으로써 동적 인 이름을 얻을 수 있었다.

    다음은 내 workflow.xml의 예입니다.

    <workflow-app xmlns="uri:oozie:workflow:0.2" name="map-reduce-wf-${environment}">
    ...
    </workflow-app>
    

    그리고 내 직업에서.

    ...
    environment=test
    ...
    

    결국 이름은 "map-reduce-wf-test"

  3. ==============================

    3.나는 그것을하기 위해 오지에서 아무것도 찾을 수 없었다. 다음은 * .xml 파일에서 # {appName} 및 # {frequency}를 찾거나 바꾸어 모든 파일을 hdfs에 업로드하는 스크립트입니다. 값은 스크립트에 제 3 인수로 전달 된 특성 파일에서 가져옵니다.

    나는 그것을하기 위해 오지에서 아무것도 찾을 수 없었다. 다음은 * .xml 파일에서 # {appName} 및 # {frequency}를 찾거나 바꾸어 모든 파일을 hdfs에 업로드하는 스크립트입니다. 값은 스크립트에 제 3 인수로 전달 된 특성 파일에서 가져옵니다.

    Gist - https://gist.github.com/epishkin/5952522

    예:

    ./upload.sh simple_reports namenode01 simple_reports/coordinator_script-1.properties
    

    여기서 'simple_reports'는 workflow.xml 및 coordinator.xml 파일이있는 폴더입니다.

    workflow.xml :

    <workflow-app name="#{appName}" xmlns="uri:oozie:workflow:0.3">
    ...
    </workflow-app>
    

    coordinator.xml :

    <coordinator-app name="#{appName}-coord" xmlns="uri:oozie:coordinator:0.2"
    
                 frequency="#{frequency}"
                 start="${start}"
                 end=  "${end}"
    
                 timezone="America/New_York">
    ...
    </coordinator-app>
    

    coordinator_script-1.properties:

    appName=multi_network
    frequency=${coord:days(7)}
    ...
    

    희망이 도움이됩니다.

  4. ==============================

    4.나는 최근에이 문제에 직면했으며, 모든 테이블은 동일한 워크 플로를 사용하지만 오지 애플리케이션의 이름은 처리중인 테이블의 이름을 반영해야합니다.

    나는 최근에이 문제에 직면했으며, 모든 테이블은 동일한 워크 플로를 사용하지만 오지 애플리케이션의 이름은 처리중인 테이블의 이름을 반영해야합니다.

    그런 다음 job.properties에서 동일한 매개 변수를 전달하면 ozzie 애플리케이션의 이름이 dataload_tablename과 일치하게됩니다.

  5. from https://stackoverflow.com/questions/14564493/can-i-rename-the-oozie-job-name-dynamically by cc-by-sa and MIT license