RDD(탄력적 분산 데이터셋)
Spark가 데이터를 여러 서버의 메모리에 나눠 올려두고 다루는 가장 기본적인 데이터 구조로, 어떤 연산을 거쳐 만들어졌는지 기록을 남겨두어 일부 데이터가 유실되어도 그 기록을 바탕으로 스스로 복구할 수 있는 특성을 가집니다.
한눈에 보는 정의
RDD(Resilient Distributed Dataset, 탄력적 분산 데이터셋)는 Spark(아파치 스파크) (Spark)가 데이터를 여러 서버의 메모리에 나눠 올려두고 다루는 기본 데이터 구조로, 일부가 유실돼도 스스로 복구할 수 있는 특성을 가집니다.
자세히 알아보기
- 예문: "특정 노드가 갑자기 죽었지만, RDD의 복구 특성 덕분에 그 노드가 처리하던 데이터가 자동으로 다시 계산되어 작업이 중단되지 않았다."
- 이름의 '탄력적(Resilient)'이라는 표현처럼, RDD는 자기 자신이 어떤 원본 데이터에서 어떤 연산을 거쳐 만들어졌는지 이력을 함께 기억하고 있어, 일부가 유실돼도 그 이력을 따라가며 다시 계산해 복구할 수 있습니다.
- 한 번 만들어진 RDD는 값을 직접 수정할 수 없는 불변(immutable) 구조라, 여러 서버가 동시에 같은 데이터를 다뤄도 예기치 않은 값 충돌 문제가 생기지 않습니다.
- 최근에는 더 다루기 편리한 DataFrame(데이터프레임) (DataFrame)이나 Dataset(데이터셋, 타입 기반 분산 데이터 객체) (Dataset)을 더 자주 쓰지만, 이들 역시 내부적으로는 RDD를 기반으로 동작합니다.