본문 바로가기
728x90

BigData116

[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.
[BigData] Parquet vs ORC vs Avro 빅데이터 파일 포멧 비교 정리 빅데이터에 사용이 많이 되는 파일 형식에 대해서 비교하고 정리해보겠습니다.특징ParquetAvroORC저장 방식컬럼 기반행 기반컬럼 기반압축률높음중간매우 높음주 용도배치, 분석 처리스트리밍, 실시간 처리배치, 데이터 웨어하우스 처리성능읽기 성능 우수(columnar)빠른 쓰기, schema evolution 지원읽기 성능 우수배치 처리적합부적합(행 기반 저장으로 인한 성능 저하)매우 적합스트리밍 처리덜 최적화최적화(schema evolution)덜 최적화사용되는 기술Spark, Hive, Impala, PrestoKafka, Spark, Flink, HadoopHive, Spark, Presto, Impala1. ParquetParquet 구조+----------------------+| Fil.. 2025. 1. 8.
[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.
[Airflow] TO-BE Batch job 프로세스 개선 - 3) DAG 이전 및 이슈 정리 포스트는 총 3개로 나뉘어 진행되며, 이번 포스트가 3번째 포스트입니다.1. [Airflow] TO-BE Batch job 프로세스 개선 - 1) Airflow on k8s 이전 (AWS EKS)https://spidyweb.tistory.com/543 2. [Airflow] TO-BE Batch job 프로세스 개선 - 2) 거버넌스, 표준, 형상 관리, 자동화, 프로세스 단축https://spidyweb.tistory.com/544 3. [Airflow] TO-BE Batch job 프로세스 개선 - 3) DAG 이전 및 이슈 정리https://spidyweb.tistory.com/5451. DAG 이전 경험 공유기존에 존재하던 다양한 명칭 → 표준화된 규칙에의해 .py , DAG 명 일괄 변경 및 .. 2024. 6. 22.
[Airflow] TO-BE Batch job 프로세스 개선 - 2) 거버넌스, 표준, 형상 관리, 자동화, 프로세스 단축 포스트는 총 3개로 나뉘어 진행되며, 이번 포스트가 2번째 포스트입니다.1. [Airflow] TO-BE Batch job 프로세스 개선 - 1) Airflow on k8s 이전 (AWS EKS)https://spidyweb.tistory.com/543 2. [Airflow] TO-BE Batch job 프로세스 개선 - 2) 거버넌스, 표준, 형상 관리, 자동화, 프로세스 단축https://spidyweb.tistory.com/544 3. [Airflow] TO-BE Batch job 프로세스 개선 - 3) DAG 이전 및 이슈 정리https://spidyweb.tistory.com/5451. 표준과 자동화기존의 Airflow DAGs는 다양한 사용자로부터 다양한 코드 포멧과 스타일에 따라 python.. 2024. 6. 22.
[Airflow] TO-BE Batch job 프로세스 개선 - 1) Airflow on k8s 이전(AWS EKS) 이번 포스트에는 NCP 플랫폼에서 새로 구축해본 airflow on k8s 경험을 토대로 저희 주된 배치를 관리하는 AWS 플랫폼 위에서의 Airflow 이전 경험을 공유드리려고 합니다.기존에는 airflow 환경은 EC2한대에 올라가 있었고, IAC로 airflow가 관리되고 있지도 않았고, image에 대해서도 형상관리가 되지 않았습니다. 또한 서버에 대한 확장성이 모잘라서, SIGTERM 에러도 많이 발생 했었습니다.    포스트는 총 3개로 나뉘어 진행되며, 이번 포스트가 1번째 포스트입니다.1. [Airflow] TO-BE Batch job 프로세스 개선 - 1) Airflow on k8s 이전 (AWS EKS)https://spidyweb.tistory.com/543 2. [Airflow] T.. 2024. 6. 22.
[Airflow] Sensor 정리, ExternalTaskSensor 와 S3KeySensor 이번 포스트에는 Airflow에서 특정 작업 혹은 객체를 감지하는 Sensor, 그 중에서도 많이 쓰일 것으로 추정되는 S3KeySensor와 ExternalTaskSensor를 정리해보겠습니다. 1. Sensor란Airflow에서는 특정 상황이 발생할때까지 대기하는 Sensor Operator를 제공시간이 기준이 될 수도 있고 파일이나 외부 이벤트가 기준이 될수도 있음Sensor를 사용하면 이러한 상황이 발생할 때까지 기다렸다가 downstream task들이 진행되게 할 수 있음2. ExternalTaskSensor다른 DAG의 특정 작업이 끝나기를 체크했다가 다음 의존관계가 있는 task를 실행할 때 사용import pendulumfrom airflow import DAGfrom airflow.op.. 2024. 6. 22.
728x90