실행하려는 코드와 환경 정보를 RM(Resource Manager)에게 넘김
i. 실행에 필요한 파일들은 application ID에 해당하는 HDFS 폴더에 미리 복사됨
RM은 NM(Node Manager)으로부터 컨테이너를 받아 AM(Application Master) 실행
i. AM은 프로그램 마다 하나씩 할당되는 프로그램 마스터에 해당
AM은 입력 데이터 처리에 필요한 리소스를 RM에게 요구
i. RM은 data locality를 고려해서 리소스(컨테이너)를 할당
AM은 할당받은 리소스를 NM을 통해 컨테이너로 론치하고 그 안에서 코드를 실행
i. 이 때 실행에 필요한 파일들이 HDFS에서 Container가 있는 서버로 먼저 복사
각 태스크는 상황을 주기적으로 AM에게 보고 (heartbeat)
i. 태스크가 실패하거나 보고가 오랜 시간 없으면 태스크를 다른 컨테이너로 재실행

Map: (k, v) -> [(k', v')*]
Reduce: (k’, [v1’, v2’, v3’, v4’, …]) -> (k’’, v'')




Driver
Executor

Driver:
Executor:
