터미널로도 설치하는 방법에 대해 알아보자
aws > ec2 생성을 누르고 ubuntu 클릭
인스턴스 유형을 t3.small로 변경
그리고 새로운 키페어를 생성해준다 파일형식은 윈도우 10이상이면 pem으로 아니면 ppk로 설정
나머진 그대로 유지하고 인스턴스 생성해준다
그럼 인스턴스가 생성되고 이때 퍼블릭 dns 주소 복사하고 터미널을 열어준다
파이썬 3.0 pip설치
ssh -i 키페어명칭.pem ubuntu@복사한 ip4 dns
처음이니까 yes 입력
그 다음
sudo apt-get update
sudo apt-get upgrade
이걸 두개를 치면 되는데
만약 이렇게 에러나가 난다면
터미널 오른쪽 마우스 클릭 > 관리자모드 로 가서
wsl -install
작성하고 다시 powershell로 돌아와
wsl #하면 활성화됨
이렇게 활성화되고 다음에 sudo를 입력하면 먹힌다
clear해서 글정리
wget https://bootstrap.pypa.io/get-pip.py
sudo python3 get-pip.py
sudo apt-get install -y python3-pip
#각각 설치
그럼 이제 위에 코드를 입력해서 python3 - pip를 설치한다
이제 airflow를 설치를 진행한다
sudo apt-get install -y libmysqlclient-dev
sudo pip3 install --ignore-installed "apache-airflow[celery,amazon,mysql,postgres]==2.9.1" --constraint "https://raw.githubusercontent.com/apache/airflow/constraints-2.9.1/constraints-3.8.txt"
sudo pip3 install oauth2client gspread numpy pandas
이렇게 세개 적으면 된다는데
난 왜 에러가 나나니,,, 보아하니
" pip을 사용해 시스템 전체에 패키지를 설치하지 못하도록 하여 시스템 안정성을 보호하려는 Debian/Ubuntu의 보안 정책 때문입니다." 라고 한다
그래서 가상환경을 열어서 진행해주겠다
sudo apt-get update
sudo apt-get install python3.12-venv
python3-venv 패키지 설치해주고
python3 -m venv airflow-env
source airflow-env/bin/activate
pip install --upgrade pip
가상환경 활성화
pip install --ignore-installed "apache-airflow[celery,amazon,mysql,postgres]==2.9.1" \
--constraint "https://raw.githubusercontent.com/apache/airflow/constraints-2.9.1/constraints-3.8.txt"
를 바로 입력하면 되는 줄 알았으나
pkg-config는 컴파일러에게 필요한 라이브러리의 위치를 알려주는 도구로 이 도구가 현재 설치가 안되어있단다
sudo apt-get install pkg-config
sudo apt-get install libmysqlclient-dev # MySQL을 사용할 경우
# 또는
sudo apt-get install libmariadb-dev # MariaDB를 사용할 경우
위에 코드 돌리고
다시
pip install --ignore-installed "apache-airflow[celery,amazon,mysql,postgres]==2.9.1" \
--constraint "https://raw.githubusercontent.com/apache/airflow/constraints-2.9.1/constraints-3.8.txt"
돌리면
이렇게 성공적으로 나온다고 뜬다
pip3 install oauth2client gspread numpy pandas
이제 마무리로 pandas에 필요한 기타모듈을 설치를 완료한다
Sudo란?
내가 위에 작성한 코드를 보면 별도의 sudo를 사용하지 않고 있다
sudo는 "Super User DO"의 약자로, 일반 사용자에게 관리자(슈퍼유저) 권한을 부여하는 명령하는 것이다
나는 현재 가상환경을 만들었는데
이렇게 가상환경을 사용하면 시스템에 영향을 주지 않고 독립적인 Python 환경을 만들 수 있기 때문에 sudo 권한을 사용할 필요가 없는것이다
airflow 계정생성
이제 airflow 계정을 생성해보겠다
sudo groupadd airflow
sudo useradd -s /bin/bash airflow -g airflow -d /var/lib/airflow -m
하고
sudo apt-get install -y postgresql postgresql-contrib
postgres 설치를 한다
그러면 총 세개의 계정이 만들어진다 ubuntu계정 / ariflow 계정 / postgres계정
sudo su postgres
이제 postgres라는 계쩡으로 로그인
psql
이제 여기서 airflow사용자를 만들 수 있다
CREATE USER airflow PASSWORD 'airflow';
CREATE DATABASE airflow;
\q
exit
#한문장씩 입력
exit으로 우분트 환경으로 돌아오기
sudo service postgresql restart
sudo su airflow
postgress를 재시작하고 airflow를 실행해서 기본환경을 만들어보자
mkdir dags #새로운 폴더 생성
AIRFLOW_HOME=/var/lib/airflow airflow db init #db초기화 해라
그랬더니 이렇게 에러난다,,,다시 airflow를 설치할려고하니까 ubuntu는 python 패키지는 제한이 있으니 불가능
그래서 다시 가상환경을 열어서 설치를 진행했다
python3 -m venv airflow-env
source airflow-env/bin/activate
위에 두문장을 작성하고
pip install "apache-airflow[celery,amazon,mysql,postgres]==2.9.1"
다시 패키지를 설치하면 아주 잘나온다
파일을 확인해보면 airflow.db와 airflow.cfg가 생긴걸 확인할 수 있다
ls -tl #airflow.db와 airflow.cfg가 생긴걸 확인
vi.airflow.cfg
ls /var/lib/airflow
airflow.cfg airflow.db dags logs unittests.cfg
** 터미널 코드 정리는 clear를 치면 된다
'데이터엔지니어링 > Airflow' 카테고리의 다른 글
gcp 코드 4003에러 해결 : Cloud Identity-Aware Proxy를 통한 연결 실패 VM에 IP 범위 35.235.240.0/20, 포트 22에서 오는 TCP 인그레스 트래픽을 허용하는 방화벽 규칙 (0) | 2024.11.23 |
---|---|
트랜잭션과 aws ec2에 docker 설치 윈도우 버전 (1) | 2024.11.23 |
키움 open api에서 데이터 가지고 오기 (3) | 2024.11.22 |
docker 설치 후 airflow 설치하기 윈도우 (1) | 2024.11.21 |
데이터 파이프라인(ETL/ELT) 과 AirFlow DAG의 구조 및 개념 (0) | 2024.11.18 |