이 장에서 알아볼 주제는
- 스파크의 아키텍처와 컴포넌트
- 스파크 어플리케이션 생애주기
- 파이프라이닝 + low-level 실행 속성
- 스파크 어플리케이션 실행에 필요한거
이전의 [파이썬을 활용한 스파크 프로그래밍] 책에서는 3장의 내용과 유사했다
[PySpark_#3] 파이썬을 활용한 스파크 프로그래밍, (3장/8장) - 박홍 데이터베이스
devhyung.github.io
스파크 어플리케이션의 아키텍처
2장에서의 내용을 간단하게 복습 후 넘어감
- Driver
- 운전자 역할, 물리적 머신의 프로세스며 클러스터에서 실행중인 어플리케이션의 상태를 유지
- Executor
- 드라이버가 할당한 태스크를 수행하는 프로세스
- 클러스터 매니저
- 드라이버와 익스큐터를 허공에 띄울 수는 없으니 매니저가 필요함. 클러스터 매니저는 '드라이버=마스터'와 '워커'라는 개념을 가지고있어 혼란스러울 수 있음
스파크 어플리케이션을 실행할 떄가 되면
유저 -> 클러스터 매니저에 자원 할당 요청
클러스터 매니저는
- 스탠드얼론
- 아파치 메소스
- 하둡 YARN
이 가능하다
실행모드
실행 모드는
- 클러스터모드
- 클라이언트 모드
- 로컬 모드
로 존재하고 책에서의 실선직사각형은=드라이버 프로세스, 점선직사각형=익스큐터 프로세스임
클러스터 모드
가장 흔하게 사용됨. 1드라이버 - N개의 익스큐터
클라이언트 모드
어플리케이션을 제출한 클라이언트 머신에 드라이버가 위치하는거 빼곤 클러스터모드랑 비슷.
게이트웨이 머신이나 에지 노드를 가지고있음
1외부 - - - - - |(바로전달)
1드라이버 - N개의 익스큐터
로컬모드
내 머신안에 다 있음. 권장X
생애주기
모든 스파크 어플리케이션은 가장 먼저 SparkSession을 생성 ->
SparkContext로 클러스터에 대한 연결 + getOrCreate() 이용 ->
액션을 호출할때 개별 스테이지와 태스크로 이루어진 잡이 실행됨.
localhost:4040 -> Jobs탭에서 확인가능
다음 포스팅
[PySpark] 스파크 완벽 가이드 - 16장 스파크 어플리케이션 개발하기
예제코드는 아래의 깃허브에있음 GitHub - FVBros/Spark-The-Definitive-Guide: 한빛미디어에서 출간한 스파크 완벽 가이드 1판의 소스코드 저한빛미디어에서 출간한 스파크 완벽 가이드 1판의 소스코드 저
parkhong-python.tistory.com
'스터디 > 책 모임' 카테고리의 다른 글
[PySpark] 스파크 완벽 가이드 - 5장 구조적 API 기본 연산 (1) | 2024.05.02 |
---|---|
[PySpark] 스파크 완벽 가이드 - 4장 구조적 API 개요 (1) | 2024.05.02 |
[PySpark] 스파크 완벽 가이드 - 17장 스파크 배포 환경 (0) | 2024.04.24 |
[PySpark] 스파크 완벽 가이드 - 16장 스파크 어플리케이션 개발하기 (0) | 2024.04.24 |