먼저 운영체제가 Windows인지 Linux인지 Mac인지 OS 확인을 해야한다.
나는 컴퓨터가 Windows이기 때문에 WSL을 이용하여 Airflow를 설치해보고자 한다. ( Docker방법은 추후 포스팅 )
먼저 Windows PowerShell을 관리자 권한으로 열어 해당 명령어를 실행한다.
(관리자 권한 미실행 시 db init 데이터베이스 초기화 오류발생)
wsl --install
이는 리눅스 Ubuntn(우분투)를 사용하기 위해 WSL를 설치하는 과정이다.
이미 설치를 했기때문에 Ubuntu가 자동으로 실행됨.
처음에는 아래화면과 같이 User ID와 PW를 생성해야한다.
sudo apt install python3-venv
Ubuntu 가상환경venv 설치
python3 -m venv env
새 env 디렉토리 만들기
- 문득 mkdir 명령어도 디렉토리를 생성하는 과정인데 차이가 무엇일까 생각을 해보았고, 해당 내용은 다음과 같다.
source env/bin/activate
가상환경 활성화
pip3 install apache-airflow
airflow 설치
pip install pendulum==2.1.0
나는 pendulum 라이브러리가 버전이 맞지 않아 오류가 나서 ver2.1.0으로 고정시켜주었다.
airflow db init
airflow Meta Database 초기화
airflow users create -u admin -p admin -f k -l cy -r Admin -e test@co.kr
airflow 계정생성을 위한 설정이다. u : ID, p : PW, f : First Name, l : Last Name, r : Role, e : e-Mail
(주의할점 Role 입력 시 소문자로 하면 오류납니다..)
airflow webserver --port 8080
마지막으로 airflow webserver 실행을 위해 port를 8080으로 맞추고 실행한다.
<실행결과> 위에 생성한 계정을 입력해주면 된다.
[ISSUE]
ID와 PW를 입력하였는데 아래 화면과 같이 서버를 찾을 수 없다는 문구가 나왔다.
확인해보니 서버의 방화벽이 내려가 있던 것 같아 Ubuntu 환경에서 방화벽을 설정했다.
(Ubuntu 관리자 비밀번호 필요)
sudo ufw status 방화벽 상태 확인
sudo ufw enable 방화벽 활성화
sudo ufw allow 8080/tcp 포트 8080 열기
airflow webserver -p 8080 웹서버 재시작 후 재로그인
접속 성공!
다만 위에 경고창이 거슬린다.
Do not use SQLite as metadata DB in production – it should only be used for dev/testing. We recommend using Postgres or MySQL. Click here for more information | 이 에러 메시지는 현재 Apache Airflow의 메타데이터 데이터베이스로 SQLite를 사용하고 있으며, 이는 개발 및 테스트 환경에서만 적합하다는 경고입니다. 프로덕션 환경에서는 더 안정적이고 확장 가능한 데이터베이스 시스템인 PostgreSQL이나 MySQL을 사용하는 것 권장 |
Do not use the SequentialExecutor in production | SequentialExecutor를 프로덕션 환경에서 사용하지 말라는 경고입니다. SequentialExecutor는 단일 스레드에서 작업을 처리하며, 한 번에 하나의 작업만 실행할 수 있습니다. 따라서 작은 테스트 환경이나 로컬 개발 환경에서는 유용할 수 있지만, 실제 운영 환경에서는 적합하지 않습니다. |
위 3가지 오류에 대해서는 추후 실제 운영에 적용하며 해결하는 포스팅 작성 예정.
'Engineer > Pipeline' 카테고리의 다른 글
[ETL] Airflow를 이용한 Naver(API)_to_Snowflake(DW) (0) | 2024.08.01 |
---|---|
[Pipeline] 파이프라인 Apache Airflow 설치방법 (Docker) (0) | 2024.08.01 |