-
Spark : 구조AI 2022. 7. 26. 15:54
드라이버 ( 작업 관리 ) + 클러스터 매니저 ( 노드 관리 )
스파크 애플리케이션의 구조
- 마스터-슬레이브 구조로 실행되며, 애플리케이션은 드라이버(작업 관리)와 익스큐터(작업 동작)로 구성
- 드라이버 : 스파크 컨텍스트 객체 생성, 클러스터 매니저와 통신하며 클러스터 자원 관리 지원, 애플리케이션 라이프 사이클 관리
스파크 애플리케이션
- 드라이버와 Executor로 실행되는 스파크 실행 프로그램으로 클러스터 매니저를 통해 리소스를 할당 받음.
- 드라이버
- 스파크 애플리케이션을 실행하는 프로세스
- main 함수를 실행하고, 스파트 컨텍스트 객체 생성
- 라이프 사이클을 관리하고, 사용자로 부터 입력을 받아서 애플리케이션에 전달
- 디플로이 모드를 클라이언트 모드(클러스터 외부에서 드라이버 실행)와 클러스터 모드(클러스터 내부에서 드라이버 실행)로 설정할 수 있음.
- Executor
- Task 실행을 담당하는 에이전드로 실제 작업을 진행하는 프로세스
- YARN의 컨테이너라고 볼 수 있다.
- Task 단위로 작업을 싱행하고 결과를 드라이버에 알려줌.
- 오류 발생 시 재작업 진행
- Task
- Executor의 실제 작업.
- Executor와 캐쉬를 공유하여 작업의 속도 향상 가능
Spark Job
- Job ( 스파크 애플리케이션에 제출된 작업 ) > Stage (잡을 Task의 단위에 따라 구분 ) > Task
Cluster Manager
- YARN
- 하둡 클러스터 매니저 [ 리소스 매니저, 노드 매니저로 구성 ]
- Mesos
- 동적 리소스 공유 및 격리를 사용하여 여러 소스의 워크로드를 처리
- 아파치의 클러스터 매니저 [ Master, Slave로 구성 ]
- StandAlone
- 스파크에서 자체적으로 제공하는 클러스터 매니저
- 각 노드에서 하나의 익스큐터만 실행 가능
Thriftserver
- hiveserver2와 비슷한 역할을 하며, SparkSQL 엔진을 이용하여 SQL을 처리
'AI' 카테고리의 다른 글
Spark : Dataset / DataFrame (0) 2022.07.29 Spark : RDD (0) 2022.07.27 Spark : Basic (0) 2022.07.26 MLOps 입력값 드리프트 (0) 2022.07.13 Sequence To Sequence (0) 2021.01.03