前言:
目前小伙伴们对“centos69u盘4g”大约比较注意,咱们都需要分析一些“centos69u盘4g”的相关资讯。那么小编同时在网络上搜集了一些有关“centos69u盘4g””的相关内容,希望小伙伴们能喜欢,姐妹们快快来学习一下吧!作者:李继武
1.文档编写目的
Airflow是一款纯Python编写的任务流调度工具,airflow由许多模块组成,用户可单独安装部分模块比如pip install 'apache-airflow[celery]',pip install 'apache-airflow[hdfs]'等,也可以安装所有的模块pip install 'apache-airflow[all]',下面我们首先介绍的是如何在一台新安装的纯净的RedHat7.4上离线安装apache-airflow[all]。
安装过程中需单独安装的Python依赖包可在如下网站中下载:
内容概述
1. Airflow安装流程
2. 总结
安装环境
1. RedHat7.4
2. Python2.7
3. Airflow1.10.1
2.Airflow安装流程
1. Airflow既支持Python2安装,同时也支持Python3安装,但后面介绍的自动生成DAG文件的插件只支持在Python2下使用,因此此处使用系统自带的Python2.7来安装。
2. 在离线的节点上安装Airflow需要在能联网的机器上下载安装包,先通过如下命令在能联网的节点上下载Airflow的安装包。
export SLUGIFY_USES_TEXT_UNIDECODE=yesmkdir airflow-pkgcd airflow-pkg/pip download apache-airflow[all]
下载完毕后将airflow-pkg打包
tar -cvf airflow-pkg.tar airflow-pkg
3. 准备新节点
挂载系统镜像作为本地yum源
mkdir -p /mnt/cdrommount -t auto /dev/cdrom /mnt/cdromrm -rf /etc/yum.repos.d/mkdir /etc/yum.repos.d
添加repo文件:
[centos7-local]name=Centos 7.0baseurl=
RedHat7.4中不包含有pip工具,需要手动下载安装
上传并解压
执行如下命令安装
cd setuptools-40.8.0python setup.py installcd ../pip-19.0.3python setup.py install
4. 上传Mysql5.7的安装包以及在联网节点上下载的Airflow安装包
mysql安装包中包含如下rpm文件
5. 安装mysql
yum localinstall mysql-community-5.7-el7/*.rpm
修改文件my.cnf,在[mysqld]下添加如下配置
explicit_defaults_for_timestamp=1
启动mysql,并设置开机自启动
systemctl enable mysqldsystemctl start mysqld
查找临时密码
grep 'temporary password' /var/log/mysqld.log
修改密码
mysql_secure_installation
登录Mysql并创建数据库airflow
mysql -uroot -pcreate database airflow;
6. 安装需要的依赖
yum -y install gccyum install -y gcc-c++yum install -y cyrus-sasl-lib.x86_64 cyrus-sasl-devel.x86_64 libgsasl-devel.x86_64 yum -y install python-develyum -y install krb5-devel
7. 解压Airflow安装包并安装
tar -xvf airflow-pkg.tar
除了这个安装包之外还要下载以下的依赖安装包,将其放在一同放在airflow-pkg目录下
wheel-0.33.1-py2.py3-none-any.whlpytest_runner-4.4-py2.py3-none-any.whlCython-0.29.7-cp27-cp27mu-manylinux1_x86_64.whl
执行如下命令进行安装
cd airflow-pkgpip install docutils-0.14-py2-none-any.whlpip install pytest_runner-4.4-py2.py3-none-any.whlpip install Cython-0.29.7-cp27-cp27mu-manylinux1_x86_64.whlpip install apache-airflow[all] --no-index -f ../airflow-pkg
8. 配置Airflow,首先先配置airflow的家目录,家目录用于存放airflow的配置文件、DAG文件、日志文件以及插件等。不配置的话默认是/root/airflow,此处将其改为/opt/airflow目录。
在/etc/profile文件下添加
export AIRFLOW_HOME=/opt/airflow
刷新环境变量。
9. 初始化Airflow
airflow initdb
在AIRFLOW_HOME目录下生成了airflow.cfg文件
修改airflow.cfg文件中的如下配置项:
executor=LocalExecutor#更换元数据库为Mysqlsql_alchemy_conn = mysql://用户:密码@127.0.0.1:3306/airflow
10. 修改时区为上海时区
先修改airflow.cfg中的时区为Asia/Shanghai
修改/usr/lib/python2.7/site-packages/airflow/utils/timezone.py文件:
修改utcnow()函数 (在第69行):
原代码 d = dt.datetime.utcnow() 修改为 d = dt.datetime.now()
在utc = pendulum.timezone('UTC')这句代码(第27行)下添加如下代码:
from airflow import configuration as conftry: tz = conf.get("core", "default_timezone") if tz == "system": utc = pendulum.local_timezone() else: utc = pendulum.timezone(tz)except Exception: pass
修改/usr/lib/python2.7/site-packages/airflow/utils/sqlalchemy.py
在utc = pendulum.timezone('UTC')这句代码(第27行)下添加如下代码:
from airflow import configuration as conftry: tz = conf.get("core", "default_timezone") if tz == "system": utc = pendulum.local_timezone() else: utc = pendulum.timezone(tz)except Exception: pass
修改/usr/lib/python2.7/site-packages/airflow/www/templates/admin/master.html第31行:var UTCseconds = (x.getTime() + x.getTimezoneOffset()*60*1000); 改为 var UTCseconds = x.getTime();第34行:"timeFormat":"H:i:s %UTC%",改为 "timeFormat":"H:i:s",
11. 重新初始化Airflowairflow initdb
12. 启动nohup airflow webserver $* >> $AIRFLOW_HOME/logs/webserver.logs &nohup airflow scheduler >> $AIRFLOW_HOME/logs/scheduler.logs &关闭防火墙systemctl stop firewalldsystemctl disable firewalld在浏览器上通过8080端口查看:http://节点ip:8080
默认会加载示例DAG,将airflow.cfg中配置load_examples = False可不加载这些示例。
3.总结
1. 在离线环境下安装Airflow相对复杂,需要先在联网环境下下载依赖,且依赖较多。
2. 目前Airflow本身并不提供界面化的设计方式,后面会介绍一个DAG生成插件来帮助我们设计DAG
标签: #centos69u盘4g