요즘 Workflow에 관련해서 자료를 조사하고 있는데..
간단한거라 영어 공부도 해볼겸 번역해 보았습니다.
발번역이라 엉망인데 많은 조언 부탁드립니다.
원문 : http://code.google.com/p/hamake/#Introduction
//======================================================================
HAMAKE
Introduction
Most non-trivial data processing scenarios with Hadoop typically require more than one MapReduce job. Usually such processing is data-driven, with the data funneled through a sequence of jobs. The processing model could be presented in terms of dataflow programming. It could be expressed as a directed graph, with datasets as nodes. Each edge indicates a dependency between two or more datasets and is associated with a processing instruction (Hadoop MapReduce job, PIG Latin script or an external command), which produces one dataset from the others. Using fuzzy timestamps as a way to detect when a dataset needs to be updated, we can calculate a sequence in which the tasks need to be executed to bring all datasets up to date. Jobs for updating independent datasets could be executed concurrently, taking advantage of your Hadoop cluster’s full capacity. The dependency graph may even contain cycles, leading to dependency loops which could be resolved using dataset versioning.
These ideas inspired the creation of HAMAKE utility. We tried emphasizing data and allowing the developer to express one’s goals in terms of dataflow (versus workflow). Data dependency graph is expressed using just two data flow instructions: fold and foreach providing a clear processing model, similar to MapReduce, but on a dataset level. Another design goal was to create a simple to use utility that developers can start using right away without complex installation or extensive learning.
Key Features
1. Lightweight utility – no need for complex installation
2. Based on dataflow programming model
3. Easy learning curve.
4. Supports Amazon Elastic MapReduce
5. Allows to run MapReduce jobs as well as PIG Latin scripts
Installation
To install Hamake simply copy hamake-x.x.jar to the directory of your choice and make sure that hadoop command is in your $PATH variable. We also provide RPM and DEB packages.
//======================================================================
HAMAKE
소개
대부분의 적지 않은 데이터를 처리하는 Hadoop의 시나리오는 일반적으로 하나 이상의 MapReduce 작업이 필요합니다. 보통 이런 처리는 깔대기를 통해 나오는 시퀀스 job의 형태를 가지는 data-driven 처리 방식입니다. 이런 처리 모델은 데이터 흐름 프로그래밍 측면에서 제시 될 수 있습니다. 이런 노드와 같은 데이터 세트는 방향그래프(directed graph)로 표현 될 수 있습니다. 각 종단은 두 개 이상의 데이터 세트 사이의 종속성을 나타내고, 다른 데이터 세트에서 처리(Hadoop MapReduce 작업, PIG Latin script 또는 외부 명령)되어 나온 결과와 연결되어 있습니다. fuzzy timestamps는 데이터 세트가 업데이트될 경우 감지 할 수 있는 방법으로, 테스크가 모든 최신의 데이터셋을 가져와 실행하는데 필요한 순서를 계산 할 수 있습니다. Job들은 독립적인 데이터 셋을 업데이트 할 때 Hadoop 클러스터의 전체 용량 안에서 동시에 실행할 수 있습니다. 종속성 그래프는 데이터 세트의 버전닝을 사용하여 해결 될 수 있는 종속성 루프의 주기를 포함 할 수 있습니다.
이 아이디어가 HAMAKE의 유틸리티를 만드는데 영감을 주었습니다. 우리는 데이터를 강조하고 개발자는 데이터 흐름(워크플로우에 대조적으로)의 관점에서 자신의 목표를 표현 할 수 있도록 노력했습니다. 데이터 종속성 그래프는 두 데이터 흐름 명령을 사용하여 표현됩니다 : fold와 foreach는 MapReduce와 같이 명확한 처리 모델을 제공하지만 데이터 세트 수준입니다. 또 다른 디자인의 목표는 개발자가 복잡한 설치나 다양한 학습없이 바로 사용할 수 있는 유틸리티를 사용하여 간단한 것을 만들 수 있도록 하는 것이 었습니다.
주요 특징
1. 경량 유틸리티 – 복잡한 설치 필요 없음
2. 데이터 흐름 프로그래밍 모델을 기반으로
3. 쉬운 학습 곡선.
4. 아마존 Elastic MapReduce 지원
5. MapReduce 작업뿐만 아니라 PIG Latin scripts를 실행 할 수 있습니다.
설치
Hamake를 설치하려면 간단하게 원하는 디렉토리에 hamake-x.x.jar 복사하고, hadoop 명령의 위치를 $PATH 변수에 추가합니다. 우리는 RPM과 DEB 패키지 또한 제공합니다.
Hamake과 다른 WorkflowEngines 과 비교(Cascading Oozie Azkaban)