[Airflow] PythonOperator를 이용한 DAG 작성 및 실행
·
Data Engineering/Airflow
이번 글에서는 `Apache Airflow`에서 `DAG`를 작성하고 실행하는 방법에 대해 설명하려고 한다. 앞선 글에서 설명했듯이, `Airflow`는 `DAG(Directed Acyclic Graph)`를 이용해 작업의 실행 순서를 정의한다. 간단하게 이러한 `DAG`를 작성해보고 직접 실행해 볼 예정이다. 실습 환경OSUbuntu 20.04Docker28.0.4Apache Airflowairflow:2.10.5 실습은 Ubuntu 20.04 환경에서 진행했으며, Docker Compose를 활용하여 Airflow를 구성하였다.  DAG 작성DAG는 기본적으로 Python으로 작성되며 `dags/` 디렉토리에 작성하면 된다. Airflow는 해당 디렉토리 내의 Python 파일을 자동으로 인식하여 D..
[Airflow] Airflow 설치 - Python 가상 환경, Docker
·
Data Engineering/Airflow
이번 글에서는 `Apache Airflow`를 설치하는 과정에 대해 정리하려고 한다. `Airflow`를 설치하는 방법은 다양하게 존재하는데 이번 글에서는 1. `Python` 가상 환경을 통해 설치하는 과정이랑 2. `Docker Compose`를 이용해 설치하는 과정을 정리하려고 한다. 다양한 설치 방법은 Airflow 공식 홈페이지에서 확인할 수 있다.  1. Python 가상 환경을 이용한 설치`Python` 가상 환경을 사용하면 `Airflow`를 독립된 환경에서 실행할 수 있어 시스템 패키지와 충돌을 방지할 수 있다.  이제 `Python` 가상 환경을 이용한 `Airflow` 설치 과정을 알아보자  1.1. pyenv 설치`Python` 가상 환경을 사용하기 앞서 `pyenv`를 설치해주어야..
[Airflow] Apache Airflow란?
·
Data Engineering/Airflow
이번 글에서는 `Apache Airflow`에 대해 정리하려고 한다. 최근 데이터 파이프라인의 복잡성이 증가함에 따라, 이를 효과적으로 관리하고 자동화할 수 있는 도구에 대한 수요가 높아지고 있다. 그 중 `Apache Airflow`가 있으며, 이는 다양한 곳에서 널리 사용되고 있다. 그렇다면 `Apache Airflow`는 무엇일까? What is Apache Airflow?먼저, `Apache Airflow`에 대해 공식 홈페이지는 아래와 같이 정의하고 있다. an open-source platform for developing, scheduling, and monitoring batch-oriented workflows  즉, `Airflow`는 배치 중심 워크플로우를 개발, 스케줄링 및 모니터링..
[Kafka] 간단한 Producer/Consumer 실습 (Java)
·
Data Engineering/Kafka
이번 글에서는 위 그림과 같이 간단한 작업을 실습해볼 예정이다. Producer와 Consumer는 Java를 이용해 구현했으며, Gradle을 사용했다. Java Project 생성하는 법은 이번 글에서는 생략했다. 코드를 작성하기 앞서 build.gradle에 의존성을 추가해야한다.implementation 'org.apache.kafka:kafka-clients:3.5.1' producerTest.javaimport org.apache.kafka.clients.producer.KafkaProducer;import org.apache.kafka.clients.producer.ProducerRecord;import org.apache.kafka.clients.producer.Producer;import..
[Kafka] Apache Kafka 설치
·
Data Engineering/Kafka
이번 글에서는 Apache Kafka 설치 방법에 대해 소개할 예정이다. Kafka 3.9.0 버전을 사용했으며, KRaft 모드를 사용할 예정이다. 큰 목차는 다음과 같다.1. 환경2. Java 설치3. Kafka 설치4. Kafka Cluster ID 설정5. Kafka 설정 파일 편집6. Kafka 스토리지 초기화7. Broker 실행8. Topic 생성9. Producer/Consumer 테스트 환경설치를 위해 VM 3대를 사용하였으며, 환경은 다음과 같다.OSUbuntu 20.04Javaopenjdk-11Kafka3.9.0  Java 설치 Kafka를 실행하려면 Java Runtime Environment(JRE)가 필요하기 때문에 OpenJDK 11을 설치한다.sudo apt updatesud..
[Kafka] Zookeeper와 KRaft(Kafka Raft)
·
Data Engineering/Kafka
이번 글에서는 Zookeeper와 이를 대체하기 위해 등장한 KRaft에 대해 소개 할 예정이다. 본 글의 목차는 다음과 같다.1. Apache ZooKeeper 개요      1.1 Zookeeper 앙상블      1.2 Zookeeper Read & Write2. Zookeeper와 Kafka3. Zookeeper의 문제점4. KRaft(Kafka Raft) 모드5. 마무리 Apache ZooKeeper 개요 Zookeeper는 분산 애플리케이션을 위한 분산 코디네이션 서비스로, 개별 시스템을 관리 및 조율하며 고가용성을 보장한다.분산 환경에서 클러스터 메타데이터를 관리하고 노드 간의 협업을 돕는 핵심 역할을 수행한다. Zookeeper 앙상블  Zookeeper는 여러 서버로 구성된 앙상블 형태로..