반응형
www.youtube.com/watch?v=zC9cnh8rJd0
Spark processing은 Job > Stage > Task로 세분화 될 수 있다.
(ex)
Job : myrdd.map().filter().join().collect()
Stage : map().filter() / join()
Task : 각 stage의 작업이 실행되는 하나의 partition에서의 작업

Job
- Action의 수행으로 원하는 ouput을 얻기 위한 전체 작업 단위
Stage
- 모든 partition이 sequencial하게 작업 될 수 있는 단위
- Transformations의 집합으로 볼 수 있는데, Transformation의 순차적인 연산이 독립적으로 실행되는 단위가 stage다.
- Narrow Transformation : 각 partition이 독립적으로 실행될 수 있다. (ex. map, filter, etc.)
- Wide Transformation : 각 partition이 서로 데이터를 공유해야 한다. (ex. join, groupByKey, etc.)
- Wide Transformation을 위해서 모든 partition의 데이터가 shuffle되는데, 이 순간을 기준으로 서로 다른 stage로 구분한다.
Task
- 각 stage에 있어서, 하나의 parition에서 수행되는 작업 단위(각 executor의 작업!)
(ex. 각 partition에서의 Narrow Transformation 작업)
- 즉 하나의 Stage는 하나 이상의 Task를 가지고 있고, 또 다른 다음 stage가 실행되기 위해서는 현재의 stage에서 병렬로 처리되는 모든 task들이 완료되어야 한다. 이후에 shuffle → next stage 작업이 진행된다.
- 따라서 Stage를 나누는 Wide Transformation의 실행은 여러가지 이유로 시간을 지연시킨다.
- 효율적인 방법으로 Job을 설정하여 최소화시키는 것이 필요하다!
- 따라서 Stage를 나누는 Wide Transformation의 실행은 여러가지 이유로 시간을 지연시킨다.
반응형
'IT study > Big Data' 카테고리의 다른 글
| 아파트 가격 추이 분석 서비스(1) (0) | 2021.05.22 |
|---|---|
| [YouTube]Apache Spark Tutorial Full Course - RDD Creation (4) (0) | 2021.05.17 |
| [YouTube]Apache Spark Tutorial Full Course - RDD (2) (0) | 2021.05.10 |
| [YouTube]Apache Spark Tutorial Full Course - Intro, spark, cluster (1) (0) | 2021.05.01 |
| Hadoop MapReduce( + Yarn) (0) | 2021.04.27 |