본문 바로가기
728x90

BigData87

[Spark] Scala Spark 앱 만들기 (feat. Intellij) 이직을 하게 되면서 python이 아닌, scala 언어로 Spark을 돌리고 있었습니다. 언젠가는 scala를 배워봐야지 생각만 했었는데, 생각보다 기회가 앞당겨진 것 같아, 요즘 열심히 scala 언어를 공부하고 있는 중입니다. 그래서 이번 포스트에는 scala언어로 spark앱을 만들고, jar파일로 만들어 보겠습니다. 1. 프로젝트 생성 스칼라 새 프로젝트 생성 build 시스템은 sbt로 지정 settings에서 scala plugins생성 . ├── build.sbt # MergeStrategy.discard case x if x.endsWith("modlue-info.class") => MergeStrategy.discard case x => val oldStrategy = (assembly.. 2023. 6. 17.
[Airflow] Amazon linux2에 docker-compose로 airflow 설치하기 AWS EC2에서 Amazon linux2 OS로 서버가 실행되고 있는 상황에서 부터 시작하겠습니다. 1. docker 설치 $ sudo yum update -y $ sudo yum install docker -y docker 시작 $ sudo systemctl start docker $ sudo service docker start 2. docker-compose 설치 및 권한 부여 1) docker-compose 설치 $ sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose 2) docker-co.. 2023. 3. 22.
[Data Engineering] CCA Spark and Hadoop Developer Exam(CCA175) 정보와 준비 자료 1. 시험 소개 1) 자격증 분류 cloudera 주관 CDH(Cloudera Distribution Including Apache Hadoop) , HDP(Hortonworks Data Platform) 자격증 중, CCA(Cloudera Certified Association)에 해당하는 자격증 2) 자격증 소개 Apache Spark와 Cloudera Enterprise tool을 이용한 데이터 수집, 가공 ,처리를 다루는 자격증 문항 수 Cloudera Enterprise cluster에서 수행하는 8 ~ 12개의 수행능력 기반의(hands-on) 과제 시간 제한 120분 합격 점수 70% 이상 문제의 언어형식 영어 시험 비용 US$295 Spark 코딩 시 사용 가능 프로그래밍 언어 (결과만 중.. 2023. 3. 7.
[Hive] 분산 처리에서의 Skew 와 Distinct count의 성능 과의 관계 이번 포스트에는 Skew와 Skew의 개념에 대해서는 아래의 링크를 참조해주세요. 2021.10.05 - [BigData/Hive] - [Hive] Hive의 성능(테이블) (3) bucketing(버켓팅),skew(스큐), serde(서데), join type(맵 조인, 셔플 조인, 정렬-병합 조인)정리 [Hive] Hive의 성능(테이블) (3) bucketing(버켓팅),skew(스큐), serde(서데), join type(맵 조인, 셔플 조인, 정 이번 포스트에는 이전 포스트에서 전부 다루지는 못했던, Hive의 성능에 관한 것들을 위주로 다루어 보겠습니다. *Hive의 개념을 모르신다면 아래를 참조해주세요 2021.07.12 - [BigData] - [Hive] Hive란?(1) spidywe.. 2023. 2. 12.
[Data Enginnering] 파일 형식 .parquet vs .csv vs .avro vs .orc 내부 구조와 읽는 방식에 따른 성능차이 1. csv 주요 특징 행 기반(Row based) plain text 기반 파일 형식(바이너리가 아님) human-readable(사람이 알아 볼 수 있는 데이터) flat하고 단순한 스키마 거의 모든 애플리케이션에서 처리 가능 2. parquet 주요 특징 열 기반(Columnar) binary format 내장된 스키마 3. orc(optimized row columnar) 주요 특징 Columnar binary format 내장된 스키마 4. avro 주요 특징 row based binary format 내장된 스키마 Schema Evolution support가 매우 좋음 5. 파일 형식 비교 csv parquet orc avro 저장 방식 row based column based column .. 2023. 2. 6.
[Spark Tuning] CSV vs Parquet(columnar format) in spark 성능비교하기 [File 크기] 컬럼 수: 21개의 컬럼 레코드 수: 총 3,647,595 rows(records) csv: 578MB parquet: 44.7MB (gz.parquet: 34.6MB) [비교 관점] spark에서의 성능이란 file을 스캔할 때 스캔한 양(읽어들인 양)과 스캔시간이 중요 [CSV vs Parquet 특징 비교] (json은 덤ㅎㅎ) 1. CSV csv는 일반적인 text, 즉 row단위로 읽는 file format 1) 1개의 column select df_csv.select(F.col("Exam_No")).show(100000) Physical plan == Physical Plan == CollectLimit (3) +- * Project (2) +- Scan csv (1) (1).. 2023. 1. 25.
[Airflow] Airflow cluster, celery executor + flower + RabbitMQ 환경 구성하기 이번 포스트에는 AWS EC2 3대로 구성된 airflow cluster를 CeleryExecutor로 설치해보겠습니다. 서버 구성 스펙 OS - Amazon linux2 AMI (HVM) - Kernel 5.10, SSD Volume type instance type - t2.Large 2vCPUs, 8GiB Memory storage - 30GB gp2 node 1: postgresql, redis, airflow webserver, airflow scheduler, airflow flower, airflow worker(queue1) node 2: airflow worker(queue2) node 3: airflow worker(queue3) 네트워크 SG group inboud rules outb.. 2023. 1. 9.
[Airflow] docker-compose.yml로 airflow 설치하기 이번 포스트에는 docker-compose.yml를 이용하여 간단하게 airflow를 설치해보겠습니다. airflow 개념과 용어에 대해 공부하고 싶으신 분은 아래의 링크를 참조해주세요. https://spidyweb.tistory.com/295 [BigData] Apache Airflow 설치 및 실습 하기 series (1) Airflow란? DAG란? 안녕하세요 이번 포스트에는 Airflow의 개념에 대해서 알아보고 어떤 역할을 하는지, 그리고 핵심인 DAG파일에 대해서 알아보겠습니다. 1. Apahce Airflow란? 에어비앤비에서 python기반으로 개발한 워크 spidyweb.tistory.com 1. docker 설치 https://spidyweb.tistory.com/277 [Docker.. 2023. 1. 7.
[Spark Tuning] PartitionFilters vs PushedFilter 비교, predicate pushdown vs projection pushdown 이번 포스트에서는 spark에서 partitionfilter의 개념과 언제 적용되는지, 그리고 확인하는 방법을 확인하고 PushedFilter와의 차이점,마지막으로 PushedFilter의 종류 predicate과 projection의 차이를 알아보겠습니다. 1. PartitionFilters vs PushedFilters PartitionFilters란 특정 파티션에서만 데이터를 가져오고 관련 없는 파티션은 모두 생략합니다. 데이터 스캔 생략은 성능의 큰 향상을 가져다 줍니다. PushedFilters 보다 선행된다. PartitionFilter기술은 조건에 사용된 컬럼이 파티션되어 있고 스파크가 필터 조건을 충족하는 특정 디렉터리만 스캔할 때 사용됩니다. PushedFilters란 PushedFilt.. 2023. 1. 1.
728x90