Centos7 배포 AirFlow
공식 문서
1. 환경 준비
1.1.Python3 설치
yum install epel-release -y
yum install https://centos7.iuscommunity.org/ius-release.rpm -y
yum install python36u -y
ln -s /bin/python3.6 /bin/python3
yum install python36u-pip -y
ln -s /bin/pip3.6 /bin/pip3
1.2.국내원
mkdir ~/.pip
vim ~/.pip/pip.conf
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
1.3.가상 환경 구성
mkdir -p /usr/local/thirdparty/
cd /usr/local/thirdparty/
python3 -m venv airflow_env
source /usr/local/thirdparty/airflow_env/bin/activate
1.4.OS 종속 설치
yum install -y gcc gcc-c++ python-devel python36u-devel
2. AirFlow 설치
export SLUGIFY_USES_TEXT_UNIDECODE=yes
pip install apache-airflow[all]
mkdir /usr/local/airflow
cd /usr/local/airflow
export AIRFLOW_HOME=`pwd`
airflow initdb
# ,
airflow webserver -p 8080
#
airflow scheduler
브라우저 액세스http://ip:8080서비스 시작 성공 여부 보기
3. Systemd 배포
3.1.MySQL 라이브러리 및 사용자 작성
mysql> CREATE DATABASE airflow;
mysql> GRANT all privileges on airflow.* TO 'airflow'@'localhost' IDENTIFIED BY 'airflow';
mysql> FLUSH PRIVILEGES;
3.2.에어플로우 시스템 사용자 만들기
useradd airflow
3.3.구성 수정
vim /usr/local/airflow/airflow.cfg
# [core]
# mysql
sql_alchemy_conn = mysql://airflow:[email protected]:3306/airflow
# Dags
load_examples = False
# [webserver]
#
authenticate = True
# ( )
auth_backend = airflow.contrib.auth.backends.password_auth
#
filter_by_owner = True
3.4.수정/usr/local/airflow 소유자
chown -R airflow:airflow /usr/local/airflow
3.5.시스템 관련 서비스 파일 설정
scripts/systemd
디렉터리에서디렉토리 가져오기
systemd
- /root
cd /root/systemd
airflow
파일vim airflow
구성 바꾸기
AIRFLOW_CONFIG=/usr/local/airflow/airflow.cfg
AIRFLOW_HOME=/usr/local/airflow
airflow-webserver.service
파일 vim airflow-webserver.service
시작 스크립트를 다음과 같이 바꾸기
ExecStart=/bin/sh -c 'source /usr/local/thirdparty/airflow_env/bin/activate && airflow webserver --pid /run/airflow/webserver.pid'
airflow-scheduler.service
파일vim airflow-scheduler.service
시작 스크립트를 다음과 같이 바꾸기
ExecStart=/bin/sh -c 'source /usr/local/thirdparty/airflow_env/bin/activate && airflow scheduler'
airflow-flower.service
파일 vim airflow-flower.service
시작 스크립트를 다음과 같이 바꾸기
ExecStart=/bin/sh -c 'source /usr/local/thirdparty/airflow_env/bin/activate && airflow flower'
airflow-worker.service
파일vim airflow-worker.service
시작 스크립트를 다음과 같이 바꾸기
ExecStart=/bin/sh -c 'source /usr/local/thirdparty/airflow_env/bin/activate && airflow worker'
mkdir /run/airflow
chown -R airflow:airflow /run/airflow
cp airflow /etc/sysconfig/
cp airflow.conf /etc/tmpfiles.d/
cp airflow-*.service /usr/lib/systemd/system/
3.6.초기화db
source /usr/local/thirdparty/airflow_env/bin/activate
cd /usr/local/airflow
export AIRFLOW_HOME=`pwd`
airflow initdb
3.7.사용자 작성
source /usr/local/thirdparty/airflow_env/bin/activate
cd /usr/local/airflow
export AIRFLOW_HOME=`pwd`
vim user_manger.py
다음 내용 복사
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
from airflow import models, settings
from airflow.contrib.auth.backends.password_auth import PasswordUser
class UserManager(object):
def __init__(self):
self.user = models.User()
self.passwd_user = PasswordUser(self.user)
self.session = settings.Session()
def add_user(self, username, passwd, email=None, is_super=False):
self.passwd_user.username = username
self.passwd_user.password = passwd
if email:
self.passwd_user.email = email
if is_super is True:
self.passwd_user.superuser = True
self.session.add(self.passwd_user)
self.session.commit()
def change_passwd(self, username, new_passwd=None, email=None, superuser=None):
if not any([new_passwd, email, superuser]):
return
info = {}
if new_passwd:
self.passwd_user.password = new_passwd
info['password'] = self.passwd_user.password
if email:
info['email'] = email
if superuser is True:
info['superuser'] = True
if superuser is False:
info['superuser'] = False
try:
self.session.query(PasswordUser).filter(PasswordUser.username == username).update(info)
except Exception as e:
pass
else:
self.session.commit()
def __del__(self):
self.session.close()
if __name__ == '__main__':
manager = UserManager()
manager.add_user('admin', 'admin', 'admin@localhost', True)
# manager.change_passwd('admin', 'admin', 'admin@localhost', True)
python user_manger.py
3.8.서비스 시작
systemctl start airflow-webserver.service
systemctl start airflow-scheduler.service
3.9.전원 켜기 부팅 설정
systemctl enable airflow-webserver.service
systemctl enable airflow-scheduler.service
4. 웹 액세스
브라우저 액세스http://ip:8080
admin/admin
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
nginx 역방향 에이전트 설정, 부하 균형 및 nginx 사용 가능1. nginx 역방향 대 리 를 설정 하여 api. 1.1 설치 nginx 1.1.3 홈 페이지 에서 nginx 소스 패 키 지 를 다운로드 하고 압축 을 풀 고 컴 파일 하여 설치 합 니 다. 1.1.4 환경 변...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.