복붙노트

[HADOOP] Oozie 파일 기반 코디네이터

HADOOP

Oozie 파일 기반 코디네이터

나는 파일 의존성이있는 코디네이터를 만들려고 해요. 내 목표는 코디네이터가 지정된 파일이 생성 된 경우에만 워크 플로우를 실행해야한다는 것입니다. 파일이 생성되지 않은 경우에는 파일이 생성 될 때까지, 코디네이터는 기다려야한다. 나는 다음과 같은 코드를 시도했다 :

<coordinator-app name="MY_APP" frequency="1440" start="2009-02-01T00:00Z" end="2009-02-07T00:00Z" timezone="UTC" xmlns="uri:oozie:coordinator:0.1">
  <datasets>
    <dataset name="input1" frequency="60" initial-instance="2009-01-01T00:00Z" timezone="UTC">
      <uri-template>hdfs://localhost:9000/tmp/revenue_feed/${YEAR}/${MONTH}/${DAY}/${HOUR}</uri-template>
      <done-flag>trigger.dat</done-flag>
    </dataset>
  </datasets>
  <input-events>
    <data-in name="coordInput1" dataset="input1">
      <start-instance>${coord:current(-23)}</start-instance>
      <end-instance>${coord:current(0)}</end-instance>
    </data-in>
  </input-events>
  <action>
    <workflow>
      <app-path>hdfs://localhost:9000/tmp/workflows</app-path>
    </workflow>
  </action>     
</coordinator-app>

나는 Oozie 작업을 시작하며 대기 상태에 있습니다. // 로컬 호스트 : 나는 HDFS (HDFS의 지정된 디렉토리 구조에서 파일 (trigger.dat)이 생성됩니다 스크립트 실행 한 9000 / tmp를 / revenue_feed / $ {년} / $ {MONTH} / $ {DAY}을 / $ {HOUR}). 파일, 여전히 대기 상태를 생성되었다.

어떤 일이 나를 도울 수 ..

해결법

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

    1.나는 시작과 끝 날짜를 변경하고 지금 일하고있어.

    나는 시작과 끝 날짜를 변경하고 지금 일하고있어.

    coordinator.xml의 작업은 다음과 같습니다

    <coordinator-app name="MY_APP" frequency="60" start="2015-01-12T05:00Z" end="2015-01-12T08:00Z" timezone="UTC" xmlns="uri:oozie:coordinator:0.1">
      <datasets>
        <dataset name="input1" frequency="30" initial-instance="2015-01-12T04:02Z" timezone="UTC">
          <uri-template>hdfs://localhost:9000/tmp/revenue_feed/${YEAR}/${MONTH}/${DAY}/${HOUR}</uri-template>
          <done-flag>trigger.dat</done-flag>
        </dataset>
      </datasets>
      <input-events>
        <data-in name="coordInput1" dataset="input1">
          <start-instance>${coord:current(-1)}</start-instance>
          <end-instance>${coord:current(0)}</end-instance>
        </data-in>
      </input-events>
      <action>
        <workflow>
          <app-path>hdfs://localhost:9000/tmp/workflows</app-path>
          <configuration>
            <property>
              <name>property1</name>
              <value>${coord:dataIn('coordInput1')}</value>
            </property>
          </configuration>
        </workflow>
      </action>     
    </coordinator-app>
    

    내가 관찰 한 몇 가지 포인트는 다음과 같습니다

  2. from https://stackoverflow.com/questions/27863577/oozie-file-based-coordinator by cc-by-sa and MIT license