본문 바로가기

반응형

IT/Spark

(13)
Apache Spark 2.4 → 3.0 마이그레이션: RDD 및 Dataset 기반 병렬 처리 개선점 Apache Spark 2.4에서 RDD와 Dataset을 사용하여 병렬 처리하는 프로그램을 Spark 3.0으로 업그레이드할 때 고려해야 할 주요 변경 사항과 성능 개선점을 정리해 보겠습니다. 🚀 Spark 3.0 업그레이드 시 주요 변경점 Spark 3.0은 기존 2.4에 비해 쿼리 최적화(AQE, DPP), API 개선, UDF 성능 향상, 메모리 관리 개선 등이 포함되었습니다.RDD와 Dataset을 사용하는 코드에서 영향을 받을 수 있는 변경 사항을 정리하면 다음과 같습니다. 1️⃣ Adaptive Query Execution (AQE) → 병렬 처리 최적화 💡 Spark 3.0에서 가장 큰 변화는 AQE(Adaptive Query Execution) 도..
Apache Spark - Batch와 Streaming Processing 정의 및 비교 Batch Processing (배치 처리) • 대량의 데이터를 일정한 시간 간격으로 수집, 변환, 분석하는 방식. • 데이터가 한꺼번에 처리되므로 빠른 속도보다는 안정성과 효율성이 중요. • Spark의 RDD, DataFrame, Dataset API를 사용하여 처리 가능Streaming Processing (스트리밍 처리) • 지속적으로 생성되는 데이터 스트림을 실시간으로 처리하는 방식. • Spark Streaming 또는 Structured Streaming을 활용하여 초 단위 또는 밀리초 단위로 데이터를 분석. • 이벤트 기반으로 즉각적인 대응이 가능하며, 실시간 데이터 분석이 필요한 시스템에서 사용됨.Batch Processing vs Streaming Processing 비교항목..
Apache Spark Executor 정리 Spark Executor는 Apache Spark에서 작업(Task)을 실제로 실행하는 프로세스로, 클러스터의 각 노드에서 실행됩니다. Spark 애플리케이션이 실행될 때, Executor는 드라이버(Driver)로부터 명령을 받고 RDD(Resilient Distributed Dataset) 변환 및 액션을 수행합니다.Executor의 역할1. Task 실행 • Spark Driver가 분배한 Task(작업 단위)를 실행 • Task는 RDD 연산, 데이터 로드 및 변환을 수행2. 메모리 관리 • Executor는 캐시된 RDD 및 데이터 처리를 위한 메모리를 관리 • Spark의 JVM Heap Memory를 활용하여 연산 수행3. 데이터 저장 및 교환 • 데이터가 파티션 단위로 Execu..
PySpark을 Oozie에 등록하여 워크플로우를 실행하는 방법 Oozie에서 PySpark 실행 개요Oozie는 기본적으로 Java 기반의 Hadoop 작업을 실행하도록 설계되어 있지만, Spark Action을 사용하면 PySpark 스크립트도 실행할 수 있습니다.Oozie에서 PySpark을 실행하려면 다음 요소가 필요합니다. - PySpark 스크립트 (.py) - Oozie 워크플로우 XML (workflow.xml) - Oozie job.properties 파일 (job.properties) - HDFS에 스크립트 및 관련 파일 업로드 - Oozie 실행 명령어 PySpark 스크립트 준비실행할 PySpark 스크립트를 준비합니다. 예를 들어 wordcount.py 파일을 만들겠습니다.from pyspark.sql import SparkSession# Sp..
RDD(Resilient Distributed Dataset) RDD(Resilient Distributed Dataset)는 Apache Spark에서 핵심이 되는 데이터 구조로, 분산되고 불변(immutable)하며, 내결함성(fault-tolerant)이 있는 데이터셋입니다.Spark의 강력한 병렬 처리를 가능하게 하는 기본 요소입니다.RDD의 특징1. 불변성 (Immutable)한 번 생성된 RDD는 변경할 수 없음.데이터를 변경하려면 변환(Transformation)을 적용하여 새로운 RDD를 생성해야 함.2. 분산 처리 (Distributed)여러 노드에 걸쳐 데이터를 분산 저장하고 처리함.대량의 데이터를 효율적으로 처리 가능.3. 내결함성 (Fault-Tolerant)장애 발생 시, 손실된 데이터를 DAG(Directed Acyclic Graph)로 복..
RDD(Resilient Distributed Dataset) RDD(Resilient Distributed Dataset)란?RDD(Resilient Distributed Dataset)는 Apache Spark의 기본 데이터 구조로, 분산 환경에서 대규모 데이터를 처리할 수 있도록 설계된 불변(Immutable)하고 분산된 컬렉션입니다.RDD의 주요 특징1. 불변성(Immutability)RDD는 생성 후 변경할 수 없습니다.데이터를 변경하려면 변환(Transformation)을 통해 새로운 RDD를 생성해야 합니다.불변성을 통해 데이터 무결성을 유지하고 병렬 처리 효율성을 높일 수 있습니다.2. 분산(Distributed)RDD는 여러 노드에 걸쳐 분산 저장됩니다.데이터를 여러 파티션(Partition)으로 나누어 저장하고 처리하므로, 대용량 데이터 처리에 적..
PySpark 관련 유투브 1. PySpark 파트1 기본환경 가져와서 바로 시작하기 https://www.youtube.com/watch?v=KENGITVDr8U 2. Spark RDD 기본 개념 및 PySpark 파이썬 세팅https://www.youtube.com/watch?v=T03U-zgTvd4
Spark Submit 정의spark-submit은 Apache Spark 작업을 클러스터에서 실행하는 명령어입니다.PySpark, Scala, Java, R 애플리케이션을 YARN, Kubernetes, Mesos 또는 Spark Standalone 모드에서 실행할 수 있습니다.특징✔ 클러스터 모드 지원local, yarn, mesos, kubernetes, standalone 등 다양한 실행 모드 제공✔ 리소스 조정 가능--num-executors, --executor-memory, --executor-cores 옵션으로 클러스터 리소스를 최적화 가능✔ 다양한 배포 모드client(로컬에서 실행) vs cluster(클러스터에서 실행) 지원✔ 다양한 언어 지원PySpark, Java, Scala, R 애플리케이션 실행 가능..

반응형