大数据集群运维(64)Airflow安装教程
发布日期:2021-05-14 00:18:25 浏览次数:17 分类:博客文章

本文共 7104 字,大约阅读时间需要 23 分钟。

1.������������

CentOS-6.5Python-2.7.12setuptools-29.0.1pip-9.0.1

2.������Python

sudo yum install -y gccsudo yum install -y gcc-c++sudo yum install -y wgetsudo yum install -y mysqlsudo yum install -y mysql-develsudo yum install -y python-develsudo yum install -y zlib-develsudo yum install -y openssl-develsudo yum install -y sqlite-develwget https://www.python.org/ftp/python/2.7.12/Python-2.7.12.tgzsudo mkdir /usr/local/python27sudo tar zxfv Python-2.7.12.tgz -C /usr/local/cd /usr/local/Python-2.7.12/./configure --prefix=/usr/local/python27makemake installsudo mv /usr/bin/python /usr/bin/python2.6sudo ln -sf /usr/local/python/bin/python /usr/bin/python2.7vim /usr/bin/yum#!/usr/bin/python2.6vim /etc/profileexport PYTHON_HOME=/usr/bin/python2.6export PATH=$PYTHON_HOME/bin:$PATHwget https://pypi.python.org/packages/59/88/2f3990916931a5de6fa9706d6d75eb32ee8b78627bb2abaab7ed9e6d0622/setuptools-29.0.1.tar.gz#md5=28ecfd0f2574b489b9a18343879a7324tar zxfv setuptools-29.0.1.tar.gzcd setuptools-29.0.1python setup.py installwget https://pypi.python.org/packages/11/b6/abcb525026a4be042b486df43905d6893fb04f05aac21c32c638e939e447/pip-9.0.1.tar.gz#md5=35f01da33009719497f01a4ba69d63c9tar zxfv pip-9.0.1.tar.gzcd pip-9.0.1python setup.py installpip install --upgrade pipwget https://pypi.python.org/packages/a5/e9/51b544da85a36a68debe7a7091f068d802fc515a3a202652828c73453cad/MySQL-python-1.2.5.zip#md5=654f75b302db6ed8dc5a898c625e030cunzip MySQL-python-1.2.5.zipcd MySQL-python-1.2.5python setup.py install#������������ /usr/local/python27/lib/python2.7/site-packages

3.������

    airflow������pip������������������������������������

# airflow needs a home, ~/airflow is the default,# but you can lay foundation somewhere else if you prefer# (optional)export AIRFLOW_HOME=/usr/local/airflow# install from pypi using pippip install airflowpip install airflow[hive]# initialize the databaseairflow initdb# start the web server, default port is 8080airflow webserver -p 8080

4.������mysql���������������

#���������������mysql���������sudo yum install -y mysqlsudo yum install -y mysql-develCREATE USER airflow;CREATE DATABASE airflow;CREATE DATABASE celery_result_airflow;GRANT all privileges on airflow.* TO 'airflow'@'%' IDENTIFIED BY 'airflow';GRANT all privileges on celery_result_airflow.* TO 'airflow'@'%' IDENTIFIED BY 'airflow';#������mysql������wget https://pypi.python.org/packages/a5/e9/51b544da85a36a68debe7a7091f068d802fc515a3a202652828c73453cad/MySQL-python-1.2.5.zip#md5=654f75b302db6ed8dc5a898c625e030cunzip MySQL-python-1.2.5.zipcd MySQL-python-1.2.5python setup.py install#���airflow������������������������mysql������������������������sudo vi $AIRFLOW_HOME/airflow.cfg#������������������������sql_alchemy_conn = mysql://airflow:airflow@localhost:3306/airflow#���������������������������dialect+driver://username:password@host:port/database#���������������������airflow initdb#������������������airflow resetdb

5.������������������

#������password������pip install airflow[password]#���airflow������������������������������������sudo vi $AIRFLOW_HOME/airflow.cfg[webserver]authenticate = Truefilter_by_owner = Trueauth_backend = airflow.contrib.auth.backends.password_auth

���������������������������������������������������������

import airflowfrom airflow import models, settingsfrom airflow.contrib.auth.backends.password_auth import PasswordUseruser = PasswordUser(models.User())user.username = 'quzhengpeng'user.email = 'quzhengpeng@163.com'user.password = 'quzhengpeng'session = settings.Session()session.add(user)session.commit()session.close()exit()

5.������������������

    ������������������������������������Airflow���������������������������������������������������������������${AIRFLOW_HOME}/dags������web UI ���������������������������������

airflow scheduler

6.������web������

#������web������airflow webserver -p 8080#������CentOS6������������sudo service iptables stop#������CentOS6���SELinuxsetenforce 0#������CentOS7������������systemctl stop firewalld.service#������firewall������������systemctl disable firewalld.service

 

Celery+MySQL

#Celery������ http://docs.jinkan.org/docs/celery/index.html#Celery4.0.0���airflow���������������������������������Celery3pip install -U Celery==3.1.24pip install airflow[celery]

������������������

vi airflow.cfg[core]executor = CeleryExecutor[celery]broker_url = sqla+mysql://airflow:airflow@localhost:3306/airflowcelery_result_backend = db+mysql://airflow:airflow@localhost:3306/airflow

������airflow

airflow webserver -p 8080airflow scheduler#������root������������airflow worker#������Celery WebUI ������celery������airflow flower http://localhost:5555/

 

Celery+RabbitMQ

wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.5/rabbitmq-server-3.6.5-1.noarch.rpm#������RabbitMQ������������yum install erlangyum install socat#���������������rabbitmq���yum��� sudo yum install -y rabbitmq-serverrpm -ivh rabbitmq-server-3.6.5-1.noarch.rpm

������RabbitMQ������

#������rabbitmq������sudo service rabbitmq-server start #������sudo rabbitmq-server#������ -detached ������������������������������������������������������������������sudo rabbitmq-server -detached#������������������rabbitmq������chkconfig rabbitmq-server on#��������������� kill ������ RabbitMQ ��������������������������� rabbitmqctl ������sudo rabbitmqctl stop

������RabbitMQ

#������������RabbitMQ������rabbitmqctl add_user airflow airflow#������������RabbitMQ������������rabbitmqctl add_vhost vairflow#���������������������admin���������rabbitmqctl set_user_tags airflow admin#������������������������������������������rabbitmqctl set_permissions -p vairflow airflow ".*" ".*" ".*"# no usagerabbitmq-plugins enable rabbitmq_management

������airflow������������������Celery

vi $AIRFLOW_HOME/airflow/airflow.cfg#������Executor���CeleryExecutorexecutor = CeleryExecutor#������broker_urlbroker_url = amqp://airflow:airflow@localhost:5672/vairflowFormat explanation: transport://userid:password@hostname:port/virtual_host#������celery_result_backendcelery_result_backend = amqp://airflow:airflow@localhost:5672/vairflowFormat explanation: transport://userid:password@hostname:port/virtual_host

������airflow���celery���rabbitmq������

pip install airflow[celery]pip install airflow[rabbitmq]

 

airflow������DAG(Directed Acyclic Graph,������������������)���������������������

#������DAGfrom datetime import datetime, timedeltafrom airflow.models import DAGargs = {    'owner': 'airflow',    'start_date': seven_days_ago,    'email': ['airflow@airflow.com'],    'email_on_failure': True,    'email_on_retry': True,    'retries': 3,    'retries_delay': timedelta(seconds=60),    'depends_on_past': True}dag = DAG(    dag_id='dag',    default_args=args,    schedule_interval='0 0 * * *',    dagrun_timeout=timedelta(minutes=60))

������������������������������DAG���

from airflow.operators.bash_operator import BashOperatorfrom airflow.operators.dummy_operator import DummyOperatordemo = DummyOperator(    task_id='demo',    dag=dag)last_execute = BashOperator(    task_id='last_execute',    bash_command='echo 1',    dag=dag)

���������������������������

demo.set_downstream(last_execute)
 
上一篇:Java从入门到实战之(28)Java 目录操作之练习
下一篇:Java从入门到实战之(27)Java 文件操作之练习

发表评论

最新留言

逛到本站,mark一下
[***.202.152.39]2025年04月28日 07时09分53秒