Airflow 란?
Apache Airflow는 초기 에어비엔비(Airfbnb) 엔지니어링 팀에서 개발한 워크플로우 오픈 소스 플랫폼입니다. 프로그램 방식으로 워크플로우를 작성, 예약, 모니터링 할 수 있습니다.
**워크플로우 : 의존성으로 연결된 작업(Task)들의 집합.
'Data engineer > Airflow' 카테고리의 다른 글
Linux 환경에서 airflow 설치 및 실행 (0) | 2024.10.04 |
---|
Apache Airflow는 초기 에어비엔비(Airfbnb) 엔지니어링 팀에서 개발한 워크플로우 오픈 소스 플랫폼입니다. 프로그램 방식으로 워크플로우를 작성, 예약, 모니터링 할 수 있습니다.
**워크플로우 : 의존성으로 연결된 작업(Task)들의 집합.
Linux 환경에서 airflow 설치 및 실행 (0) | 2024.10.04 |
---|
1. pip 사용하여 설치
# 먼저 가상환경 생성
python3 -m venv airflow_venv
source airflow_venv/bin/activate
# 환경 변수를 설정
export AIRFLOW_HOME=~/airflow
# 설치할 때에는 Apache Airflow의 특정 버전을 설정해주는 것이 좋습니다.
# 예시로 airflow의 기본 패키지를 설치합니다.
pip install "apache-airflow==2.6.3" --constraint "https://raw.githubusercontent.com/apache/airflow/constraints-2.6.3/constraints-3.8.txt"
airflow db init
airflow webserver --port 8080
*blinker 삭제 실패 등 여러 원인으로 실패가 발생할 수 있습니다. 현재 해결한 방법은 pip3 apt update, pip3 apt upgrade를 통해서 pip3 패키지를 최신화해서 패키지 위치를 잡아줘야 합니다.
2. Helm 사용하여 설치
# 먼저 Helm 저장소 추가
helm repo add apache-airflow https://airflow.apache.org
# 저장소 업데이트
helm repo update
# Airflow 설치
kubectl create namespace airflow
helm install airflow apache-airflow/airflow --namespace airflow
3. Docker Compose 사용하여 설치
curl -LfO 'https://airflow.apache.org/docs/apache-airflow/stable/docker-compose.yaml'
mkdir -p ./dags ./logs ./plugins
echo -e "AIRFLOW_UID=$(id -u)\nAIRFLOW_GID=0" > .env
docker-compose up airflow-init
docker-compose up
4. APT 사용하여 설치
sudo apt-get update
sudo apt-get install apache-airflow
5. Apache Airflow 설치 스크립트 사용하여 설치
curl -LfO 'https://airflow.apache.org/docs/apache-airflow/stable/installation-script.sh'
bash installation-script.sh
Airflow 란? (0) | 2024.10.05 |
---|
*여러 방법으로 실행하는 방법이 있는데 Java 방식으로 설치 및 실행했습니다. 다른 방식은 처음 사람이 하기에는 어려울 수 있습니다.
$ ./bin/kafka-lag-exporter -Dconfig.file=/Users/jsh/kafka/kafka-lag-exporter/application.conf
- Mac2
- Mac2에 자동으로 설치 되어 있는 python3 와 version 3.12.*
현재 python3 -V 하면 3.9가 나오며, 현재 brew python 설치는 3.12로 되어 있는 상태에서 spark-driver worker version 은 3.12 가 나오는 상태입니다.
만약 spark-driver worker version 이 brew list 에 있으면 해당 위치를 .zshrc 또는 .bash_profile 에 설정을 해주면 됩니다.
예를 들어 python3 에 3.12이면 아래와 같이 넣어주면 됩니다.
#Python
alias python="python3"
alias python3="/opt/homebrew/bin/python3.12"
해당 항목을 저장후 source 를 통해 쉘에 적용 후 python3 -V 하면 원하는 version 이 나올겁니다.
만약 spark-driver worker version 이 brew list 에 없으면 brew install python@3. 뒤에 원하는 버젼을 입력하여 설치 합니다.
설치 후 위와 같이 항목을 적용 합니다.
아래 부분 보고 맞추시면 됩니다.
#Python
alias python="python3"
alias python3="/opt/homebrew/bin/python3.12"
#Spark
export SPARK_HOME=~/Spark/spark
export PYSPARK_PYTHON=/opt/homebrew/bin/python3.12
export PYSPARK_DRIVER_PYTHON=jupyter
export PYSPARK_DRIVER_PYTHON_OPTS='notebook'
export SPARK_LOCAL_IP=127.0.0.1
alias sparknb='$SPARK_HOME/bin/pyspark'
여기서 주의할건 PYSPARK_PYTHON 에 python3 를 입력하면 적용이 되지 않아 직접 dir 를 입력했습니다.
그리고 PYSPARK_DRIVER_PYTHON 은 jupyter 이여야 합니다.
[Spark]빅데이터 분석 환경 구축-5강. Zookeeper 설치 및 환경 설정 (1) | 2024.02.06 |
---|---|
[Spark]빅데이터 분석 환경 구축-Spark 설치 및 환경설정 (0) | 2024.02.06 |
[Spark]빅데이터 분석 환경 구축-3강. Hadoop 설치 및 환경설정 (0) | 2024.02.06 |
[Spark]빅데이터 분석 환경 구축-2강. Java 설치 및 환경설정 (0) | 2024.02.06 |
[Spark]빅데이터 분석 환경 구축-1강. AWS EC2 인스턴스 배포 (0) | 2024.02.06 |
**빅공잼님 덕분에 빅데이터 분석 환경 구축을 해볼 수 있었습니다. 감사합니다.**
[Spark]spark-driver version 과 python verson 맞추기(jupyter) (1) | 2024.02.11 |
---|---|
[Spark]빅데이터 분석 환경 구축-Spark 설치 및 환경설정 (0) | 2024.02.06 |
[Spark]빅데이터 분석 환경 구축-3강. Hadoop 설치 및 환경설정 (0) | 2024.02.06 |
[Spark]빅데이터 분석 환경 구축-2강. Java 설치 및 환경설정 (0) | 2024.02.06 |
[Spark]빅데이터 분석 환경 구축-1강. AWS EC2 인스턴스 배포 (0) | 2024.02.06 |
**빅공잼님 덕분에 빅데이터 분석 환경 구축을 해볼 수 있었습니다. 감사합니다.**
[Spark]spark-driver version 과 python verson 맞추기(jupyter) (1) | 2024.02.11 |
---|---|
[Spark]빅데이터 분석 환경 구축-5강. Zookeeper 설치 및 환경 설정 (1) | 2024.02.06 |
[Spark]빅데이터 분석 환경 구축-3강. Hadoop 설치 및 환경설정 (0) | 2024.02.06 |
[Spark]빅데이터 분석 환경 구축-2강. Java 설치 및 환경설정 (0) | 2024.02.06 |
[Spark]빅데이터 분석 환경 구축-1강. AWS EC2 인스턴스 배포 (0) | 2024.02.06 |
**빅공잼님 덕분에 빅데이터 분석 환경 구축을 해볼 수 있었습니다. 감사합니다.**
<configuration>
<!-- configuration hadoop -->
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/usr/local/hadoop/data/nameNode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/usr/local/hadoop/data/dataNode</value>
</property>
<property>
<name>dfs.journalnode.edits.dir</name>
<value>/usr/local/hadoop/data/dfs/journalnode</value>
</property>
<property>
<name>dfs.nameservices</name>
<value>my-hadoop-cluster</value>
</property>
<property>
<name>dfs.ha.namenodes.my-hadoop-cluster</name>
<value>namenode1,namenode2</value>
</property>
<property>
<name>dfs.namenode.rpc-address.my-hadoop-cluster.namenode1</name>
<value>nn1:8020</value>
</property>
<property>
<name>dfs.namenode.rpc-address.my-hadoop-cluster.namenode2</name>
<value>nn2:8020</value>
</property>
<property>
<name>dfs.namenode.http-address.my-hadoop-cluster.namenode1</name>
<value>nn1:50070</value>
</property>
<property>
<name>dfs.namenode.http-address.my-hadoop-cluster.namenode2</name>
<value>nn2:50070</value>
</property>
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://nn1:8485;nn2:8485;dn1:8485/my-hadoop-cluster</value>
</property>
<property>
<name>dfs.client.failover.proxy.provider.my-hadoop-cluster</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>
<property>
<name>dfs.ha.fencing.methods</name>
<value>shell(/bin/true)</value>
</property>
<property>
<name>dfs.ha.fencing.ssh.private-key-files</name>
<value>/home/ubuntu/.ssh/id_rsa</value>
</property>
<property>
<name>dfs.ha.automatic-failover.enabled</name>
<value>true</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>/usr/local/hadoop/data/name</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/usr/local/hadoop/data/data</value>
</property>
</configuration>
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://nn1:9000</value>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://my-hadoop-cluster</value>
</property>
<property>
<name>ha.zookeeper.quorum</name>
<value>nn1:2181,nn2:2181,dn1:2181</value>
</property>
</configuration>
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://nn1:9000</value>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://my-hadoop-cluster</value>
</property>
<property>
<name>ha.zookeeper.quorum</name>
<value>nn1:2181,nn2:2181,dn1:2181</value>
</property>
</configuration>
[Spark]빅데이터 분석 환경 구축-5강. Zookeeper 설치 및 환경 설정 (1) | 2024.02.06 |
---|---|
[Spark]빅데이터 분석 환경 구축-Spark 설치 및 환경설정 (0) | 2024.02.06 |
[Spark]빅데이터 분석 환경 구축-2강. Java 설치 및 환경설정 (0) | 2024.02.06 |
[Spark]빅데이터 분석 환경 구축-1강. AWS EC2 인스턴스 배포 (0) | 2024.02.06 |
[Spark]빅데이터 분석 환경 구축-0강. 개요 (0) | 2024.02.06 |
**빅공잼님 덕분에 빅데이터 분석 환경 구축을 해볼 수 있었습니다. 감사합니다.**
[Spark]빅데이터 분석 환경 구축-Spark 설치 및 환경설정 (0) | 2024.02.06 |
---|---|
[Spark]빅데이터 분석 환경 구축-3강. Hadoop 설치 및 환경설정 (0) | 2024.02.06 |
[Spark]빅데이터 분석 환경 구축-1강. AWS EC2 인스턴스 배포 (0) | 2024.02.06 |
[Spark]빅데이터 분석 환경 구축-0강. 개요 (0) | 2024.02.06 |
[Spark]스키마 정의 장점 및 방법 (0) | 2024.01.21 |