Oozie

우지는 버마어로 코끼리 사육사(elephant keeper) 라고 하네요.

하둡 작업을 실행하고, 스케줄링하는 시스템으로 사용하고 있습니다.

워크플로!

Hadoop 내에서 실행되는 작업들 중에, 서로 순서가 있고 디펜던시가 있는 녀석들을 한 데 정의한 개념.

(multi-stage Hadoop Job)

워크플로 예제

Untitled

보면, Start Task와 End Task로 마무리 되고,

중간에 두 가지 작업으로 나눠지기 위해 Fork Task가 있고, 이걸 합쳐주는 Join Task가 있음. 그리고, 이 데이터를 가지고 분석을 수행하는 Hive Task가 있네.

이 정도로 읽을 수 있으면 될듯!

XML로 워크플로 나타내기

앞서 살펴본 워크플로인 다음 녀석은 XML로 다음처럼 나타낼 수 있음

Untitled

Untitled

보면.. XML 내에 어떤 taksk에서 시작할지 지정했고, fork-node 가 이걸 가리키는데,

fork-node 태스크는 두 가지 태스크로 포킹되는 녀석으로 보임. 확실히 .. XML로 모든 DAG을 나타내려니 복잡하긴 하네.. AIrflow 승리!!!!!

중간에 <ok to="joining"/> 이건 결과물이 ok면, 이름이 joining인 태스크로 가고, 아니면 실패로 끝나고.를 지정하는 거임. forking 한 태스크가 모두 끝나기를 기다리는 거 같음. ㅋㅋ

뭐 읽어보니까 아예 못 쓸 정도는 아닌데, 함수나 이런걸 넣기가 너무 불편하고, XML이라는 언어적 한계도 명확해보임.. Airflow 승리!!!!

Oozie에서 워크플로를 셋업하기 위한 단계들