Spark - RDD?

2022. 3. 3. 11:14BigDATA/spark

반응형

RDD(Resilient Distributed Dataset)는 불변이며, 분산 컬렉션 객체이다.
불변성 특성때문에 한번 생성된 RDD는 읽기 전용이다.
즉, 트랜스포메이션(Transformation)은 RDD에서 새로운 RDD로 생성할 수는 있지만, 원본 RDD는 생성된 후에는
결코 수정되지 않는다.
그러므로 RDD는 경쟁조건과 기타 동기화 문제에 영향을 받지 않는다!

RDD는 데이터에 대한 참조만 포함하기 때문에(실제 데이터는 클러스터의 노드에 있는 파티션에 포함)
RDD의 분산 특성이 동작할 수 있다.

RDD는 실제로 클러스터에서 파티션으로 나워진 데이터셋이고, 파티션 데이터는 HDFS, HBase, Cassnadra, AWS S3에서 가져온 것일 수 있다.
RDD는 다음과 같은 5가지 주요 속성을 가지고 있다.
1. 파티션 목록
2. 각 파티션을 계산하는 함수
3. 다른 RDD를 의존하는 리스트
4. 선택적으로 키-값 RDD에 대한 파티셔너(ex. RDD가 해시로 파티셔닝됨)
5. 선택적으로 각 파티션을 계산하는 기본 위치 리스트(ex. HDFS 파일의 블록 위치)

RDD는 해시 파티셔너를 사용해 클러스터의 데이터를 파티셔닝한다.

Hash Partition 이란?

  - Hash Partition은 Partitioning Key 값에 해시 함수를 적용하여 Data를 분할하는 방식으로 History Data의 관리의 목적 보다는 성능 향상의 목적으로 나온 개념 입니다

  - Hash Partition 은 Range Partition 으로 만들기 힘든 사항 즉, 조건을 주기 힘든 경우, 각 파티션 이 고르게 나누어지지 않아 밸런스을 유지하기 힘든 경우라고 판단되는 경우에 유리합니다.

  - Hash Partition 의 경우 각각 다른 파티션에 데이터가 고르게 분산시키기 위해서는 반드시 파티션 의 개수를 명시하여야 하며, 파티션의 수를 2 의 거듭 제곱수 (즉, 2,4,8,16 ….)로 설정하여야 합니다.

  - NULL 값은 첫 번째 파티션에 위치하게 됩니다.

출처 : http://www.gurubee.net/lecture/1909

진짜 간만의 스터디 ㅋㅋ 하나도 기억이 안난다 -_-; RDD부터 다시 정리 ㅋㅋ

반응형