Spark broadcast 기본개념
2021-08-27
.
Data_Engineering_TIL(20210827)
[학습시 참고자료]
“[Spark] Broadcast 란?” 블로그글
https://wooono.tistory.com/55
[학습내용]
- Spark 클러스터의 모든노드에서 공유해서 사용할 수 있는 공유변수
Spark에는 두가지 유형의 공유변수가 있다.
1) Broadcast Variables
모든 워커 노드에 큰 값을 저장해, 재전송 없이 Spark Action 에서 사용할 수 있다.
2) Accumulators
모든 Task 데이터를 공유 결과에 추가해, 특정 정보를 집계할 수 있다.
- Broadcast Variables
Broadcast Variables은, 모든 Worker 노드에 큰 규모의 입력 데이터셋을 효율적으로 제공하고자 할때 사용하며 읽기전용 변수이다.
각 Worker 노드에 입력 데이터셋 캐쉬를 유지하고, 각 Task 에 복제본을 제공한다.
그리고 입력 데이터셋은, Worker 노드에 직렬화 형태로 캐싱되고 각 Task 는 입력 데이터셋이 필요할 때, 역직렬화를 통해 제공 받는다.
만약에 개발한 애플리케이션이 큰사이즈의 데이터를 모든 노드에서 사용할 필요가 있다면, 또는 머신러닝 알고리즘에서 큰 사이즈의 벡터가 Woker 노드에서 필요하다면, Broadcast Variable 를 사용하는게 좋다.