Spark Driver란?
애플리케이션 실행의 핵심 구성 요소로, Spark 애플리케이션의 전체 실행을 지휘하고 제어하는 역할을 한다. Spark Driver는 클러스터 내 작업의 분배와 실행 상태를 관리하며, 사용자로부터 애플리케이션 로직을 전달받아 클러스터와의 상호작용을 수행한다.
Client Mode(default)
- driver가 클러스터 외부에 있는 형태
- Application Master는 node manager에게 자원 요청만을 하고 Spark에서 사용중인 리소스를 표시
- 주로 개발 환경에서 디버깅 할 때 의미가 있는 형태
- 장점: 로컬 머신에서 실행되기 때문에 디버깅과 실시간 로그 모니터링이 용이하다.
- 단점: 클러스터의 자원을 효율적으로 사용하지 못할 수 있다.
Cluster Mode
- driver가 클러스터 내부에 있는 형태
- driver가 master상에서 동작 하기 때문에 리소스를 worker node에서 확인해야한다
- production 환경 개발 시 의미가 있다.
- 장점: 드라이버 프로그램이 클러스터의 노드에서 실행되므로 네트워크 지연이 적고, 클러스터 리소스를 더 잘 활용할 수 있다.
- 단점: 로컬 환경에서의 디버깅이 어려울 수 있다
차이 요약
특징 | Cluster Mode | Client Mode |
---|---|---|
드라이버 위치 | 클러스터의 노드 내 | 로컬 머신 |
사용 시기 | 프로덕션 환경, 대규모 데이터 처리 | 개발, 테스트 및 디버깅 |
장점 | 네트워크 지연 최소화, 안정적 실행, 클러스터 리소스 활용 | 디버깅 및 실시간 로그 모니터링 용이, 개발 시 편리 |
제한 사항 | 디버깅이 어려울 수 있음 | 네트워크 의존성 높음, 자원 비효율적 사용 가능 |
사용 예시 | 장시간 배치 작업, 프로덕션 배포 | 코드 로직 검증, 실시간 모니터링 필요 시 |
'프로그래밍 > Spark' 카테고리의 다른 글
[Spark] K8s로 spark cluster 구축하기 (0) | 2024.06.05 |
---|---|
[Spark] MLlib 정리 (0) | 2022.12.07 |
[Spark] 델타 레이크 구축 (0) | 2022.12.06 |
[Spark] 데이터 베이스, 데이터 레이크 , 레이크 하우스 (0) | 2022.12.03 |
[Spark] 스트리밍 성능 튜닝 시 고려할 점 (0) | 2022.12.02 |