본문 바로가기
728x90

BigData84

[Airflow] Airflow DAGs 이상감지, 알림받기, 결과전송 (EmailOperator, Slack) 이번 포스트에는 Airflow DAGs이 success 및 failed 또는 Task중에 보내고 싶은 결과가 있는 경우 전송하는 방법에 대해 정리해보겠습니다. 방법으로는 EmailOperator와 Slack을 사용하는 방법으로 크게 2가지가 있습니다. EmailOperator 1. 준비 사항 1) GMAIL 계정 생성 EmailOperator를 사용하기 위해서는 stmp로 설정할 host가 필요합니다. 저는 gmail을 사용하기로 했고 새로운 계정을 하나 만들었습니다. 2) IMAP 켜기 GMAIL → 설정 → 모든 설정 보기 전달 및 POP/IMAP → IMAP 사용 3) 보안 설정 구글 계정 관리 → 보안 → 2단계 인증 앱 비밀번호 클릭 메일, 기기 선택 16자리 비밀번호가 생성 되는데, 보관했다가.. 2023. 8. 30.
[Spark] EMR Serverless + Airflow로 spark job 제출해보기 (EmrServerlessStartJobOperator, boto3 + PythonOperator) 이번 포스트는 EMR Serverless로 전환하면서 생긴 꿀팁들과 Airflow로 EMR Serverless에 Spark job을 제출하는 것을 포스팅하려고 합니다. 이번 포스트의 목차 EMR Serverless란? EMR Serverless로 전환 이유 EMR Serverless로 전환 대상 EMR Serverless 생성 방법 EMR에 Airflow로 Spark job 제출하는 방법(EmrServerlessStartJobOperator) EMR에 Airflow로 Spark job 제출하는 방법(boto3 + PythonOperator) 전환 시 얻은 효과(성능, 비용) EMR Serverless란? EMR(Elastic Map Reduce) 서비스를 인프라 관리할 필요 없이 Serverless로서 .. 2023. 8. 27.
[Spark Tuning] Spark 3.x 버전 특징 정리 이번 포스트에는 spark 2.x 와 spark3.x의 특징을 비교해보고 spark 3.x 버전의 주요 특징과 성능에 대해서 포스트해보겠습니다. spark 3.x버전의 특징을 통해 눈에 띄게 성능의 향상을 본 workload가 아직은 없기 때문에, 관련한 포스트는 추후에 올리도록 하겠습니다. Spark 2.x vs Spark 3.x spark 2.x spark 3.x Language support python 2.x,3.x, scala 2.12까지, java8+ python 3.6+, scala 2.12+, Java 8 prior to version 8u92 support is deprecated Catalyst Optimizer Rule + Cost based optimizer • Table stati.. 2023. 8. 10.
[Airflow] Airflow로 ETL 파이프라인 만들기(python, EMR, glue crawler, Email, Slack, DB반영) 이번 포스트에는 회사에서 수동으로 처리하고 있던 일회성 ETL작업을 Airflow DAG으로 묶어서 파이프라인을 만든 경험에대해서 소개해드리겠습니다. 기존 업무 처리방식과 Airflow DAG의 필요성 ETL 방식 우리가 처리하는 ETL방식은 ETL요청이 들어왔을 때, 최초 적재 → 증분값 daily하게 배치로 적재 하는 개념이였습니다. ETL 최초 적재 세부 과정 위의 과정을 거쳐 1개의 테이블에 대한 ETL과정이 끝납니다. (정확히는 우리는 data lake형태로 사용하고 있어, ELT입니다.) 언급 된대로 위의 과정을 일일히 서버를 키고, 서버에 명령어 날리고 zeppelin에 들어가서 코드 날리고 그러한 과정들이 모두 수동으로 이뤄지다보니, 되게 간단한 작업임에도 불구하고, 일처리하는데 있어서는 .. 2023. 8. 7.
[Airflow] EMR create + Step 제출(Spark job) + StepSensor Dag 구성하기(feat. ETL) 아직까지도 많은 기업에서는 EMR을 원하는 시간대에 띄워서 batch job을 airflow schedule에 맞게 실행시키고 종료시키는 ETL 형태를 많이 사용하고 있습니다. 그래서 이번 포스트에는 Airflow로 EMR을 띄우고, spark job을 제출하고 job이 끝나는 대로 EMR을 종료시키는 DAG를 구성해보겠습니다. Airflow는 미리 구성되어 있다고 가정하고 시작하겠습니다. Airflow 구성부터 해보고 싶으시면 아래의 링크를 참조해주세요. https://spidyweb.tistory.com/449 [Airflow] Airflow cluster, celery executor + flower + RabbitMQ 환경 구성하기 이번 포스트에는 AWS EC2 3대로 구성된 airflow clu.. 2023. 7. 30.
[Spark] spark dataframe -> RDB로 적재하기 오랜만에 글을 씁니다. 이직하고 나서 적응하느라 글쓸 기회가 없었는데, 그동안 어떤 공부를 해야될지 그리고 어떤 글부터 쓸지 순서를 정하느라 뜸했었습니다. 우선은 일을하면서 생긴 이슈와 겪은 업무들 위주로 정리하려고 합니다. 1. 배경 API 서빙을 위해 parquet파일을 RDB로 적재시켜야 했고, 실시간 API서빙이 가능했어야 하는 상황이였습니다. 따라서 spark을 이용하여 truncate없이 RDB로 적재시켜야 했습니다. 1) test db, table 생성 create table if not exists sparktordb.rdbtable( id int(10),rdbtable name varchar(30), create_dt timestamp, update_dt timestamp, PRIMARY.. 2023. 7. 10.
[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.
728x90