Contents
-
스파크? 클러스터 모드
-
클러스터 매니저 종류
-
응용프로그램 제출
-
모니터링
-
잡 스케쥴링
-
용어 설명
스파크?
Apache Spark 는 빠르고 제네럴한 클러스터다
자바, 스칼라, 파이썬, R 등의 고급 API 들을 지원하는 최적화된 엔진을 제공한다고 한다.
스파크는 혼자서 또는 기존의 클러스터에서 실행 될 수 있는데
오늘은 스파크가 클러스터에서 어떻게 실행이 되는지 알아보도록 하자
-이 다음 내용에선 클러스터에서 응용 프로그램이 어떻게 실행되는지 알아볼 것
스파크는 클러스터에서 독립적인 프로세스 세트로 실행이 된다.
드라이버 프로그램의 스파크 콘텍스트 객체에 의해 조정된다.
구체적으로 보면, 스파크 콘텍스트는 여러 유형의 ClusterManager(spark standalone, Mesos, Yarn) 에 연결 할 수 있으며,
에플리케이션 간에 리소스를 할당 할 수 있다.
일단 연결 되면 스파크는 클러스터의 노드에서 executor 를 획득하게 된다.
이 executor 는 계산을 실행하고 응용 프로그램의 데이터를 저장하는 프로세스다.
다음으로 어플리케이션 코드(스파크 컨텍스트로 전달된 JAR 파일) 를 실행자에게 전송하고
스파크 컨텍스는 실행할 executor 에게 tasks 를 전달한다
이 아키텍처에는 다음과 같은 몇 가지 유용한 사항이 있다.
1. 각 어플리케이션은 자체 executor 프로세스를 얻는데, 이 프로세스는 전체 응용 프로그램의 지속 시간 동안 유지 되며,
여러 스레드(Multiple threads) 에서 tasks 를 실행한다.
이렇게 하면, scheduling side (각 드라이버가 own tasks 를 스케쥴링) executor side (서로 다른 JVM 에서 tasks 들이 어플리케이션의 tasks 가 실행) 면에서 이득이 생긴다.
2. 스파크가 cluster Manager 가 어떤건지 상관 없어진다.
다른 클러스터 관리자 (Mesos, Yarn) 에서도 실행이 쉬워진다.
3. 드라이버는 클러스터에서 작업을 스케쥴링 하기 때문에 worker node 와 가급적 가까워야 한다.
가급적 로컬 영역 네트워크에서 실행되면 좋다.
클러스터 매니저 종류
응용 프로그램 제출
spark-submit 스크립트를 이용해서 모든 유형의 클러스터에 제출 할 수 있다.
모니터링
일반적으로 :4040 포트에서 모니터링 할 수 있는 web UI 가 있다.
잡 스케쥴링
스파크는 어플리케이션 간(across application) 과 어플리케이션 내 (within application) 모두 에서 리소스 할당에 대한 제어권을 제공한다
용어 설명
Driver program - 어플리케이션 main() 함수를 실행하고 SparkContext 를 생성하는 프로세스
Cluster manager - 클러스터의 리소스를 획득하기 위한 외부 서비스 ex. YARN
Deploy mode - 드라이버 프로세스가 실행되는 위치를 구분. cluster Mode 에서는 프레임워크가 클러스터 내부에서 드라이버를 실행
"client" Mode 에서는 submitter 가 클러스터 외부에서 드라이버를 실행한다
'데이터처리 > spark' 카테고리의 다른 글
[Spark definitive guide] - 아파치 스파크란 (0) | 2021.02.02 |
---|---|
Spark - RDD 생성 방법과 동작 과정 (0) | 2020.06.04 |
[Trouble Shooting] spark- Java 버전 dependency (0) | 2020.05.14 |
[reference] spark - RDD programming (0) | 2020.05.11 |
[reference] spark - programming quick start (0) | 2020.05.08 |