Airflow 调度框架 安装经验分享 单节点

Airflow安装详解(附airflow.cfg配置详解) 标题: Airflow安装详解 日期: 2021-11-16 21:27:21 标签: [airflow] 分类: 调度系统 在讲airflow安装之前,我们先来了解下airflow的架构,这有助于我们去理解安装的步骤到底是干嘛的。 来看这篇文章:airflow架构 我讲的airflow是1.10.14版本的哈。 所以,如果我们搭建airflow是做大量的任务调度,那么就推荐元数据库使用mysql/postgresql,消息队列使用redis/rabbitmq。 我以mysql和rabbitmq为例来. 阅读详情

crontab定时任务不利于平时的监控,决定使用一种新的调度框架

1.安装依赖
# 避免连接密码以明文形式存储
pip3 install cryptography
pip3 install paramiko

#  AttributeError: module 'enum' has no attribute 'IntFlag'
pip3 uninstall enum34

pip3 install celery
pip3 install redis
pip3 install dask
yum install mysql-devel
pip3 install mysqlclient
pip3 install apache-airflow
# 避免产生大量日志
cd /usr/local/lib/python3.7/site-packages/airflow
vim settings.py
# LOGGING_LEVEL = logging.INFO
LOGGING_LEVEL = logging.WARN
2.配置环境变量
# vim /etc/profile
# 指定airflow工作目录,airflow的工作目录默认在当前用户目录下
export AIRFLOW_HOME=/usr/local/airflow
 
# source /etc/profile
3.第一次初始化airflow
airflow initdb

# 查看其生成文件
cd /usr/local/airflow
ls
airflow.cfg  airflow.db  logs  unittests.cfg
4.配置MySQL数据库(创建airflow数据库,并赋予 airflow用户访问该数据库的权限)
CREATE DATABASE airflow;

# 注意这里如果密码不是设置为airflow,需要修改airflow.cfg里面的broker_url,result_backend
grant all PRIVILEGES on airflow.* to airflow@'localhost' identified by 'airflow_123';

FLUSH PRIVILEGES;
5.更改MySQL配置
# 更改MySQL配置
Exception: Global variable explicit_defaults_for_timestamp needs to be on (1) for mysql

vim /etc/my.cnf
[mysqld]
explicit_defaults_for_timestamp=1

# 重启mysql
service mysqld restart
6.修改airflow配置
vim airflow/airflow.cfg
# 修改默认时区,不然web界面显示的时间不是国内的时间
# default_timezone = utc
default_timezone = Asia/Shanghai


# 修改执行器类型
executor = CeleryExecutor

# 不加载范例dag
load_example = False

# 不让同个dag并行操作,在ETL过程中,还是线性执行会比较好控制,如果里面需要批量操作,可以在ETL的具体处理过程中加入多线程或者多进程方式执行,不要在dag中体现
max_active_runs_per_dag = 1

# 最高的dag并发数量,一般配置成服务器的CPU核数,默认16也没问题
dag_concurrency = 16

# 最高的任务并发数量,CeleryExecutor在Airflow的worker线程中执行的,这里配置的是启动多少个worker
worker_concurrency = 16

# 数据库配置,我们一般是用MySQL来配合Airflow的运行
# 这里之前使用pymysql导致scheduler 无法在后台运行
sql_alchemy_conn = mysql://airflow:airflow_123@127.0.0.1:3306/airflow?charset=utf8

# 我的redis密码也是airflow_123
# Celery Broker 默认配置中两个redis配置被分到两个redis区
broker_url = redis://:airflow_123@127.0.0.1:6379/0

# Celery Result backend 默认配置中两个redis配置被分到两个redis区
result_backend = redis://:airflow_123@127.0.0.1:6379/1
7.修改为中国时间
cd /usr/local/lib/python3.7/site-packages/airflow
cd utils/
vim timezone.py
# 第一处修改
# 在 utc = pendulum.timezone(‘UTC’) 这行(第27行)代码下添加
from airflow import configuration as conf
try:
	tz = conf.get("core", "default_timezone")
	if tz == "system":
		utc = pendulum.local_timezone()
	else:
		utc = pendulum.timezone(tz)
except Exception:
	pass

# 第二处修改
def utcnow():
    """
    Get the current date and time in UTC
    :return:
    """

    # pendulum utcnow() is not used as that sets a TimezoneInfo object
    # instead of a Timezone. This is not pickable and also creates issues
    # when using replace()
    #d = dt.datetime.utcnow()
    # 修改为:
    d = dt.datetime.now()
    d = d.replace(tzinfo=utc)
    return d
    
# 第三处修改
vim sqlalchemy.py
# 在utc = pendulum.timezone(‘UTC’) 这行(第37行)代码下添加
from airflow import configuration as conf
try:
	tz = conf.get("core", "default_timezone")
	if tz == "system":
		utc = pendulum.local_timezone()
	else:
		utc = pendulum.timezone(tz)
except Exception:
	pass
	
# 第四处修改
# 注释airflow/utils/sqlalchemy.py中的 (第124行)
# cursor.execute(“SET time_zone = ‘+00:00’”)

# 第五处修改
# 修改airflow/www/templates/admin/master.html(第31行)
# var UTCseconds = (x.getTime() + x.getTimezoneOffset()*60*1000); 
var UTCseconds = x.getTime();

# 第六处修改
#"timeFormat":"H:i:s %UTC%",
"timeFormat":"H:i:s",

8.再次初始化airflow
airflow initdb
9.运行 由于使用的是CeleryExecutor,需要顺序执行三个进程
airflow webserver -D
airflow scheduler -D
airflow worker -D
10.验证

在这里插入图片描述

10.1 The scheduler does not appear to be running. Last heartbeat was received 45 seconds ago.
The DAGs list may not update, and new tasks will not be scheduled.

解决方法:
scheduler 没有起来,查看一下scheduler的日志

10.2 AttributeError: module ‘enum’ has no attribute ‘IntFlag’

pip uninstall enum34

10.3 界面显示,安装成功
在这里插入图片描述

参考:https://baijiahao.baidu.com/s?id=1647375438415223701&wfr=spider&for=pc
参考:https://blog.youkuaiyun.com/crazy__hope/article/details/83688986

airflow调度使用心得 从第一次接触airflow到生产投产使用已经有近两个月的时间了,从部署到开发到运维调优,期间也遇到各种各样的问题,自己也从听说到熟悉。这篇博客主要从三个方面着手。 一、安装部署airflow 调度工具airflow安装使用 一、安装airflow 1.环境准备: 1.1.安装mysql数据库 解压 mariadb包: tar -xzvf mariadb-10.2.14-linux-x86_64.t... 阅读详情

相关推荐

如何部署一个健壮的 apache-airflow 调度系统

之前介绍过的 apache-airflow 系列文章 任务调度神器 airflow 之初体验 airflow 安装,部署,填坑 airflow 配置 CeleryExecutor 介绍了如何安装、配置、及使用,接下来介绍如何在跨多个节点来安装部署 apache-airflow: 本文主要介绍以下几点: airflow 的守护进程 airflow 单节点部署 airflow 多节点(集群)部署 ...

somezz的专栏 1万+

airflow start_date schedule_interval启动时间

airflow dags文件airflow.py更新dagid后要重新 airflow initdb 错误:The scheduler does not appear to be running. Last heartbeat was received 3 d 需要重新执行airflow scheduler start_date 开始时间 参考:https://blog.csdn.net/OldDirverHelpMe/article/details/106843857 Airflow调度程序的时候第一

weixin_42357472的博客 3404

Airflow:工作流调度的原理与使用指南

Airflow 使用 Python 的 DAGs(Directed Acyclic Graphs,有向无环图)来定义工作流。DAGs 是一系列相互依赖的任务(tasks),它们按照特定的顺序执行。每个任务都可以是任何你想要执行的代码,例如 SQL 查询、Python 函数调用或 API 调用等。

Aaron_945的博客 4936

Apache Airflow2.0.2 遇到的问题及解决方案

Airflow2.0.2 问题及解决方案 a.测试运行期间发现 airflow scheduler 由于 mysql deadlock 而挂掉的问题 _mysql_exceptions.OperationalError: (1213, 'Deadlock found when trying to get lock; try restarting transaction') 看了下若干的issue,感觉mysql对airflow scheduler的支持不够好,且考虑到后面要部署多个schedule

Young2018的博客 3955

ETL调度Airflow安装部署篇

ETL是数据分析不可缺少的一环,对于ETL的调度管理也是至关重要的。 一个好的ETL调度平台应该具备以下优点: 作业集成管理 运行监控(WEB监控) 异常警告(邮件及短信) 日志可查看 后台调度 系统配置 作业执行情况分析界面 探索中发现了ETL调度平台——airflow。airflow 是一个编排、调度和监控workflow的平台,由Airbnb开源,现在在Apache Soft...

cico 1534

Airflow调度-MysqlOperator

一个对mysql数据库表的操作的调度: 这里用到了BashOperator和MySqlOperator # -*- coding: utf-8 -*- import airflow from airflow import DAG from airflow.operators.mysql_operator import MySqlOperator from datetime import ti...

cico 2857

airflow 在 docker 中的安装与使用

文章目录airflow 在 docker 中的安装与使用简介airflow 镜像环境变量配置信息dagspip 包的安装挂载目录部署airflow.cfg 配置文件修改示例加载邮件时区登录配置其他配置信息目录结构与文件.envDockerfiledocker-compose.yaml启动查看 dags 信息扩展钉钉机器人报警邮箱报警异常出现AttributeError: module ‘typing‘ has no attribute ‘_ClassVar‘错误airflow.cfg airflow 在 d

fwzzzzz的博客 6162

大数据调度平台Airflow(八):Airflow分布式集群搭建及测试

目录 Airflow分布式集群搭建及测试 一、节点规划 二、airflow集群搭建步骤 1、在所有节点安装python3.7 2、在所有节点上安装airflow 三、初始化Airflow 1、每台节点安装需要的python依赖包 2、在node1上初始化Airflow 数据库 四、​​​​​​​创建管理员用户信息 五、​​​​​​​配置Scheduler HA 1、下载failover组件 2、使用pip进行安装failover需要的依赖包 3、node1节点初始化failover

Lansonli(蓝深李)的博客 1万+

httpd does not appear to be running and proxying cobbler, or SELinux is in t

setenforce 0(执行即可)

AinUser的博客 1969

实战分享:如何用Jetson Nano+HM30图传搭建低空YOLOv5检测系统(附VNC避坑指南)

本文详细介绍了如何利用Jetson Nano和HM30图传搭建低空YOLOv5检测系统,重点解决了无人机应用中的硬件连接和VNC延迟优化问题。通过对比WiFi直连与图传方案的优劣,提供了网络配置、VNC优化及YOLOv5模型加速的实战技巧,帮助开发者实现高效稳定的低空目标检测系统。

weixin_29174385的博客 110

驯服电源尖峰:从BUCK/BOOST环路剖析到高di/dt噪声的实战抑制

本文深入探讨了电源系统中高di/dt噪声的产生机制及抑制方法,通过BUCK/BOOST电路的环路分析,揭示了电流路径不连续导致的电压尖峰问题。文章提供了实用的PCB布局技巧和噪声抑制策略,包括最短回路原则、铺铜优化和过孔阵列战术,帮助工程师有效降低EMI噪声,提升电源系统的稳定性。

weixin_29587015的博客 275

Airflow任务流调度

Airflow的调度依赖于crontab命令,与crontab相比,Airflow可以方便地查看任务的执行状况(执行是否成功、执行时间、执行依赖等),可追踪任务历史执行情况,任务执行失败时可以收到邮件通知、查看错误日志。在Airflow中,简单地说,task脚本是需要被一个个调起执行的脚本,DAG脚本是管理task脚本执行顺序、执行触发条件的。在Tree View模块可以查看当前DAG每个task任务的调度状态,是执行成功、正在执行、执行失败还是等待执行等,便于快速定位到执行失败的任务,重新调启执行。

datacreating的博客 3487

QNX侧触摸屏(TP)Bringup流程与源码深度解析

QNX侧TP Bringup的核心在于构建。

QQ_778132974的博客 477

airflow调度框架

airflow调度框架1.认识大数据1.1、什么是大数据1.2、大数据分析应用场景2.任务调度相关概念2.1、什么是任务调度2.1.1、任务调度:实现执行程序的、规范化、自动化、可视化、集中化、统一调度和监控,让所有任务有序、高效运行,降低开发和运维成本。2.1.2、分布式任务调度:任务的分布式处理,多台服务器同时处理任务的调度和监控,体现分布式思想特点:主从节点、容错、负载均衡、高可用。2.2、任务调度应用场景2.2.1、流行且开源的分布式任务调度框架。2.2.2、国内开源的分布式任务调度框架。2.2.3

梁增国的博客 1553

8.5华为OD机试真题 新系统 - 最长不连续子串 (Java/Py/C/C++/Js/Go)

8.5华为OD机试真题 新系统 - 最长不连续子串 (Java/Py/C/C++/Js/Go)

算法大师! 629

7、PPG信号处理与质量评估

本文详细介绍了PPG信号的处理与质量评估方法,包括信号滤波技术(如卷积和互相关)、滤波器选择、信号质量指标(SQI)的定义与应用,以及标注一致性的评估。同时,提供了MATLAB代码示例和操作步骤,并分析了不同指标的优势与适用场景,旨在提高PPG信号在诊断和监测中的准确性与可靠性。

salt的博客 254

分布式任务调度框架airflow介绍

airflow Airflow是一个分布式任务调度框架,可以把具有上下级依赖关系的工作流组装成一个有向无环图; 有向无环图长得就如下一般: 说的云里雾里的,那么Airflow究竟是什么呢?简单说,airflow就是一个平台,你可以在这个平台上创建、管理、执行自定义的工作流,这里的工作流就是前面所说的有向无环图,如上图所示一样,有向无环图是由一系列单独运行的task组合而成,任务之间的前后排列取决于任务之间处理的关系或者数据的流转的方向,而这里的工作流有一个很专业的名字叫DAG(Directed Acycl.

Marionxue 7048

ros入门(八)---TF坐标转换

TF(TransForm),就是坐标转换,包括了位置和姿态两个方面的变换。

weixin_51157015的博客 3389

Airflow:深入理解Apache Airflow 调度器

Apache Airflow 调度器是管理dag中任务执行的中心组件。它监视任务的状态,并根据它们的依赖关系和调度需求协调它们的执行。调度器负责在满足其依赖项时触发任务,并在任务失败时管理重试。它还处理任务的回填,并确保您的数据管道高效可靠地运行。Airflow 调度器工作机制解析DAG:调度程序定期扫描DAG目录,解析DAG文件,并使用DAG结构和任务信息更新元数据数据库。评估任务实例:调度程序检查任务实例的状态,以确定它们是否应该根据它们的依赖关系和调度约束执行。

neweastsun的专栏 1996

RPA与旅游与酒店行业自动化实战案例

1. 背景介绍 1.1 旅游与酒店行业的挑战 旅游与酒店行业是一个高度竞争的市场,企业需要不断提高服务质量、降低成本、提高效率以保持竞争力。在这个过程中,企业面临着诸多挑战,如客户需求多样化、市场变化快速、人力资源成本高昂等。为了应对这些挑战,企业需要寻求新的技术手段来提高运营效率。

AI天才研究院 615

海康DS-7604N-K1/RTB固件包

【摘要】海康DS-7604N-K1/RTB萤石云设备发布V4.30.091版本升级程序(2022.09.19),仅适用于指定型号。升级前需先升级至V3.4.106基础版本,刷机会重置设备为未激活状态,需重新设置admin密码。该机型支持密码/手势登录,无密码时可通过U盘升级。注意事项:升级存在风险,需确认程序适用性;升级过程严禁断电;必须阅读压缩包内的刷机说明。此为定制机型,非必要不建议升级。(150字)

海康威视技术支持 1577

Airflow教程-使用Airflow实现ETL调度

一、Airflow是什么 airflow 是一个编排、调度和监控workflow的平台,由Airbnb开源,现在在Apache Software Foundation 孵化。airflow 将workflow编排为由tasks组成的DAGs(有向无环图),调度器在一组workers上按照指定的依赖关系执行tasks。同时,airflow 提供了丰富的命令行工具和简单易用的用户界面以便用户...

weixin_30522183的博客 2864

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Airflow【部署 01】调度和监控工作流工具Airflow官网Quick Start实操(一篇学会部署Airflow)

调度和监控工作流工具Airflow官网Quick Start实操(一篇学会部署Airflow)

Java与大数据相关实践内容分享! 2074

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Airflow简介

1、什么是Airflow Airflow 是一个 Airbnb 的 Workflow 开源项目,使用Python编写实现的任务管理、调度、监控工作流平台。Airflow 是基于DAG(有向无环图)的任务管理系统,可以简单理解为是高级版的crontab,但是它解决了crontab无法解决的任务依赖问题。与crontab相比Airflow可以方便查看任务的执行状况(执行是否成功、执行时间、执行依 赖等),可追踪任务历史执行情况,任务执行失败时可以收到邮件通知,查看错误日志。 2、Airflow与同类产品的

fighting 3万+

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

任务流调度工具AirFlow

目标了解AirFlow的功能特点及应用场景路径step1:背景step2:设计step3:功能step4:特点step5:应用实施起源2014年,Airbnb创造了一套工作流调度系统:Airflow,用来替他们完成业务中复杂的ETL处理。从清洗,到拼接,只用设置好一套Airflow的流程图。2016年开源到了Apache基金会。2019年成为了Apache基金会的顶级项目:http://airflow.apache.org/。设计。

黑马程序员官方博客 3949

大数据调度平台Airflow(五):Airflow使用

以上python文件就是Airflowpython脚本,使用代码方式指定DAG的结构。

lisheng19870305的专栏 1万+
上一篇: golang 交换两个整数值
下一篇: 利用shell脚本清除docker已经退出的容器, 没有在使用的docker镜像以及docker容器中程序产生的日志
Cocktail_py
博客等级 码龄9年 8819粉丝 191原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Cocktail_py

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值