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

1

Broadcast Variables은, 모든 Worker 노드에 큰 규모의 입력 데이터셋을 효율적으로 제공하고자 할때 사용하며 읽기전용 변수이다.

각 Worker 노드에 입력 데이터셋 캐쉬를 유지하고, 각 Task 에 복제본을 제공한다.

그리고 입력 데이터셋은, Worker 노드에 직렬화 형태로 캐싱되고 각 Task 는 입력 데이터셋이 필요할 때, 역직렬화를 통해 제공 받는다.

만약에 개발한 애플리케이션이 큰사이즈의 데이터를 모든 노드에서 사용할 필요가 있다면, 또는 머신러닝 알고리즘에서 큰 사이즈의 벡터가 Woker 노드에서 필요하다면, Broadcast Variable 를 사용하는게 좋다.