본문 바로가기
728x90

spark45

[LakeHouse] Apache Iceberg 파헤치기 1) 기본 개념 정리, 내부 구조, 성능 이번 포스트에는 LakeHouse Table Format 중 하나인 Apache Iceberg에 대해서 정리해보겠습니다.1. LakeHouse Table Format이란?데이터 레이크(Data Lake)의 유연함과 데이터 웨어하우스(Data Warehouse)의 구조화된 관리 기능을 결합하기 위해 고안된 테이블 기반의 저장 포맷 1) 기존 구조의 문제시스템장점단점Data Lake저렴한 저장, 유연한 포맷(csv/parquet)ACID 없음, 원본과 분석용 데이터의 정합성 문제 발생Data Warehouse구조적 쿼리, ACID 보장, 높은 품질비싸고, 폐쇄적, 실시간 ingest 어려움위의 시스템 2개를 하나로 통합 한 것이 Lakehouse 아키텍처Data lake로 방대한 양의 데이터를 저장하고 gl.. 2025. 6. 15.
[Spark] AWS EMR vs Glue ETL 비교 정리하기 (성능, 비용, 특징, 실행 방법,...) spark를 써봤다고 면접에서 어필을 할 때 나오는 단골 질문 중 하나인 어떤 제품을 통해 Spark를 실행 시켰으며 어떤 장점 때문에(왜) 해당 제품을 선택했나요? 다른 제품을 고려하지 않은 이유는? 에 대해 정리해보겠습니다.(사실 제 경우에는 Glue ETL을 많이 사용하지 않았기에 정확하게 비교해 볼만한 기회가 없었습니다.)1. AWS EMR이란EMR은 Spark 를 포함한 Hadoop Ecosystem이 탑재된 하둡 클러스터입니다. 따라서 Hive Job 및 다양한 작업을 실행할 수 있습니다.EMR(Elastic Map Reduce)는 크게 3가지로 나뉩니다.EMR on EC2EMR ServerlessEMR on EKS이번 포스트에는 EMR on EC2와 EMR Serverless에 대해 간단하게.. 2025. 5. 4.
[Data Pipeline] 1. batch job data pipeline의 구성과 장,단점과 정리 (비용, 고려 사항, 성능) 이번 포스트에는 batch job에 사용될 수 있는 다양한 데이터파이프라인 조합과 그에 따른 장단점과 고려 사항을 정리해보겠습니다. 아래의 항목들이 포함한 특징을 같이 적어보겠습니다.상황별 배치 파이프라인 구성장단점조직의 규모 및 구성비용확장성백업, 모니터1. 각 데이터 파이프라인의 구성흔히 말하는 E(Extract), T(Transform), L(Load) 하는 소스며, 프레임워크며, 저장 장소가 정말 다양하고 비용과 성능 그리고 필요한 비지니스 요건에 따라 달라집니다. 우선 그 종류에 대해서 파악해보고 장단점을 하나씩 확인해보겠습니다.1) 다양한 소스의 구성소스특징 / 설명예시RDBMS구조화된 정형 데이터MySQL, PostgreSQL, Oracle, MSSQL로그 데이터 반정형/비정형 이벤트 데이터.. 2025. 4. 13.
[Spark] Spark streaming readStream, writeStream format, option, mode 및 config 정리 이번 포스트에는 spark streaming에서 input과 output에서 사용되는 source(format)의 종류와 option을 정리해보겠습니다. 1. format1) readStream.format() Format 설명 socketTCP 소켓 (netcat 등)에서 텍스트 데이터 수신kafkaKafka 토픽에서 데이터 수신file특정 디렉토리에 추가되는 파일을 실시간으로 읽음rate초당 일정한 개수의 행을 생성하는 데이터 소스rate-micro-batch마이크로 배치 기반으로 일정한 개수의 행을 생성deltaDelta Lake 테이블을 스트리밍 소스로 사용parquetParquet 파일을 스트리밍 소스로 사용orcORC 파일을 스트리밍 소스로 사용jsonJSON 파일을 스트리밍 소스로 사용cs.. 2025. 2. 7.
[Spark] EMR을 구성하는 instance는 큰 spec이 유리할까? 작은 spec이 유리할까? EMR을 구성할 때 작은 스펙의 많은 노드가 유리한지 큰 스펙의 적은 노드가 유리한지 비교하여 정리해보겠습니다. 1. 큰 스펙의 인스턴스를 적게 사용하는 경우장점네트워크 병목 감소인스턴스 수가 적어 노드 간 통신(예: Shuffle, Data Transfer) 비용이 줄어듦네트워크 I/O가 줄어들어 성능이 향상될 가능성이 높음작업 간 Overhead 감소인스턴스 수가 적으므로, 작업(Task) 배포와 조정에 소요되는 Overhead가 줄어듦클러스터 관리가 간단해지고 효율성이 높아짐CPU, 메모리 활용 효율성 증가단일 인스턴스에 많은 CPU와 메모리를 할당하므로, Spark 작업의 병렬 처리 능력이 향상됨메모리 내 연산이 가능할 확률이 높아지고 Disk Spill이 줄어듦기본적으로 사용되는 메모리 및 코어.. 2025. 1. 14.
[Spark] 프로그래밍 언어 별 Spark 성능, 속도 차이 (UDF와 직렬화) Spark에서는 지원할 수 있는 언어가 5(7)가지가 있습니다.ScalaPythonJavaRSQLGO (4.x version 부터 지원)Rush(4.x version 부터 지원)관련하여 속도 차이는 어떤지 비교하고 왜 속도 차이가 나는지 정리해보겠습니다.1. Catalyst Optimizer와 Tungsten 엔진 사용Spark는 Catalyst Optimizer라는 내부 최적화 엔진을 사용하여, DataFrame, Dataset, 그리고 Spark SQL 쿼리를 모두 동일한 논리적 실행 계획(Logical Plan)으로 변환 Catalyst Optimizer는 쿼리 최적화, 필터 푸시다운, 프로젝트 제거, 조인 최적화 등을 수행최적화된 논리적 계획은물리적 실행 계획(Physical Plan)으로 변환되.. 2025. 1. 10.
[Spark] YARN vs k8s vs mesos 스파크 리소스 및 작업 스케줄링 spark에서 사용할 수 있는, 정확히는 hadoop의 YARN대신에 사용 할 수 있는 리소스와 작업 스케줄링을 담당하는 컴포넌트에 대해서 비교 해보겠습니다. 1. 아키텍처 및 설계 목적항목YARNKubernetesMesos목적Hadoop 에코시스템 내에서 자원 관리를 위한 분산 리소스 관리컨테이너화된 애플리케이션의 배포, 확장 및 관리를 위한 오케스트레이션다양한 워크로드 (컨테이너, Spark, Hadoop 등)를 통합 관리하는 범용 리소스 관리주요 구성 요소ResourceManager, NodeManager, ApplicationMasterMaster(Node), Worker(Node), kubelet, kube-proxy, podMaster, Agent(Slave), Framework (Marath.. 2025. 1. 7.
[Spark] 스파크의 분산형 공유 변수 Accumulator, Broadcast Variable정리 spark의 저수준 API에는 RDD 인터페이스 외에 두 번째 유형인 '분산형 공유 변수'가 있음AccumulatorBroadcast Variable1. Accumulator스파크의 2번째 공유 변수 타입트랜스포메이션 내부의 다양한 값을 갱신하는 데 사용, 내고장성을 보장하면서 효율적인 방식으로 드라이버에 값을 전달ex) 모든 태스크의 데이터를 굥유 결과에 추가할 수 있음ex) job의 입력 레코드를 파싱하면서 얼마나 많은 오류가 발생했는지 확인하는 카운터를 구현할 수 있음(디버깅용이나 저수준 집계 생성용)ex) 파티션별로 특정 변수의 값을 추적하는 용도로 사용할 수 있으며 시간이 흐를수록 더 유용하게 사용 됨결합성과 가환성을 가진 연산을 통해서만 더할 수 있는 변수이므로 병렬 처리 과정에서 효율적으로 .. 2025. 1. 7.
[Spark] Spark Streaming 개념, DStream API, Structured Streaming Stream 처리란스트림 처리는 신규 데이터를 끊임없이 처리해 결과를 만들어내는 행위입력 데이터는 무한하며 시작과 끝을 사전에 정의하지 않음스트림 처리 시스템에 도착한 일련의 이벤트(신용카드 전표 정보, 웹사이트 클릭(행동 로그), IoT 장비 센서 데이터)1) 스트림 처리 사례통보와 알림notification과 alerting은 가장 흔한 스트림 처리 사례연속적인 이벤트에서 특정 이벤트나 이벤트의 패턴을 탐지했을 때 발생실시간 리포트기업에서 직원을 위한 실시간 대시보드를 만들 때에 사용플랫폼 전체 사용량, 시스템 부하, 실행 시간, 신규 기능의 사용량증분형 ETL웨어하우스에서 정보를 얻는 시간을 줄이기 위해 사용신규 데이터(증분 데이터)에 대해서 바로바로 반영할 수 있음데이터 중복 저장이나 유실 방지를.. 2024. 12. 30.
728x90