실행 모드는 스파크 애플리케이션을 실행할 때 요청한 자원의 물리적인 위치를 결정한다. 실행 모드는 총 3가지로 클러스터 모드, 클라이언트 모드, 로컬모드가 있다.
클러스터 모드
클러스터 모드를 사용하려면 컴파일된 JAR파일이나 파이썬 스크립트, R 스크립트를 클러스터 매니저에게 전달해야 한다. 클러스터 매니저는 파일을 받은 다음 하나의 워커 노드에 스파크 드라이버을 실행하고 다른 워커 노드에 스파크 익스큐터 프로세스를 실행한다. 클러스터 매니저는 모든 스파크 애플리케이션과 관련된 프로세스를 유지하는 역할을 한다.
클러스터 모드에서는 스파크 드라이버, 스파크 익스큐터가 모두 클러스터 워커 노드에서 실행된다.
클라이언트 모드
클라이언트 모드는 애플리케이션을 제출한 클라이언트 머신에 스파크 드라이버가 위치한다는 것을 제외하면 클러스터 모드와 비슷하다. (클러스터 모드에서는 스파크 드라이버가 애플리케이션을 제출한 머신이 아닌, 클러스터 노드에 생성된다.) 클라이언트 모드에서 클라이언트 머신은 스파크 드라이버 프로세스를 유지하고, 클러스터 매니저는 익스큐터 프로세스를 유지한다. 클라이언트 모드에서 클라이언트 머신을 게이트웨이 머신(Gateway machine), 에지 노드(Edge node) 라고도 부른다.
로컬 모드
로컬 모드는 위 두 모드와 다른 면이 많다. 로컬 모드로 스파크 애플리케이션을 실행할 경우 단일 머신에서 실행되며, 애플리케이션 병렬 처리를 위해 단일 머신의 스레드를 활용한다.
'Data Engineering > Spark' 카테고리의 다른 글
spark-submit (0) | 2022.02.20 |
---|---|
Spark의 핵심 RDD (0) | 2022.02.08 |
Spark Application Architecture - 스파크의 작동 순서(스파크 클러스터) (0) | 2022.02.08 |
Spark Application Component - Component (0) | 2022.02.08 |