RDD(Resilient Distributed Dataset)는 불변성을 가지며, 장애 복구 기능이 내장된 요소들의 집합으로, 클러스터 내 여러 노드에 분산되어 병렬 처리될 수 있습니다. RDD는 오픈소스 데이터 처리 엔진인 Apache Spark의 기본적인 데이터 구조입니다.
Spark는 대규모 데이터 처리 작업을 더 작은 병렬 작업으로 "덩어리화"하는 프로그래밍 모델인 MapReduce의 단점을 해결하기 위해 개발되었습니다.
MapReduce는 느리고 비효율적일 수 있습니다. 이를 위해서는 복제(다양한 위치에 여러 개의 데이터 사본을 유지 관리), 직렬화(여러 프로그램에서 사용하는 리소스에 대한 액세스를 조정) 및 집중적인 아웃풋(디스크 스토리지의 아웃풋)이 필요합니다.
특히 Spark는 불필요한 처리를 줄여줍니다. MapReduce는 중간 데이터를 디스크에 쓰는 반면 Spark는 RDD를 사용하여 메모리의 데이터를 캐시하고 계산합니다. 결과적으로 Spark의 분석 엔진은 MapReduce보다 10~100배 더 빠르게 데이터를 처리할 수 있습니다.1
Apache Spark는 머신 러닝(ML) 및 인공 지능(AI) 애플리케이션에 자주 사용되는 빠른 오픈 소스 대규모 데이터 처리 엔진입니다. Spark는 Hadoop, 더 구체적으로는 Hadoop의 기본 데이터 처리 프레임워크인 MapReduce를 개선한 것으로 볼 수 있습니다.
Spark는 여러 노드에서 병렬 컴퓨팅과 내결함성을 기본적으로 지원하여 대규모 컴퓨터 클러스터에 데이터 처리 워크플로를 분산하여 확장할 수 있습니다.
여기에는 Java™, Python(PySpark), Scala 및 R을 포함한 일반적인 데이터 과학 및 데이터 엔지니어링 프로그래밍 언어를 위한 애플리케이션 프로그래밍 인터페이스(API)가 있습니다.
Spark는 RDD를 사용하여 데이터를 관리하고 처리합니다. 각 RDD는 논리적 파티션으로 나뉘며, 이는 여러 클러스터 노드에서 동시에 계산될 수 있습니다. 사용자는 변환과 작업의 두 가지 유형의 RDD 작업을 수행할 수 있습니다.
Spark는 메모리의 RDD에 대한 변환 및 작업을 수행하며, 이는 Spark 속도의 핵심입니다. Spark는 또한 메모리에 데이터를 저장하거나 지속성을 높이기 위해 디스크에 데이터를 쓸 수 있습니다.
탄력적인 분산 데이터 세트(RDD)는 탄력적이고 분산되어 있습니다. 이는 다음을 의미합니다.
RDD는 서로 다른 노드에 분산되고 동시에 처리될 수 있는 더 작은 데이터 그룹으로 분할되기 때문에 "분산형"이라고 불립니다.
이 2가지 핵심 특성 외에도 RDD는 스파크에서 그 중요성과 운영에 기여하는 다른 기능도 있습니다.
많은 데이터 처리 프레임워크, 특히 MapReduce는 외부 스토리지 시스템에서 여러 읽기 또는 쓰기 작업을 수행해야 하므로 성능이 저하됩니다. RDD는 Apache Spark가 이 문제를 해결하는 데 도움이 됩니다.
RDD는 반복 작업의 중간 결과를 RAM(Random Access Memory)에 저장하는 메모리 내 계산을 사용하여 디스크 I/O를 줄입니다. 인메모리 컴퓨팅 및 스토리지를 사용하면 더 빠른 액세스와 거의 실시간 처리를 지원할 수 있습니다.
RDD는 또한 머신 러닝 알고리즘의 학습 시간과 대규모 빅데이터 분석 처리 시간을 단축하는 데 도움이 될 수 있습니다. 인메모리 계산을 사용하면 데이터 스토리지에 액세스하는 데 필요한 시간을 줄일 수 있습니다.
스파크에서 모든 트랜스포메이션, 즉 새로운 RDD를 생성하기 위해 적용되는 연산은 "레이지(lazy)" 방식으로 처리됩니다. 이는 데이터가 즉시 로드되거나 계산되지 않음을 의미합니다.
대신 변환은 방향성 비순환 그래프(DAG)에서 추적되며 드라이버 프로그램에 대한 특정 콜투액션이 있는 경우에만 실행됩니다.
드라이버 프로그램은 집계, 수집, 계산 또는 파일 시스템에 대한 아웃풋 저장과 같은 Spark 작업에서 클러스터 컴퓨팅의 주요 기능 및 작업을 지시합니다.
수십 가지의 가능한 작업 및 변환에는 aggregateByKey, countByKey, flatMap, groupByKey, reduceByKey 및 sortbyKey가 포함됩니다.
지연 평가는 불필요한 처리와 불필요한 계산의 클리핑을 제거하여 데이터 처리 파이프라인을 최적화하는 데 도움이 됩니다.
Spark는 단일 노드에 맞지 않는 방대한 양의 데이터를 처리할 수 있도록 여러 노드에 걸쳐 RDD를 자동으로 분할합니다. 손상을 방지하기 위해 각 단일 파티션은 여러 노드에 분산되지 않고 하나의 노드에 저장됩니다.
RDD를 통해 조직은 작업이 필요한 데이터에 가깝게 실행될 수 있도록 컴퓨팅 파티션의 배치를 정의할 수 있습니다. 이 배치를 통해 처리 속도를 높일 수 있습니다.
또한 클러스터의 실행기(드라이버가 할당하는 작업을 수행하는 컴퓨터) 수를 늘려 시스템의 병렬성을 향상시킬 수 있습니다. 아웃풋의 병렬 처리 수준은 상위 RDD의 파티션 수에 따라 달라집니다.
여러 노드에서 병렬 작업이 가능하도록 클러스터 전체에서 논리적 파티션으로 RDD를 만들 수 있습니다. RDD는 Amazon Web Services(AWS) S3, Hadoop 분산 파일 시스템(HDFS), Apache HBase 및 Cassandra와 같은 다양한 안정적인 스토리지 소스에서 생성할 수 있습니다. Scala 및 Python 와 같은 프로그래밍 언어를 통해서도 만들 수 있습니다.
Spark RDD는 작업 전반에 걸쳐 메모리에 데이터 세트를 캐시할 수 있습니다. 모든 노드는 계산한 파티션을 메모리에 저장하고 데이터 세트 또는 결과 데이터 세트에 대한 후속 작업에 재사용할 수 있습니다. 이러한 지속성은 처리 속도를 크게 높일 수 있습니다.
또한 Spark는 사용자에게 대화형 스토리지 옵션을 제공하여 데이터 저장 방법을 제어할 수 있도록 합니다. 데이터는 메모리, 디스크 또는 이 둘의 혼합에 저장할 수 있습니다.
RDD는 변경할 수 없으므로 생성 후에는 수정할 수 없습니다. 불변성은 여러 작업에서 시간이 지나도 데이터를 안정적으로 유지하는 데 도움이 됩니다.
또한 여러 프로세스에서 데이터를 더 쉽고 안전하게 공유할 수 있으며, 여러 스레드에서 동시에 업데이트할 때 발생할 수 있는 손상을 방지하는 데 도움이 됩니다.
RDD는 변경할 수 없지만 사용자는 기존 RDD에 변환을 적용하여 새 RDD를 만들 수 있으므로 원본 데이터를 변경하지 않고도 데이터 세트를 업데이트할 수 있습니다.
RDD는 비정형 데이터와 정형 데이터를 모두 처리할 수 있습니다. 비정형 데이터를 처리할 때는 고정된 스키마를 사용하거나 데이터프레임을 만들 필요 없이 여러 유형의 데이터베이스, 미디어 스트림 또는 텍스트 파일에서 정보를 가져올 수 있습니다.
즉, 사용자는 Spark에서 DataFrames를 만들 수 있으며, 이를 통해 특정 최적화를 활용하여 성능을 개선할 수 있습니다.
오픈 데이터 레이크하우스 접근 방식을 통해 신뢰할 수 있는 데이터를 제공하고 분석 및 AI 프로젝트를 더 빠르게 실행하는 방법을 알아보세요.
IBM, 2024년 Gartner Magic Quadrant 데이터 통합 툴 부문에서 19년 연속 리더 기업으로 선정
데이터 리더가 데이터 기반 조직을 구축하고 비즈니스 우위를 확보하는 방법을 살펴보세요.
정형 및 비정형 데이터 준비를 촉진하고 AI 성과를 가속화하는 데 AI 기반 데이터 인텔리전스 및 데이터 통합이 중요한 이유를 알아보세요.
데이터 접근을 간소화하고 데이터 거버넌스를 자동화하세요. 어디서나 모든 데이터를 사용하여 워크로드 비용 최적화, AI 및 분석 확장을 포함하여 데이터 레이크하우스 전략을 데이터 아키텍처에 통합하는 방법을 알아보세요.
IBM Research가 IBM Cloud Pak for Data의 새로운 기능에 정기적으로 통합되는 방식을 살펴보세요.
진화하는 ABI 솔루션 환경에 대한 고유한 인사이트를 제공하고 데이터 및 분석 리더를 위한 주요 결과, 가정 및 권장 사항을 강조합니다.
탁월한 고객 및 직원 경험을 제공하기 위해 데이터 사일로를 제거하고, 복잡성을 줄이며, 데이터 품질을 개선하는 데이터 전략을 구축하세요.
watsonx.data를 사용하면 오픈, 하이브리드 및 관리형 데이터 저장소를 통해 데이터의 위치와 관계없이 모든 데이터로 분석과 AI를 확장할 수 있습니다.
IBM Consulting을 통해 엔터프라이즈 데이터의 가치를 실현하여 비즈니스 이점을 제공하는 인사이트 중심의 조직을 구축하세요.
1 Apache Spark™, Apache Software Foundation, 2024년 12월 20일.