-
전체 처리 과정
1 . Driver Program : 사용자가 실제로 작성한 코드
드라이버가 실행 될때
- 사용자 프로그램을 Task로 변환
- Task를 Executor에 할당
SparkContext를 반드시 포함
- 스파크 환경 변수 설정등
- RDD 생성 / 파일 로딩 / RDD의 메타 데이터 저장
- Job 정보 UI로 표현
시작 시 스케쥴러 실행
- DAG( Direct Acyclic Graph ) : 데이터의 지역성을 고려하여 단순히 Job의 논리적인 실행 계획을 세움
- Task : stage 단위 ( Task의 묶음 ) 로 분할 * task는 가장 작은 실행단위
- 각 stage 별 task 실행 계획을 생성 * job은 stage의 묶음
2. Deploy mode : 드라이버 프로그램의 실행 위치 지정
- client
- cluster : spark Context가 지정되는 worker는 임의 // 같은 클러스터내에 존재하기때문에 통신 용이
3. Cluster Manager : 서버의 리소스 (cpu,메모리) 모니터링
-HA 지원
1 ) slave가 죽으면 다른 slave 할당
2 ) master가 죽으면 주키퍼로 해결
3 ) 드라이버 프로그램에 자원 할당을 수행
4 ) 자원 스케쥴링 방법 : 동적, 정적
4. 자원 할당 방식
- 정적 : 고정 리소스 , 일반적인 배치 처리에 적합
- 동적 : 자원을 프로그램이 쓰지 않는다 싶으면 죽이는 방식 , 요청이 들어올때만 수행하는 어플리케이션에 적합
5. 자원 스케쥴링
- SparkContext에서 job의 자원 할당을 담당
- FIFO,FAIR 두가지 방식이 있음 *FAIR은 모든 JOB이 동일한 자원을 정해진 시간동안 번갈아가면서 사용
- POOLING : pool마다 스케쥴링,자원할당을 함
'2018년 > spark' 카테고리의 다른 글
GraphX ~그래프 연산 (0) 2018.04.03 GraphX ~그래프 생성까지 (0) 2018.04.02 spark info좀 꺼보자 (0) 2018.02.28 Spark Streaming,Structured Streaming (0) 2018.02.27 RDD(Resilient Distributed Datasets) (0) 2018.02.27