Sanghun's Blog

Sanghun's Blog

Thoughts, stories and ideas.

[airflow] 6. Multi cluster에서 airflow 실행하기
dev

[airflow] 6. Multi cluster에서 airflow 실행하기

Table of Contents * 요약 * airflow configuration * 두개의 인스턴스에서 각각 worker 실행하기 * task가 실행될 worker를 명시적으로 지정하기 * 1번 인스턴스에서 * 2번 인스턴스에서 * 참조 요약 * 다루는 내용 * 분산 인스턴스에서 각각 airflow worker를 실행하고 task를 분산해서 실행하는법 * task가 실행될 worker를 명시적으로 지정하는법 * 테스트 환경 * 두 개의 Amazon EC2 Instance 사용 * 1번 Instance에 아래와 같이
4 min read
[airflow] 5. Pyspark sample code on airflow
dev

[airflow] 5. Pyspark sample code on airflow

Airflow에서 Pyspark task 실행하기 Table of Contents * data_download, spark_job, sleep 총 3개의 task가 있다. * data_download가 완료된 후, 동시에 나머지 두개의 task가 실행되는 DAG이다. * 병렬로 task가 수행된다는걸 보여주기위해 sleep task를 만들었다. * gantt를 보면 data_download가 완료된 후, 동시에 나머지 두개의 task가 실행되는걸 확인할 수 있다. from airflow import
2 min read
[airflow] 4. CeleryExecutor 사용하기
dev

[airflow] 4. CeleryExecutor 사용하기

Airflow CeleryExecutor 사용하기 Table of Contents * Rabbitmq, Celery 설치 * Rabbitmq 설정 * airflow.cfg 수정 * localhost?? * meta db 설정 * 실행 * 참조 Airflow는 기본값으로 sqlite를 사용한다. sqlite에서는 SequentialExecutor만 설정가능하기에 DAG내에서 task의 병렬실행이 불가능하다. 병렬실행을 가능하게 하려면 LocalExecutor나 CeleryExecutor를 사용해야하는데 그러기위해선 Database를 Sqlite가 아닌 다른 Database를 사용해야 한다. Database설치&설정은 이전 글을
3 min read
[airflow] 3. LocalExecutor 사용하기
dev

[airflow] 3. LocalExecutor 사용하기

Airflow LocalExecutor 사용하기 Table of Contents * Postgres 설치 * Database 설정 * airflow.cfg 수정 * meta db 설정 * airflow initdb * 참조 Airflow는 기본값으로 sqlite를 사용한다. sqlite에서는 SequentialExecutor만 설정가능하기에 DAG내에서 task의 병렬실행이 불가능하다. 병렬실행을 가능하게 하려면 LocalExecutor나 CeleryExecutor를 사용해야하는데 그러기위해선 Database를 Sqlite가 아닌 다른 Database를 사용해야 한다. 이 글에선 postgres를 예로 들어 설명하겠다.
2 min read
Contents is King by Bill Gates 전문 번역
translation

Contents is King by Bill Gates 전문 번역

1996년 1월 3일에 쓰여진 글입니다. 21년 전에 쓰여진 글이지만 현재에도 여전히 유효한 통찰이 담겨있습니다. 이때는 인터넷은 커녕 각 가정마다 PC가 보급되기도 전이었습니다. 이 까마득한 시절에 이런 글을 작성한 빌게이츠는 정말 천재인것 같습니다. 이런 통찰력있는 창업자를 두고도 콘텐츠 마켓에서 MS가 애플, 아마존 등 다른 기업에 밀린걸 보면 아이러니합니다. 빌게이츠는 본만큼 과금이
10 min read
appsflyer pull api를 이용해 daily report 적재하기
dev

appsflyer pull api를 이용해 daily report 적재하기

* 참조: appsflyer pull api 가이드 * push api가 아닌 pull api를 사용하는 이유. * 앱스플라이어 이벤트를 많이 정의할수록 push api가 빈번하게 호출된다. * 이는 서비스 품질 저하로 이어질 수 있음. (완벽한 분석용 DB가 따로 구축되어 있다면 상관 없다.) * 그러므로 실시간 데이터 적재보다는 하루에 한번, 전일자 데이터를 적재하기로 결정했고 이런 용도에는 pull api가 적합하다.
7 min read
macOS Sierra에서 virtualenv에 Opencv3 설치
dev

macOS Sierra에서 virtualenv에 Opencv3 설치

python3 설치 * 간단하게 brew로 설치하자 brew install python3 opencv3 설치 * 3은 아직 베타라고 한다. 안전한 버전을 원하면 opencv2를 설치하자. * 나는 그냥 3설치 했다. brew tap homebrew/science brew install opencv3 --with-python3 --with-ffmpeg --with-tbb --with-contrib 2016.12.04 임시 설치법 * 현재 mac OS Sierra에서 Opencv 설치에 문제가 있다. * –HEAD를 추가해 아래
1 min read