로컬 환경에서 아주 간단하게 Airflow를 설치해보고 Webserver 까지 띄어보도록 하자.
나는 어떤 작업을 진행하기 전, 가상환경을 생성해 해당 작업만의 패키지들이 설치될 수 있도록 하는게 좋기 때문에 가상환경을 생성한다.
# python version, 가상환경 이름은 원하는대로 생성
$ pyenv virtualenv {python-version} {가상환경이름}
# 예시
$ pyenv virtualenv 3.8.6 venv-test-airflow
# 가상환경 실행
$ pyenv activate venv-test-airflow
# 가상환경 생성
$ python3 -m venv venv-test-airflow
# 가상환경 실행
$ source venv-test-airflow/bin/activate
가상환경을 실행했다면 Airflow 를 설치해보자.
$ pip install apache-airflow
Airflow는 기본으로 sqllite를 사용한다.
아래 명령어를 실행하면 자신의 Home Directory에 airflow
폴더가 생성되는 것을 볼 수 있다.
$ airflow db init
Airflow Webserver 를 사용하기 위해서는 계정이 필요하다.
# 계정 생성 명령어 (\ 앞에 띄어쓰기 있어야함)
$ airflow users create \
> --username {Login_ID} \
> --firstname {First_NAME} \
> --lastname {Last_NAME} \
> --role Admin \ # 해당 부분은 고정
> --password {Password} \
> --email {Email}
# 한줄 명령어
$ airflow users create --username {Login_ID} --firstname {First_NAME} --lastname {Last_NAME} --role Admin --password {Password} --email {Email}
이제 Webserver 를 띄어보자.
# 기본 port = 8080
$ airflow webserver --port 8080
# 이 명령어로 해도 됨.
$ airflow webserver
명령어를 실행하면 아래 이미지처럼 뜨면서 실행된다.
Host
부분을 보면 0.0.0.0:8080
으로 되어 있고, airflow 폴더에 airflow-webserver.pid
파일이 생성된다. 해당 파일을 cat 명령어를 통해 보면 아래 이미지 기준 57313
값이 들어가 있다.
webserver를 띄웠다면 해당 터미널을 그대로 남겨두고, 새로운 터미널에서 scheduler를 실행시켜보자.
$ airflow scheduler
localhost:8080 링크를 통해 들어가면 아래와 같은 페이지가 뜰 것이고, 4번에서 생성한 계정으로 로그인 해보자.
그러면 아래 이미지처럼 내가 DAG를 만들지도 않았는데, 엄청나게 많은 DAG들이 존재하는 것을 볼 수 있다.
DAG를 각각 눌러 코드를 볼 수 있으니 궁금한 사람은 클릭해서 보도록 하고, 이러한 예제가 필요없다는 사람들은 예제 DAG들을 안 보이도록 해보자. 우선 Airflow 설정을 해주는 airflow.cfg
파일이 존재하는지 확인해보자.
# airflow 경로로 이동
$ cd ~/airflow
# airflow.cfg 있는지 확인
$ ls airflog.cfg
> airflow.cfg
airflow/airflow.cfg
파일이 존재한다면 해당 파일을 열어 쭉 내리다 보면 load_examples
부분이 존재하는데 True -> False
로 수정해보자.
load_examples = False
로 변경하고 다시 Airflow Webserver 새로고침하면 아래 이미지처럼 Example DAGs 들이 모두 사라졌을 것이다. (만약, 새로고침을 해도 Exmaple DAGs 들이 남아있다면 airflow scheduler 를 실행했던 터미널을 열어 ctrl+c
를 통해 종료 한 후, 다시 airflow scheduler 를 실행시켜보자)
간단하게 로컬 환경에서 Airflow를 설치하고 Webserver까지 띄어보는 작업을 해봤다. 하지만 이것은 아주 기초적인 부분만 한 것이고, 추후에 계속해서 업그레이드를 해보자. 다음 글이 올라오기 전에 airflow.cfg
파일에 무슨 내용이 있는지 보면 도움이 많이 되는 것 같다.
<참고 링크>
윈도우에서는 로컬에 설치 불가능한가요? 리눅스 환경에서만 로컬 설치 가능한지 궁금합니다.