우지를 이용하여 하둡, 하이브 액션을 처리할때
HDFS나 S3에 작업이 처리 되었음을 알리기 위하여 0byte의 파일을 생성해야 할 때가 있다.
이럴때 hadoop의 touchz 명령을 이용하면 0byte의 파일을 생성할 수 있다.
* 이는 리눅스의 touch 명령과 동일하다.
우지 워크플로우의 fs 액션은 이작업을 기본적으로 제공하기 때문에
따로 쉘커맨드나 파이썬 액션을 만들지 않아도 처리가 가능하다.
fs 액션은 다음의 기본 명령을 제공한다.
- move , delete , mkdir , chmod , touchz, chgrp
[fs 액션 문법]
<workflow-app name="[WF-DEF-NAME]" xmlns="uri:oozie:workflow:0.5">
...
<action name="[NODE-NAME]">
<fs>
<delete path='[PATH]'/>
...
<mkdir path='[PATH]'/>
...
<move source='[SOURCE-PATH]' target='[TARGET-PATH]'/>
...
<chmod path='[PATH]' permissions='[PERMISSIONS]' dir-files='false' />
...
<touchz path='[PATH]' />
...
<chgrp path='[PATH]' group='[GROUP]' dir-files='false' />
</fs>
<ok to="[NODE-NAME]"/>
<error to="[NODE-NAME]"/>
</action>
...
</workflow-app>
[예제1]
<workflow-app name="sample-wf" xmlns="uri:oozie:workflow:0.5">
...
<action name="hdfscommands">
<fs>
<delete path='hdfs://foo:8020/usr/tucu/temp-data'/>
<mkdir path='archives/${wf:id()}'/>
<move source='${jobInput}' target='archives/${wf:id()}/processed-input'/>
<chmod path='${jobOutput}' permissions='-rwxrw-rw-' dir-files='true'><recursive/></chmod>
<chgrp path='${jobOutput}' group='testgroup' dir-files='true'><recursive/></chgrp>
</fs>
<ok to="myotherjob"/>
<error to="errorcleanup"/>
</action>
...
</workflow-app>
[예제2]
<workflow-app xmlns="uri:oozie:workflow:0.5" name="sample">
<start to="fs_touchz" />
<action name="fs_touchz" retry-max="2" retry-interval="5">
<fs>
<touchz path='s3://usr-bucket/${runDate}/${runTime}.end' />
</fs>
<ok to="end" />
<error to="fail" />
</action>
<kill name="fail">
<message>Map/Reduce failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message>
</kill>
<end name="end" />
</workflow-app>
'빅데이터 > oozie' 카테고리의 다른 글
[oozie] 우지의 hive 액션 예제 (0) | 2017.04.06 |
---|---|
[oozie] 우지에서 하이브 액션 처리중 java.lang.ClassNotFoundException: Class org.apache.oozie.action.hadoop.HiveMain not found 오류 처리 (0) | 2017.04.06 |
[oozie] 우지의 RUNNING 중인 코디네이터 정보 수정 (0) | 2017.01.11 |
[oozie] python을 이용하여 우지 WebService API 호출하기 (0) | 2016.10.10 |
[oozie] 우지에서 쉴에서 실행한 값을 다음 액션의 파라미터로 전달하기 (0) | 2016.07.26 |