RDD Transformation & Action
Transformation
Actions
Narrow Transformations
Wide Transformation
Cluster Topology
Spark Topology
Spark
Spark는 항상 데이터가 여러 곳에 분산되어 있음
Spark는 같은 연산이어도 여러 노드에 걸쳐서 실행됨
Driver Program(노드)은 개발자나 유저가 프로그램과 상호작용을 할 수 있는 프로그램이고 실제 작업은 Worker Node에서 실행
Driver Program과 Worker Node는 Cluster Manager를 통해 communication 진행
Cluster Manager는 수행되는 작업의 스케쥴링과 자원 관리를 수행 (yaml 등)
실행 과정
1. Driver Program이 SparkContext를 생성
2. Spark Application 만들어짐
3. SparkContext가 Cluster Manager에 연결
4.Cluster Manager는 자원 할당
5. Cluster Manager가 Cluster에 있는 노드들의 Executor를 수집하고 Executor는 연산을 수행하고 데이터 저장
6. SparkContext가 Executor에게 실행할 task 전송
7. 전송된 Task의 결과값을 DriverProgram에 보냄