본문 바로가기
IT 개인학습/Memo

Deploy

by kiimy 2022. 5. 7.
728x90
728x90

<참조>

1. 마트화 쿼리 작성(= Jupyter에서 제공할 테이블 코드 작성)

2. Github에 pyspark, DAG 코드 -> PR

  1. 리뷰어 설정 Slack PR확인 요청, 확인 Merge
  2. = 다른 배치 영향안주는지 확인해보는 것이 좋음

3. DAG에 추가 수정 있을 경우 Jenkins 배포(배포 전 release 최신버전 필요)

  1. Pyspark 쿼리만 변경 x
  2. DAG ? 데이터파이프라인을 의미하는 하나의 단위

- 하나 이상의 Task를 가지고 있고, 각각의 task들은 실행 순서를 가지고 실행

 

Deploy 순서

1. S3에 pyspark script 업로드(= Airflow는 S3에 있는 pyspark 파일을 읽어서 작업)

  1. 경로 : Croquis-data-emr-da > application > pyspark/
  2. 깃허브에서 스크립트 파일 저장한 경로(path) S3 저장한 경로가 같아야 

2. Github releases(= 최신버전이라고 마킹하는 것)

  1. Draft a new release
  2. Choose a tag - v{PR 번호}
  3. Release title - Version #{PR 번호}
  4. Describe this release - #{PR 번호} 적용
  5. Publish release

3. Jenkins 배포 후 Airflow 잠깐 죽는다.(= 10~15분 후 확인)

  1. 배포는 현재 클러스터들의 시간 확인 후 진행할 (=AWS EMR에서 클러스터 확인) 
  2. 마지막에 저장한 job 이름(Off -> On)
  3. Tree view, Graph view 확인(running)

4. AWS EMR 들어가서 확인(빈 원 = 준비중)

  1. 단계 탭에 pyspark 생기면 띄워진 (= 실제 .py 실행된다)
  2. 하드웨어

 

프로비저닝(provisioning)은 사용자의 요구에 맞게 시스템 자원을 할당, 배치, 배포해 두었다가 필요 시 시스템을 즉시 사용할 수 있는 상태로 미리 준비해 두는 것을 말한다.

 

인스턴스(컴퓨터 자체)를 새로 띄워서 python 부터 라이브러리까지 다 설치하는 과정이 필요해서 EMR에 뜨는 데 시간이 걸림

 

* 에러발생시 에러 확인 방법 

(클러스터 → 단계 → 로그 파일 → 로그 보기 → stdout → 오류 메시지 반환)

 

이후 완료 처리되면 Athena에서 확인 가능

= pyspark에서 저장한 (데이터베이스.테이블)

728x90

'IT 개인학습 > Memo' 카테고리의 다른 글

Tempfile  (0) 2022.05.07
정규표현식  (0) 2022.05.07
Jenkins 젠킨스  (0) 2022.05.07
SQL  (0) 2022.05.07
Airflow  (0) 2022.05.07

댓글