1. RDD
1. 스파크에서 쓰는 기본 데이터 구조
2. 스파크는 내부에서 처리하는 데이터 들을 모두 RDD 타입으로 한다.
3. RDD 의 특징
1. Immutable 변형 불가
1. 변형 불가이기 때문에 생성과정을 되짚으면 데이터가 꺠져도 복구할 수 있다.
2. 여러 노드에 분산됨
3. 다수의 파티션으로 관리됨
1. 효율적으로 클러스터 노드에 분산됨
4. RDD 생성
1. 외부 (s3, hdfs) 에서 데이터를 로딩할 때
2. 코드에서 생성되는 데이터를 저장할 때
5. RDD 연산 의 두가지 타입
1. Transformation
1. RDD 에서 새로운 RDD 를 생성한다.
1. filter
2. map
2. Action
1. RDD에서 다른 타입의 데이터를 뽑아냄
1. count()
2. collect()
6. RDD 의 분산 처리
1. RDD 는 파티션 으로 분산되어 클러스터 메모리에 저장된다.
1. 파티셔너
1. Range
2. Hash
3. https://m.blog.naver.com/syung1104/221103154997
2. dependancy
1. narrow dependancy
1. 부모 RDD 파티션과 자식 RDD 파티션이 1:1 매칭되고 셔플링이 거의 발생하지 않으므로 빠르다
2. 변환 후의 파티션이 하나의 파티션으로 매핑
3. 해당 작업이 하나이 노드에서 처리
4. 네트웍을 사용안함
5. 파티션에 문제 생겨도 복원이 가능 함
2. wide dependancy
1. 부모 파티션이 자식 파티션과 N:1 로 대응, 여러 파티션들에서 데이터를 참조해야 하므로 느림
2. 변환 후 파티션이 여러 파티션으로 매핑된다.
3. 파티션에 문제가 생기면 복원비용이 크다
4. 셔플이 많이 일어난다.
5. 네트웍을 사용해야 한다.
7. Lineage
1. RDD 연산 순서를 기록하여 DAG(비순환 그래프)로 표현한것
2. fault-tolerance
1. lineage 만 있으면 복구가능
2. 일부 계산 비용이 큰 RDD 는 체크포인트를 만들어 두어 디스크에 저장한다.
3. Lazy Execution
1. Transfomation 연산에서는 단순히 lineage 만 생성하고
2. action 연산 때 lineage 를 실행한다.
'일 > spark' 카테고리의 다른 글
Spark Streaming 성능 Tuning (0) | 2022.05.24 |
---|---|
Spark Streaming Graceful Shut Down (0) | 2022.05.01 |
Spark streaming :: Kafka Dstream (0) | 2022.02.22 |
Spark #1 :: Spark 개념, 구조 (0) | 2022.02.05 |