리눅스 사용자 계정 생성
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 패키지 설치 */
/* 패키지 주소 */
pip install 'apache-airflow-providers-mysql'
기동 : airflow webserver --port 8080
/* 버전에 맞는 pip 패키지 설치 */
python -m pip install apache-airflow-providers-mysql
'프로그램 > 파이쎤' 카테고리의 다른 글
[파이쎤] 이기종 db 마이그레이션 (0) | 2022.06.21 |
---|---|
[파이쎤] 이기종간의 DB 실시간 동기화 (0) | 2022.06.21 |
댓글