일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- HBase
- ambari
- Windows
- execution_date
- HDP
- hadoop
- NoSQL
- slack
- HDFS
- SlackWebhookOperator
- jupyter
- 정규표현식
- Kafka
- MapReduce
- HIVE
- python
- java
- re
- 람다 아키텍처
- Namenode
- Lambda architecture
- airflow
- Service
- Example DAG
- yarn
- 빅데이터
- Scala
- LDAP
- slack app
- docker
- Today
- Total
목록BigData (73)
IT 삽질기

이번 글에서는 Airflow의 execution_date에 대해서 이해해보도록 하자. execution_date에 대한 설명을 하기에 앞서 Airflow는 batch schedulering을 위한 tool이라는 것을 기억하자. execution_date란 ? 먼저 execution_date에 대한 정의를 내려보자. airflow에서의 execution_date는 dag가 실행되어야 하는 기대값이라고 생각할 수 있을 것 같다. 한 가지 예를 들어 살펴보자. 매일 자정 전날에 발생했던 log들을 HDFS로 이관하는 작업이 있다고 가정해보자. 자정이 지나 오늘의 날짜는 2021-09-26일인데 이관되어야 하는 log들의 날짜는 2021-09-25일이 된다. 이런 경우 사용자는 하루 전 날짜의 데이터를 가지고 ..

이번 글에서는 Airflow Xcom에 대해서 알아보도록 하자. Airflow Version : 2.1.3에서 테스트를 진행했다. Xcom이란 Xcom은 DAG 내의 task 사이에서 데이터를 전달하기 위해서 사용되는데, CeleryExecutor를 예로 들면, 각 task들이 각기 다른 Worker에서 실행될 수 있으며, Xcom은 이러한 경우 task간 데이터 전달을 가능하게 한다. Variables와 마찬가지로 key-value의 형식으로 사용되지만, Variables과는 달리 Xcom은 DAG내에서만 공유할 수 있는 변수라는 점이다. Xcom을 이용해 데이터를 전달하는 경우 DataFrame이나 많은 양의 데이터를 전달하는 것은 지원하지 않으며, 소량의 데이터만 전달하는 것을 권장한다. Xcom을..

이번 글에서는 Airflow 설치 시 기본적으로 생성되는 Example DAG를 제거하는 방법에 대해서 알아보도록 하자. Example DAG Example DAG란 Airflow를 설치하고 실행시키면 기본적으로 DAG에 등록되어 있는 DAG 항목들을 말하며, Airflow의 기능들에 대해 알아볼 때는 사용하기 좋지만, 실 운영환경에서는 운영 DAG와 섞여 혼란을 유발할 수 있다. airflow.cfg 파일에서 기본값으로 설정된 내용 때문에 example DAG들이 보이게 되며, 해당 설정값을 변경하면 더 이상 보이지 않게 된다. 먼저 설정값을 알아보도록 하자. airflow.cfg 파일에 load_examples가 True로 되어 있는 것을 확인할 수 있다. 일단 이 설정값을 False로 변경해보자. ..

이번 글에서는 Airflow에서 SlackOperator을 사용하는 방법에 대해서 알아보도록 하자. 이 글에서는 Slack App은 이미 생성되어 있다고 가정하며, Slack App을 생성하는 방법은 이전 글을 참고하기 바란다. 2021.09.11 - [개발] - Slack App 만들어 메세지 보내기 Airflow Slack provider 설치하기 Airflow 2.x 버전을 사용하는 경우 slack provider을 설치해야 하며, 관련 정보는 Airflow 공식 문서에서 얻을 수 있다. https://airflow.apache.org/docs/apache-airflow-providers-slack/stable/index.html 아래의 명령어를 이용해 slack provider을 설치한다. pip..

이번 글에서는 CentOS에서 Airflow webserver, scheduler을 서비스로 등록하여 사용하는 방법을 알아보도록 하자. Serviced 관련 내용은 지난 글을 참고하기 바란다. 이번 글에서도 지난 글과 마찬가지로 CentOS에서 동작하는 서비스에 대해서 설명한다. 2021.05.17 - [개발] - CentOS 7 serviced 등록 및 실행 Airflow Serviced 등록하기 Serviced에 등록하기 위한 파일은 Airflow의 공식 github에서 확인이 가능하다. https://github.com/apache/airflow/tree/main/scripts/systemd 이 글에서는 webserver를 service로 등록하는 방법에 대해서만 이야기하며 scheduler이나 w..

이번 글에서는 빅데이터 시스템을 설계할 때 고려할 수 있는 architecture중 하나인 람다 아키텍처에 대해서 알아보도록 하자. 람다 아키텍처 람다 아키텍처는 실시간 분석을 지원하며, 배치와 스트림 방식을 모두 활용하여 많은 양의 데이터를 처리할 수 있게 하는 아키텍처이다. 아래의 그림은 람다 아키텍처를 그림으로 나타낸 것으로 그림을 통해 좀 더 자세하게 살펴보도록 하자. 먼저 각각의 layer에 대해서 알아보자. Batch layer Batch layer은 수시로 생성되는 데이터에 대해 주기적으로 실행되며 batch view를 만들어내는 역할을 한다. 이 글에서는 Batch layer의 주기가 일별로 동작하는 것을 가정하여 설명하도록 한다. 이렇게 배치작업을 이용해 데이터를 생성하게 되면 데이터에 ..

이번 글에서는 Airflow의 LocalExecutor과 CeleryExecutor에 대해서 알아보도록 하자. Airflow에서 제공하는 Executor의 종류는 여러가지가 있지만 여기서는 이 두가지만 자세하게 비교하도록 한다. Executor 먼저 Executor이 뭔지 알아보도록 하자. Airflow에서 이야기하는 Executor은 task가 실행되는 매커니즘으로 Executor을 어떻게 설정하느냐에 따라 task 실행방식이 달라지는 것으로 이해하면 될 것 같다. Airflow에서 제공하는 전체 Executor은 아래의 링크에서 확인할 수 있다. https://airflow.apache.org/docs/apache-airflow/stable/executor/index.html Sequential Ex..

이번 글에서는 Hadoop MapReduce 과정에서 이야기하는 Combiner 함수에 대해 알아보도록 하자. Combiner 함수 Hadoop을 사용하면 데이터를 분산처리하고 많은 양의 자원을 사용할 수 있지만 무한한 자원을 사용하는 것은 아니다. Map, Reduce 작업 진행시 자원을 최소화하여 사용할 필요가 있는데 Combiner는 Map-Reduce간 데이터 전송을 최소화할 수 있게 해준다. Combiner 함수는 Reduce 함수의 출력이 Reduce 함수의 입력이 되는 것을 허용하는 것을 뜻한다. 예를 들어 최대값, 최솟값, count와 같은 결과를 얻기 위해 Map task에서 취합한 결과를 reduce에서만 진행하는 것이 아니라 각각의 Map task에서 최댓값, 최솟값, count와 같..