作业调度中心Apache Airflow部署初体验

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 作业调度中心Apache Airflow部署初体验

本文介绍通过离线的方式安装airflow 1.10.9,将安装包上传至服务器。

1.   安装必要的组件

1.1安装gcc

进入dependencies目录,依次执行安装(注意顺序)

1.  rpm -ivh kernel-headers-3.10.0-1062.12.1.el7.x86_64.rpm

2.  rpm -ivh glibc-headers-2.17-292.el7.x86_64.rpm

3.  rpm -ivh glibc-devel-2.17-292.el7.x86_64.rpm  

4.  rpm -ivh mpfr-3.1.1-4.el7.x86_64.rpm

5.  rpm -ivh libmpc-1.0.1-3.el7.x86_64.rpm  

6.  rpm -ivh cpp-4.8.5-39.el7.x86_64.rpm  

7.  rpm -ivh gcc-4.8.5-39.el7.x86_64.rpm  

1.2安装openssl-devel, 依次执行安装(注意顺序)

1.  rpm -ivh libverto-devel-0.2.5-4.el7.x86_64.rpm

2.  rpm -ivh keyutils-libs-devel-1.5.8-3.el7.x86_64.rpm

3.  rpm -ivh libcom_err-devel-1.42.9-16.el7.x86_64.rpm

4.  rpm -ivh libsepol-devel-2.5-10.el7.x86_64.rpm

5.  rpm -ivh krb5-libs-1.15.1-37.el7_7.2.x86_64.rpm  --force

6.  rpm -ivh libkadm5-1.15.1-37.el7_7.2.x86_64.rpm

7.  rpm -ivh pcre-devel-8.32-17.el7.x86_64.rpm

8.  rpm -ivh libselinux-devel-2.5-14.1.el7.x86_64.rpm  

9.  rpm -ivh krb5-devel-1.15.1-37.el7_7.2.x86_64.rpm

10. rpm -ivh zlib-devel-1.2.7-18.el7.x86_64.rpm

11. rpm -ivh openssl-devel-1.0.2k-19.el7.x86_64.rpm  

1.3安装sqlite-devel, 依次执行安装(注意顺序)

1.   rpm -ivh sqlite-3.7.17-8.el7_7.1.x86_64.rpm --force  

2.   rpm -ivh sqlite-devel-3.7.17-8.el7_7.1.x86_64.rpm  

 

1.4安装gcc-c++, 依次执行安装(注意顺序)

1.   rpm -ivh libstdc++-devel-4.8.5-39.el7.x86_64.rpm  

2.   rpm -ivh gcc-c++-4.8.5-39.el7.x86_64.rpm  

1.5安装mysql-devel gcc gcc-devel python-devel, 依次执行安装(注意顺序)

1.   rpm -ivh python-srpm-macros-3-32.el7.noarch.rpm  

2.   rpm -ivh python-rpm-macros-3-32.el7.noarch.rpm  

3.   rpm -ivh python2-rpm-macros-3-32.el7.noarch.rpm  

4.   rpm -ivh python-devel-2.7.5-86.el7.x86_64.rpm  

5.   rpm -ivh mariadb-devel-5.5.64-1.el7.x86_64.rpm  

1.6安装sasl, 依次执行安装(注意顺序)

1.   rpm -ivh cyrus-sasl-2.1.26-23.el7.x86_64.rpm  

2.   rpm -ivh cyrus-sasl-devel-2.1.26-23.el7.x86_64.rpm    

 

2.   安装python3.6.5

2.1编译安装zlib

解压python-3.6.5.tgz,进入Modules/zlib目录

 

1.  #解压  

2.  tar -zxvf Python-3.6.5.tgz  

3.  #进入python-3.6.5/Modules/zlib  

4.  cd Python-3.6.5/Modules/zlib  

5.  #编译安装zlib  

6.  ./configure  

7.  make install  

2.2编译安装python 3.6.5

python3.6.5安装至/usr/local/python3目录

 

1.  #建立目录  

2.  mkdir /usr/local/python3  

3.  #进入Python-3.6.5目录,执行编译安装  

4.  cd Python-3.6.5  

5.  ./configure --prefix=/usr/local/python3 --enable-shared --with-ssl  

6.  make && make install  

 

2.3建立python3pip3的软链

1.  #创建python3的软链  

2.  ln -s /usr/local/python3/bin/python3.6 /usr/bin/python3  

3.  #创建pip3 的软链  

4.  ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3  

2.4添加环境变量

1.  #编辑.bash_profile文件  

2.  vi ~/.bash_profile  

3.  #加入以下内容  

4.  #环境变量,否则会报找不到libpython3.6m.so.1.0  

5.  export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/python3/lib  

6.  #配置airflow需要的环境变量,   

7.  export AIRFLOW_HOME=~/airflow  

8.  export AIRFLOW_GPL_UNIDECODE=yes  

9.  #添加python3的目录,否则无法识别airflow命令  

10.  export PATH=$PATH:/usr/local/python3/bin  

11.  #保存退出,加载环境变量  

12.  source ~/.bash_profile  

测试pip3python3命令,出现如下版本号则安装成功

1.  [root@localhost Python-3.6.5]# pip3 -V  

2.  pip 9.0.3 from /usr/local/python3/lib/python3.6/site-packages (python 3.6)  

3.  [root@localhost Python-3.6.5]# python3  

4.  Python 3.6.5 (default, Feb 28 2020, 22:31:30)  

5.  [GCC 4.8.5 20150623 (Red Hat 4.8.5-39)] on linux  

6.  Type "help", "copyright", "credits" or "license" for more information.  

7.  >>>  


2.5升级pip3的版本

如上图,pip3版本号为9.0.3,版本太低,如不升级会报pip当前版本无效的错误

进入安装包的pip20.0.2目录,执行以下语句:

 

1.  #进入安装包pip20.0.2目录  

2.  cd pip20.0.2  

3.  #安装pip新版本  

4.  pip3 install pip-20.0.2-py2.py3-none-any.whl  

5.  #再次查看版本,已更新为20.0.2  

6.  pip3 -V  

 image.png

3.   安装airflow

3.1安装airflow

进入安装包airflow_1.10.9_all,执行安装

1.  #进入安装包airflow_1.10.9_all目录  

2.  cd airflow_1.10.9_all  

3.  #执行安装  

4.  pip3 install apache-airflow[all] --no-index -f ./  

安装时间会比较长,如出现版本不兼容的报错,可忽略,如出现报错,参考以下方法解决:

报错:

1.  distutils.errors.DistutilsError: Could not find suitable distribution for Requirement.parse('pytest-runner')  

解决方法:

1.  #执行以下命令后,重新执行安装  

2.  pip3 install pytest_runner-5.2-py2.py3-none-any.whl  

报错:

1.  gcc: error trying to exec 'cc1plus': execvp: No such file or directory  

 

解决方法:

 

进入安装包的dependencies目录,按照1.4的方法重新安装gcc-c++,再返回airflow_1.10.9_all目录重新执行安装

 

报错:

1.  distutils.errors.DistutilsError: Could not find suitable distribution for Requirement.parse('Cython!=0.25,<0.30,>=0.20')  

解决方法:

1.  #执行以下命令后,重新执行安装  

2.  pip3 install Cython-0.29.15-cp36-cp36m-manylinux1_x86_64.whl  

注:如还出现其他类似的缺少包的提示,都可使用pip3 install进行安装,所有依赖的包都在airflow_1.10.9目录里,最终出现Successfully installed,表示安装成功。

3.2初始化数据库

1.   #初始化数据库  

2.   airflow initdb  

3.3启动airflow

1.   #启动airflow web  

2.   #指定端口  

3.   airflow webserver -p xxx  

4.   #不指定端口,默认为8080,启动成功后,通过http://x.x.x.x:8080访问  

5.   airflow webserver  

6.   #使用以下命令可使airflow不随窗口关闭而关闭,并将日志输出(追加)到指定目录

7.   nohup airflow webserver >> /airflow.log &

8.   #启动airflow scheduler,必须启动scheduler,否则web界面不更新新的dag等内容,  

9.   airflow scheduler  

image.png

3.4更改数据库为mysql

Airflow默认数据库为SQLite,如需更改数据库为mysql,请修改$AIRFLOW_HOME/airflow.cfg文件,默认在~/airflow/airflow.cfg,加入以下内容

1.  #加入以下语句,格式如下:  

2.  #mysq://[db_username]:[db_password]@[db_host]:[db_port]/[db_name]  

3.  #例:  

4.  sql_alchemy_conn = mysql://root:root@localhost:3306/airflow?charset=utf8  

注:配置完后,重新使用airflow initdb初始化数据库,请提前准备好数据库及设置访问权限

 

3.5 中文化

进入airflow_1.10.9_all目录,安装Flask-BabelExPyMySQL

 

1.  pip3 install Flask_BabelEx-0.9.4-py3-none-any.whl  

2.  pip3 install PyMySQL-0.9.3-py2.py3-none-any.whl  

 

修改配置文件,~/airflow/airflow.cfg

 

1.  #修改时区

2.  default_timezone = Asia/Shanghai  

3.  #不加载示例

4.  load_examples = False

将汉化包里的文件替换/usr/local/python3/lib/python3.6/site-packages/airflow目录里的文件,再重新始初化数据库,重新启动服务

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
1月前
|
消息中间件 监控 数据可视化
Apache Airflow 开源最顶级的分布式工作流平台
Apache Airflow 是一个用于创作、调度和监控工作流的平台,通过将工作流定义为代码,实现更好的可维护性和协作性。Airflow 使用有向无环图(DAG)定义任务,支持动态生成、扩展和优雅的管道设计。其丰富的命令行工具和用户界面使得任务管理和监控更加便捷。适用于静态和缓慢变化的工作流,常用于数据处理。
Apache Airflow 开源最顶级的分布式工作流平台
|
2月前
|
数据处理 Apache 数据库
将 Python UDF 部署到 Apache IoTDB 的详细步骤与注意事项
【10月更文挑战第21天】将 Python UDF 部署到 Apache IoTDB 中需要一系列的步骤和注意事项。通过仔细的准备、正确的部署和测试,你可以成功地将自定义的 Python UDF 应用到 Apache IoTDB 中,为数据处理和分析提供更灵活和强大的支持。在实际操作过程中,要根据具体情况进行调整和优化,以确保实现最佳的效果。还可以结合具体的代码示例和实际部署经验,进一步深入了解和掌握这一过程。
28 2
|
4月前
|
SQL 运维 分布式计算
Apache Flink 实践问题之避免用户作业包中包含Flink的core包如何解决
Apache Flink 实践问题之避免用户作业包中包含Flink的core包如何解决
51 1
Apache Flink 实践问题之避免用户作业包中包含Flink的core包如何解决
|
4月前
|
关系型数据库 MySQL 应用服务中间件
win7系统搭建PHP+Mysql+Apache环境+部署ecshop项目
这篇文章介绍了如何在Windows 7系统上搭建PHP、MySQL和Apache环境,并部署ECShop项目,包括安装配置步骤、解决常见问题以及使用XAMPP集成环境的替代方案。
57 1
win7系统搭建PHP+Mysql+Apache环境+部署ecshop项目
|
3月前
|
Linux Apache 数据安全/隐私保护
kali向Apache上部署网页
kali向Apache上部署网页
119 5
|
4月前
|
分布式计算 Serverless 数据处理
EMR Serverless Spark 实践教程 | 通过 Apache Airflow 使用 Livy Operator 提交任务
Apache Airflow 是一个强大的工作流程自动化和调度工具,它允许开发者编排、计划和监控数据管道的执行。EMR Serverless Spark 为处理大规模数据处理任务提供了一个无服务器计算环境。本文为您介绍如何通过 Apache Airflow 的 Livy Operator 实现自动化地向 EMR Serverless Spark 提交任务,以实现任务调度和执行的自动化,帮助您更有效地管理数据处理任务。
219 0
|
4月前
|
存储 Ubuntu 应用服务中间件
如何在 Ubuntu 14.04 上使用 Passenger 和 Apache 部署 Rails 应用
如何在 Ubuntu 14.04 上使用 Passenger 和 Apache 部署 Rails 应用
26 0
|
4月前
|
关系型数据库 Linux 网络安全
"Linux系统实战:从零开始部署Apache+PHP Web项目,轻松搭建您的在线应用"
【8月更文挑战第9天】Linux作为服务器操作系统,凭借其稳定性和安全性成为部署Web项目的优选平台。本文以Apache Web服务器和PHP项目为例,介绍部署流程。首先,通过包管理器安装Apache与PHP;接着创建项目目录,并上传项目文件至该目录;根据需要配置Apache虚拟主机;最后重启Apache服务并测试项目。确保防火墙允许HTTP流量,正确配置数据库连接,并定期更新系统以维持安全。随着项目复杂度提升,进一步学习高级配置将变得必要。
372 0
|
6月前
|
Java 应用服务中间件 Apache
安装和配置Apache Tomcat是部署Java Web应用程序的常见任务
安装和配置Apache Tomcat是部署Java Web应用程序的常见任务
160 7
|
6月前
|
监控 数据处理 调度
使用Apache Airflow进行工作流编排:技术详解与实践
【6月更文挑战第5天】Apache Airflow是开源的工作流编排平台,用Python定义复杂数据处理管道,提供直观DAGs、强大调度、丰富插件、易扩展性和实时监控。本文深入介绍Airflow基本概念、特性,阐述安装配置、工作流定义、调度监控的步骤,并通过实践案例展示如何构建数据获取、处理到存储的工作流。Airflow简化了复杂数据任务管理,适应不断发展的数据技术需求。
1262 3

推荐镜像

更多