우노
[Spark] Shuffle 이란? 본문
Spark Shuffle 이란?
- Shuffle 은 Spark 에서 데이터를 재분배하는 방법이며,
- 효율적인 Spark Application 을 개발하기 위해 상당히 중요한 개념입니다.
Background
- Shuffle 을 이해하기 위해서는, reduceByKey 의 작동 방식을 알아야합니다.
- reduceByKey 는 동일한 Key 를 가지고 있는, 모든 record 값을 취합하는 작업입니다.
- (A, 1), (A, 2), (A, 3) → (A, 6)
- 하지만, Spark 의 분산처리는 파티션 단위로 진행되기 때문에,
- 동일한 Key 의 모든 record 값을 취합하기 위해선,
- 동일한 Key 를 가진 튜플 데이터가 전부 같은 파티션에 있어야합니다.
- 따라서, 모든 튜플 데이터가 여러 클러스터에 분산 저장되어 있을 때,
- 동일한 Key 를 가진 튜플 데이터를 동일한 파티션에 두기 위해, 데이터의 위치를 재조정하는 방법이 Shuffle 입니다.
참고
'Data > Spark' 카테고리의 다른 글
[Spark] Spark와 Hadoop MapReduce의 차이 (0) | 2020.07.12 |
---|---|
[Spark] MPI(Message Passing Interface)란? (0) | 2020.07.12 |
[Spark] SparkConf, spark-shell, spark-submit, spark-defaults.conf 적용 예 (0) | 2020.07.10 |
[Spark] spark.driver.maxResultSize 오류 (0) | 2020.07.10 |
[Spark] Local file에 write하기 (0) | 2020.07.09 |
Comments