(Spark) 스파크 처리 모델(RDD)

1. RDD 의 구조와 특징


RDD는 대량의 데이터를 요소로 가지는 분산 컬렉션이다. 거대한 배열과 리스트 등의 자료구조를 생각하면 이해하기 쉽다. RDD는 여러 머신으로 구성된 클러스터 환경에서  분산처리를 위해 설계되었고, 내부는 파티션이라는 단위로 나뉜다.
스파크는 파티션이 분산처리 단위이다. RDD를 파티션 단위로 여러머신에서 처리하므로 한 대의 머신으로 처리할 수 있는 것보다 더 큰 데이터를 다룰 수 있다

사용자는 예를들어 HDFS 등의 분산 파일 시스템에 있는 파일 내용을 RDD로 로드하고, RDD를 가공하는 형식으로 대량의 데이터를 분산처리할 수 있다.
스파크에서는 이런 가공은 변환(transformation) 이라 할 수 있다.
그리고 RDD의 내용에 따라 액션이라는 처리를 적용하여 원하는 결과를 얻는다.

이밖에도 RDD에는 불변(immutable) 즉, 내부 요소 값이 변경 불가한 성질과, 생성이나 변환이 지연 평가되는 성질이 있따.




2. RDD 다루기

RDD에는 변환과 액션 두 종류의 처리를 적용할 수 있다.

변환(Transformation)

변환이란 RDD를 가공하고 그 결과 새로운 RDD를 얻는 처리다. 변환 처리 후의 RDD가 가지는 요소는 변환 처리 전의 RDD에 들어있던 요소를 가공하거나 필터링해 생성된다.

변환은 다시 두 종류로 구분된다.

첫 번째, 변환 처리 전의 RDD가 가지는 요소를, 같은 RDD의 다른 요소들과 관계없이 처리할 수 있는 종류
사각형은 RDD
둥근 사각형은 파티션
그 안에 있는 것은 요소이다.
  • filter
요소를 필터링한다.


  • map

각 요소에 동일한 처리를 적용한다.



  • flatmap
각 요소에 동일한 처리를 적용하고 여러 개의 요소를 생성한다.



댓글

이 블로그의 인기 게시물

(18장) WebSocekt과 STOMP를 사용하여 메시징하기

(네트워크)폴링방식 vs 롱 폴링방식

(ElasticSearch) 결과에서 순서 정렬