우지 워크플로우의 기본 스펙과 실행 방법에 대해서 알아보겠습니다.
[워크플로우 기본 스펙]
우지 워크플로우는 우지가 실제로 실행하는 작업의 순서를 담고 있습니다. XML 스키마에 맞춰서 작성하면 됩니다.
https://oozie.apache.org/docs/4.2.0/WorkflowFunctionalSpec.html#Appendix_A_Oozie_XML-Schema
워크플로우 실행에 실패하면 우지 로그 커맨드(oozie job -log)를 이용하여 오류 원인을 확인하고 수정하면 됩니다. 워크플로우가 서브 워크플로우를 실행할 수도 있고, <fork>, <join>을 이용하여 병렬로 실행할 수도 있습니다. <decision>을 이용하여 작업의 분기를 결정할 수도 있습니다. 하지만 작업 내부적으로 루프(반복문)를 처리할 수 없습니다.
다음은 기본적인 워크플로우 작성예시입니다.
<workflow-app xmlns="uri:oozie:workflow:0.5" name="workflow_sample_job">
<parameters>
<property>
<name>runDate</name>
<value>20190101</value>
</property>
</parameters>
<global>
<job-tracker>127.0.0.1:8032</job-tracker> <!-- yarn 주소 -->
<name-node>hdfs://127.0.0.1:8020</name-node> <!-- 네임노드 주소 -->
<job-xml>hadoop-conf.xml</job-xml> <!-- 설정정보를 모아둔 파일 -->
<configuration>
<property>
<name>mapred.job.queue.name</name>
<value>queue_name</value>
</property>
</configuration>
</global>
<start to="hive_action" /> <!-- 시작노드 이름 -->
<action name="hive_action"> <!-- action -->
<hive xmlns="uri:oozie:hive-action:0.5">
<configuration>
<property>
<name>hive.tez.container.size</name>
<value>2048</value>
</property>
<property>
<name>hive.tez.java.opts</name>
<value>-Xmx1600m</value>
</property>
</configuration>
<script>sample.hql</script>
<param>runTime=00</param>
</hive>
<ok to="end" />
<error to="kill" />
</action>
<kill name="kill">
<message>Error!!</message>
</kill>
<end name="end" />
</workflow-app>
[워크플로우 실행]
워크플로우를 실행하기 위해서는 먼저 작성한 워크플로우와 실행을 위한 쿼리파일을 HDFS에 업로드 해야 합니다. 그리고 업로드한 위치를 oozie.wf.application.path에 설정하고 run 명령을 실행하면 됩니다.
# 파일 업로드 확인
$ hadoop fs -ls hdfs:///location/
-rw-r--r-- 3 hadoop hadoop 103 2019-04-19 01:53 /location/sample.hql
-rw-r--r-- 3 hadoop hadoop 10799 2019-04-19 01:53 /location/workflow.xml
# 실행
oozie job -run -Doozie.wf.application.path=hdfs:///location/
반응형
'빅데이터 > oozie' 카테고리의 다른 글
[oozie][slf4j] SLF4J: Class path contains multiple SLF4J bindings. 오류 (0) | 2019.10.25 |
---|---|
[oozie] 우지 액션(action) 체크 설정 변경하기 (0) | 2019.04.19 |
[oozie] 코디네이터(coordinator)의 일자 변환 EL 함수 사용법 (0) | 2019.03.19 |
[oozie] 우지의 HDFS EL 함수 알아보기 (0) | 2019.02.13 |
[oozie] 우지 잡의 프로퍼티 업데이트 (0) | 2018.12.14 |