본문 바로가기
프로그램/파이쎤

airflow 설치

by cbwstar 2023. 5. 10.
728x90
반응형

리눅스 사용자 계정 생성

adduser airflow

 

/* sudo 권한 부여 */

apt install sudo

 

chmod +w sudoers

vi /etc/sudoers

chmod -w sudoers

 

 

airflow ALL=(ALL:ALL) ALL

 

su - airflow

mkdir airflow

환경설정

export AIRFLOW_HOME=~/airflow

 

/* 파이션 3.8설치 */

/* 설치전 우분투 서버 업데이트 */

apt update

apt upgrade

 

2단계: Python 3.8 PPA 가져오기

Ubuntu 사용자의 경우 Python 및 추가 필수 패키지에 대한 최신 업데이트에 액세스하는 가장 쉬운 방법은 "deadsnakes" 팀 Launchpad PPA를 가져오는 것입니다 . 이렇게 하면 터미널에서 직접 Python 3.8을 설치하고 업데이트할 수 있습니다. PPA를 가져오려면 다음 명령을 실행합니다.

Sudo add-apt-repository ppa:deadsnakes/ppa -y

 

출처: <https://www.linuxcapable.com/install-python-3-8-on-ubuntu-linux/>

 

sudo: add-apt-repository: command not found 라고 뜨면서 진행이 되지 않는 경우가 발생한다

 

방법은 두가지가 있다.

Solution 1. python-software-properties 를 설치한다.

sudo apt-get install python-software-properties

위 방법으로 해결되지 않으면 아래와 같은 방법을 추가적으로 시행한다.

Solution 2. software-properties-common 를 설치한다.

sudo apt-get install software-properties-common

 

출처: <https://nancom.tistory.com/119>

 

 

에러가 발생하면 위에둘중에 하나 설치하고 나는 2번째 하니까 설치가 된다.

 

add-apt-repository ppa:deadsnakes/ppa -y

 

3단계: 패키지 목록 업데이트

PPA를 가져온 후 시스템이 새로 추가된 리포지토리를 인식하도록 패키지 목록을 업데이트해야 합니다. 이렇게 하려면 터미널에서 다음 명령을 실행합니다.

Sudo apt update

4단계: Python 3.8 설치

PPA를 성공적으로 가져오고 패키지 목록이 업데이트되었으므로 이제 Python 3.8을 설치할 준비가 되었습니다. 이렇게 하려면 다음 명령을 실행합니다.

Sudo apt install python3.8

 

 

 

6단계: 추가 Python 패키지 설치(선택 사항)

원하는 경우 다음 추가 항목을 설치할 수도 있습니다.

디버그 모듈 Python 3.8 설치 명령

sudoaptinstallpython3.8-dbg

개발자(dev) 모듈 Python 3.8 설치 명령

sudoaptinstallpython3.8-dev

VENV(가상 환경) 모듈 Python 3.8 설치 명령

sudoaptinstallpython3.8-venv

Distutils 모듈 Python 3.8 설치 명령

sudoaptinstallpython3.8-distutils

lib2to3 유틸리티 모듈 Python 3.8 설치 명령

sudoaptinstallpython3.8-lib2to3

DBM.GNU 모듈 Python 3.8 설치 명령

sudoaptinstallpython3.8-gdbm

Tkinter 모듈 Python 3.8 설치 명령

sudoaptinstallpython3.8-tk

또는 모든 추가 항목을 설치하려면 전체 설치 명령을 실행하십시오.

sudoaptinstallpython3.8-full

 

출처: <https://www.linuxcapable.com/install-python-3-8-on-ubuntu-linux/>

 

 

/* pip 최신버전 설치 */

python3.8 -m pip install --upgrade pip

 

pip3.8 --version

 

/* 설치된 버전확인 */

ls /usr/bin/ | grep python

 

4. python default버전 바꿔주기

 update-alternatives --config python

 

  • alternatives에 뭐가 등록되어 있는지 확인
  • 등록이 안되어 있다면, update-alternatives: error: no alternatives for python 이라는 에러가 뜸

 

출처: <https://inistory.tistory.com/180>

 

5. alternatives 등록

update-alternatives --install /usr/bin/python python /usr/bin/python3.8 10

update-alternatives --install /usr/bin/python python /usr/bin/python3.10 20

 

  • ls /usr/bin/ | grep python 을 통해 확인한 여러가지 파이썬 중에 원하는 것을 등록
  • 만약 2.7 버전과 3.6버전을 갖고 있다면, 2.7은 1번으로, 3.6은 2번으로 지정
  • 순서는 상관없음, 나중에 원하는 python을 선택하는 용도

6. 다시 python default 버전 바꾸기 시도

  • update-alternatives --config python

 

  • 원하는 Selection을 선택
  • 위 예시는 1번을 선택

 

Python3.8 pip설치

apt install python3-pip

 

출처: <https://www.linuxcapable.com/install-python-3-8-on-ubuntu-linux/>

 

pip3.8 --version

 

패키지 설치 오류가 발생시 의존선 관련 패키지를 삭제하지 않으면 install자체가 안된다 쓰레기 청소 하자

rm /var/lib/dpkg/info/*

dpkg --configure -a

apt update -y

 

 

 

1단계: 각 Python 버전에 대한 심볼릭 링크 추가

먼저 각 Python 버전에 대한 심볼릭 링크를 별도로 추가해야 합니다. symlink 옆에 그룹 이름 "python"과 버전 번호를 추가합니다.

다음은 예입니다(사용자 지정하거나 복사할 수 있음).

 

sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1

sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.7 2

sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 3

sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.9 4

sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.10 5

sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.11 6

sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.12 7

 

update-alternatives --config python

 

 

/* airflow 환경설정 */

 

export AIRFLOW_HOME=~/airflow

export AIRFLOW_VERSION="2.1.2"

export PYTHON_VERSION="$(python --version | cut -d " " -f 2 | cut -d "." -f 1-2)"

export CONSTRAINT_URL="https://raw.githubusercontent.com/apache/airflow/constraints-${AIRFLOW_VERSION}/constraints-${PYTHON_VERSION}.txt"

export PATH=$PATH:/home/airflow/.local/bin

 

/* 부가적으로 필요한 패키지 설치 */

sudo apt-get update

sudo apt install python3-pip

 

pip3 install cryptography psycopg2-binary boto3 botocore

 

sudo apt install libmysqlclient-dev -y

 

pip3 install mysqlclient

 

 

출처: <https://spidyweb.tistory.com/349>

 

pip3 install apache-airflow

 

-- pip3 install "apache-airflow==${AIRFLOW_VERSION}" --constraint "${CONSTRAINT_URL}"

 

1) sqlite DB 초기화

/home/호스트/.local/bin/airflow db init

 

 

 

 

/* my sql 접속 설정 */

1) mysql db 생성 및 권한 부여

mysql 접속

mysql -u root -p

airflow DB생성

createdatabase airflow;

 

root유저에 airflowDB권한 부여하기

grantallprivileges onairflow.*to'root'@'localhost';

 

2) airflow.cfg 설정

cd /home/호스트/airflow

nano airflow.cfg

해당 부분처럼 수정

sql_alchemy_conn = mysql://root:root@localhost:3306/airflow

 

저장하고 나온 후

/home/호스트/.local/bin/airflow db init

 

mysql에 meta가 써졌는지 확인

mysql -u root -p

 

use airflow;

show tables;

 

 

출처: <https://spidyweb.tistory.com/349>

 

 

/* airflow 웹서비스 사용자 생성 */

airflow users create -u admin -f chu -l byoung -r Admin -e cbwstar@gmail.com

 

 

/* 웹서버 기동 */

airflow webserver -p 8080

 

/* 스케줄러 기동 */

airflow scheduler

 

/* mysql 커넥스 위한 providers 패키지 설치 */

/* 패키지 주소 */

https://airflow.apache.org/docs/apache-airflow-providers/packages-ref.html#apache-airflow-providers-mysql

 

pip install 'apache-airflow-providers-mysql'

 

출처: <https://airflow.apache.org/docs/apache-airflow-providers/packages-ref.html#apache-airflow-providers-mysql>

 

 

 

기동 : airflow webserver --port 8080

 

/* 버전에 맞는 pip 패키지 설치 */

python -m pip install apache-airflow-providers-mysql

728x90
반응형

댓글



"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

loading