IT/Spark
Spark Cluster #1
맷돌로까
2017. 12. 20. 11:04
용어 정리
- 마스터
- 모델링 관점에서 보았을 때, 클러스터 운영 및 제어에 사용되는 논리적 서버를 말한다.
- 슬레이브
- 워커 노드
- 클러스터
- 여러 개의 서버가 네트워크를 통해 연결되어 마치 하나의 서버인 것처럼 동작
- 드라이버 프로그램
- 스파크 컨텍스트를 생성 관리하는 매니저.
- 메인함수를 시작하는 프로그램을 가리킨다.
- Executor
- 워커 노드에서 실행되는 프로세스(스래드가 아니라 프로세스가 실행된다.)
- 스파크 컨텍스트
- 스파크의 시작점(데이터베이스의 커넥션과 비슷) 또는 스파크 클러스터의 연결을 의미
- 컨텍스트를 공유하는 것은 불가능하다.
- 어플리케이션 패키지 파일
- 작성된 드라이버 프로그램을 jar 로 패키징한 파일
구성도

작업 수행 절차
- 드라이버 프로그램 작성
- jar 로 패키징, "어플리케이션 패키지 파일".jar
- 스파크 클러스터에 배포 by spark-submit
- 스파크 컨텍스트 생성
- 각 노드(워커노드)에서 프로세스 생성. 각 워커 노드에 생성된 프로세스를 Executor 라고 한다.
- 작성된 프로그램에 의해 RDD 트랜스포메이션 및 연산이 실행됨. 이때 연산이 호출될때만 실제 작업이 수행되는데, 이것을 Job 이라 한다.
- Job은 실제로 여러 스테이지 단계를 거친다. 스테이지 나누는 기준은 셔플 및 재비치 여부에 따라 결정된다.
- 셔플이 발생하면 네트워크 송수신이 발생하므로 , 지역성이 최대화 되어야 한다.
- 스테이지는 다시 여러개의 Task로 나눠진 후, 분산처리를 위해 여러 Executor에 분배되어 실행된다.
- 이때 Executor는 두가지 역할을 수행하는데, 태스크 처리와 처리된 데이터를 메모리에 캐쉬한다.
'IT/Spark' Related Articles