大数据调度平台 Airflow(三):Airflow 单机搭建

【Airflow】光速入门指南 Airflow中最为关键的概念就是DAG,中文名称是有向无环图(Directed Acyclic Graph)一个DAG代表着一个较为完整的流程,其中的组成部分是执行不同步骤的Task。如果说DAG是一条珍珠项链,那么TASK就是其中的珍珠。珍珠项链可以有不同的形态、数量和组合方式,DAG和TASK也是同理。#方式一:类的实例化test_task = PythonOperator( #以PythonOperator为例,也可以定义使用其他的Operator。 阅读详情

Airflow 单机搭建

Airflow 是基于 Python 的,就是 Python 中的一个包。安装要求 Python3.6 版本之上,Metadata DataBase 支持 PostgreSQL9.6+,MySQL5.7+,SQLLite3.15.0+。

一、安装 Anconda 及 python3.7

1、官网下载 Anconda ,选择 linux 版本,并安装

下载官网地址:https://www.anaconda.com/products/individual#macos

2、将下载好的 anconda 安装包上传至 mynode4 节点,进行安装

sh Anaconda3-2020.02-Linux-x86_64.sh  【一路回车即可】Do you accept the license terms? [yes|no]Yes【继续回车】... ...Anaconda3 will now be installed into this location:/root/anaconda3
  - Press ENTER to confirm the location  - Press CTRL-C to abort the installation  - Or specify a different location below
[/root/anaconda3] >>> 【回车即可,安装到/root/anaconda3路径下】... ...Do you wish the installer to initialize Anaconda3by running conda init? [yes|no][no] >>>yes【输入yes,回车即可】... ...【安装完成】

复制代码

3、配置 Anconda 的环境变量

在 /etc/profile中加入以下语句:export PATH=$PATH:/root/anaconda3/bin#使环境变量生效source /etc/profile

复制代码

4、安装 python3.7 python 环境

conda create -n python37 python=3.7

复制代码

5、激活使用 python37 python 环境

conda activate python37【激活使用python37环境,需要先执行下source activate】

复制代码

相关命令如下:

source activate 【初始化conda,必须执行,执行之后可以使用conda命令激活环境】conda deactivate 【退出当前base环境】conda activate python37【激活使用python37环境】conda deactivate 【退出当前使用python37环境】conda remove -n python37 --all 【删除python37环境】

复制代码

二、单机安装 Airflow

单节点部署 airflow 时,所有 airflow 进程都运行在一台机器上,架构图如下:

1、安装 Airflow 必须需要的系统依赖

Airflow 正常使用必须需要一些系统依赖,在 mynode4 节点上安装以下依赖:

yum -y install mysql-devel gcc gcc-devel python-devel gcc-c++ cyrus-sasl cyrus-sasl-devel cyrus-sasl-lib 

复制代码

2、在 MySQL 中创建对应的库并设置参数

aiflow 使用的 Metadata database 我们这里使用 mysql,在 node2 节点的 mysql 中创建 airflow 使用的库及表信息。

CREATE DATABASE airflow CHARACTER SET utf8;create user 'airflow'@'%' identified by '123456';grant all privileges on airflow.* to 'airflow'@'%';flush privileges;

复制代码

在 mysql 安装节点 node2 上修改”/etc/my.cnf”,在 mysqld 下添加如下内容:

[mysqld]explicit_defaults_for_timestamp=1

复制代码

注意:以上配置 explicit_defaults_for_timestamp 系统变量决定 MySQL 服务端对 timestamp 列中的默认值和 NULL 值的不同处理方法。此变量自 MySQL 5.6.6 版本引入,默认值为 0,在默认情况下,如果 timestamp 列没有显式的指明 null 属性,那么该列会被自动加上 not null 属性,如果往这个列中插入 null 值,会自动的设置该列的值为 current timestamp 值。当这个值被设置为 1 时,如果 timestamp 列没有显式的指定 not null 属性,那么默认的该列可以为 null,此时向该列中插入 null 值时,会直接记录 null,而不是 current timestamp,如果指定 not null 就会报错。

在 Airflow 中需要对应 mysql 这个参数设置为 1。以上修改完成“my.cnf”值后,重启 Mysql 即可,重启之后,可以查询对应的参数是否生效:

#重启mysql[root@node2 ~]# service mysqld restart
#重新登录mysql查询mysql> show variables like 'explicit_defaults_for_timestamp';

复制代码

3、安装 Airflo

在 node4 上切换 python37 环境,安装 airflow,指定版本为 2.1.3

(python37) [root@node4 ~]# conda activate python37(python37) [root@node4 ~]# pip install apache-airflow==2.1.3 -i https://pypi.tuna.tsinghua.edu.cn/simple

默认 Airflow 安装在 $ANCONDA_HOME/envs/python37/lib/python3.7/site-packages/airflow 目录下。Airflow 文件存储目录默认在/root/airflow 目录下,但是这个目录需要执行下“airflow version”后自动创建,查看安装 Airflow 版本信息:

(python37) [root@node4 ~]# airflow version2.1.3

注意:如果不想使用默认的“/root/airflow”目录当做文件存储目录,也可以在安装 airflow 之前设置环境变量:

(python37) [root@node4 ~]# vim /etc/profileexport AIRFLOW_HOME=/software/airflow
#使配置的环境变量生效source /etc/profil

这样安装完成的 airflow 后,查看对应的版本会将“AIRFLOW_HOME”配置的目录当做 airflow 的文件存储目录。

4、配置 Airflow 使用的数据库为 MySQL

打开配置的 airflow 文件存储目录,默认在 $AIRFLOW_HOME 目录“/root/airflow”中,会有“airflow.cfg”配置文件,修改配置如下:

[core]dags_folder = /root/airflow/dags
#修改时区default_timezone = Asia/Shanghai
# 配置数据库sql_alchemy_conn=mysql+mysqldb://airflow:123456@node2:3306/airflow?use_unicode=true&charset=utf8
[webserver]#设置时区default_ui_timezone = Asia/Shanghai
#设置DAG显示方式# Default DAG view. Valid values are: ``tree``, ``graph``, ``duration``, ``gantt``, ``landing_times``dag_default_view = graph
[scheduler]#设置默认发现新任务周期,默认是5分钟# How often (in seconds) to scan the DAGs directory for new files. Default to 5 minutes.dag_dir_list_interval = 30

5、安装需要的 python 依赖包

初始化 Airflow 数据库时需要使用到连接 mysql 的包,执行如下命令来安装 mysql 对应的 python 包。

(python37) [root@node4 ~]# pip install mysqlclient -i https://pypi.tuna.tsinghua.edu.cn/simple

复制代码

6、初始化 Airflow 数据库

(python37) [root@node4 airflow]# airflow db init

初始化之后在 MySQL airflow 库下会生成对应的表。

7、创建管理员用户信息

在 node4 节点上执行如下命令,创建操作 Airflow 的用户信息:

airflow users create \    --username airflow \    --firstname airflow \    --lastname airflow \    --role Admin \    --email xx@qq.com

执行完成之后,设置密码为“123456”并确认,完成 Airflow 管理员信息创建。

三、启动 Airflow

1、启动 webserver

#前台方式启动webserver(python37) [root@node4 airflow]# airflow webserver --port 8080
#以守护进程方式运行webserver,端口默认8080。 ps aux|grep webserver查看后台进程airflow webserver --port 8080 -D

2、启动 scheduler

新开窗口,切换 python37 环境,启动 Schduler:

#前台方式启动scheduler(python37) [root@node4 ~]# airflow scheduler
#以守护进程方式运行Scheduler,ps aux|grep scheduler 查看后台进程 airflow scheduler -D

3、访问 Airflow webui

浏览器访问:http://node4:8080

输入前面创建的用户名:airflow 密码:123456

大数据调度平台 Airflow(二):Airflow 架构及原理 Airflow 我们可以构建 Workflow 工作流,工作流使用 DAG 有向无环图来表示,DAG 指定了任务之间的关系,如下图:Airflow 架构图如下:Airflow 在运行时有很多守护进程,这些进程提供了 airflow 全部功能,守护进程包括如下:webserver:WebServer 服务器可以接收 HTTP 请求,用于提供用户界面的操作窗口,主要负责中止、恢复、触发任务;监控任务;断点续跑任务;查询任务状态、详细日志等。 阅读详情

相关推荐

【大数据】【调度】Airflow 和 Azkaban的选型

Airflow和Azkaban这两个组件对大数据集群来说是相对独立的,都是可以独立于集群安装,所以不管是cdh还是hdp集群,都可以选择其中之一作为集群的任务调度系统。 我们公司有2套集群,国内国外各一套,然后因为历史原因国内用的是Azkaban,国外用的是Airflow,考虑到以后技术栈的统一,打算慢慢将两个集群的组件统一化,所以就有了调研两个调度系统对比这件事。 这里就将这两个组件拿出来对比一下,这里没有拿oozie出来说是因为用我用oozie的不多,并且oozie是强依赖于hadoop的,不适合作为.

梦,不可及,所以可期待... 3625

AiFlow大数据框架应用简介

AiFlow 平台有哪些令人惊叹的能力,且看我们一一介绍!

shiter编写程序的艺术 1848

Python代码实现:使用Airflow进行任务流程自动化

在Airflow中,所有任务都是通过DAG(Directed Acyclic Graph,有向无环图)来组织的。一个DAG定义了一系列的任务及其执行顺序。start_task和end_task。任务之间用>>操作符连接,表示执行顺序。

木头大左的博客 769

AI-FLOW,面向未来的可视化AI搭建

是一个开源、低代码的AI应用开发平台,旨在帮助开发者快速构建、部署和管理AI驱动的应用程序。平台集成了大型语言模型(LLM)、式生成AI以及多种AI智能体,用户可以通过观察的可视化界面设计复杂的工作流程和自动化任务,深入的编码知识。以下是在本地运行 AI-Flow 和接口 (可选) 的基本步骤。本人在github上爆肝了一个项目,主要用作可视化AI搭建。详细的贡献指南和代码风格规范将在后续完善。查看Swagger UI API文档。(或您配置的接口端口)。(或您配置的前端端口)。文件中的环境配置)。

iqdjkl的博客 1867

在Python 3虚拟环境中安装Apache Airflow和大数据

它提供了一个灵活的方式来定义、调度和执行工作流程,非常适合处理大数据任务。通过按照上述步骤,在Python 3虚拟环境中安装和配置Apache Airflow,您可以开始编排、调度和监控大数据工作流程。Apache Airflow提供了丰富的监控和管理功能,可帮助您追踪和管理运行中的工作流程。然后,打开浏览器并访问http://localhost:8080,您将看到Apache Airflow的Web界面。这将在Airflow的工作流程目录中创建一个新的DAG文件。目录下)并定义您的工作流程。

2301_78484069的博客 318

大数据调度平台Airflow(三):Airflow单机搭建

目录 Airflow单机搭建 一、安装Anconda及python3.7 1、官网下载Anconda ,选择linux版本,并安装 2、将下载好的anconda安装包上传至mynode4节点,进行安装 3、配置Anconda的环境变量 4、安装python3.7 python环境 5、激活使用python37 python环境 二、单机安装Airflow 1、安装Airflow必须需要的系统依赖 2、在MySQL中创建对应的库并设置参数 3、安装Airflo 4、配置Airflow使

Lansonli(蓝深李)的博客 2101

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

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

lisheng19870305的专栏 1万+

大数据调度平台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万+

Airflow: 大数据调度工具详解

Apache Airflow是一款开源的工作流调度平台,广泛应用于ETL流程、数据处理、定时任务和机器学习工作流等场景。其通过Python脚本定义DAG,实现任务的编排和调度,提供友好的Web UI进行监控和管理。Airflow具备灵活性高、扩展性好、可视化界面等优点,但也存在配置复杂、性能开销等挑战。通过合理的部署和优化,Airflow可以显著提升数据处理和调度的效率,成为数据工程师和数据科学家不可或缺的工具。

在路上的专栏 2320

大数据调度平台Airflow(二):Airflow架构及原理

目录 Airflow架构及原理 一、Airflow架构 二、Airflow术语 三、Airflow工作原理 Airflow架构及原理 一、Airflow架构 Airflow我们可以构建Workflow工作流,工作流使用DAG有向无环图来表示,DAG指定了任务之间的关系,如下图: Airflow架构图如下: Airflow在运行时有很多守护进程,这些进程提供了airflow全部功能,守护进程包括如下: webserver: WebServer服务器可以接收HTTP请求,用于提.

Lansonli(蓝深李)的博客 2856

大数据调度平台Airflow(一):什么是Airflow

什么是Airflow Apache Airflow是一个提供基于DAG有向无环图来编排工作流的、可视化的分布式任务调度平台,与Oozie、Azkaban等任务流调度平台类似。Airflow在2014年由Airbnb发起,2016年3月进入Apache基金会,在2019年1月成为顶级项目。Airflow采用Python语言编写,提供可编程方式定义DAG工作流,可以定义一组有依赖的任务,按照依赖依次执行, 实现任务管理、调度、监控功能。 另外,Airflow提供了WebUI可视化界面,提供了工作流节点的运行

Lansonli(蓝深李)的博客 4241

大数据组件(一)快速入门调度组件Airflow

大数据组件(一)快速入门调度组件Airflow:案例详解

qq_44665283的博客 2171

datart 二开环境搭建

下载源码, 地址: https://github.com/running-elephant/datart, dev 分支; 解压后使用 idea 打开; 服务端: 3.1 安装依赖, idea会自动安装; 3.2 修改配置文件 /config/application.yml 3.3 创建数据库,并将bin/datart.sql导入到数据库中 3.4 入口: /server/src/main/java/datart/DatartServerApplication.java [外链图片转存失败,源站可能有防.

又是再见? 6132

从0到1搭建大数据平台之调度系统

大数据调度系统。

大数据指北 2988

X3850x6 6241 fireware固件升级

登录联想https://datacentersupport.lenovo.com/cn/zc网站,选择system x,x3850 x6,type选择6241 选择驱动及应用程序,BIOS/UEFI 选择lnvgy_fw_uefi_a9e156a-4.90_anyos_32-64.uxz 文件,点击下载 选择IMM2, 下载lnvgy_fw_imm2_tcoo58b-5.80_anyos_noarch.uxz ps:3837和3839会跳转到ibm网站下载 笔记本直连.

zds00virtue的博客 5453

海康威视国内版监控设备改英文界面难题:原因解析与解决方案

跨境安防设备部署中,国内采购的海康威视监控设备常因仅支持中文界面导致海外用户无法操作。本文剖析了该问题的核心原因:海康威视对国内版和海外版设备实行区域锁定策略,国内版固件仅内置中文且无法通过常规方式切换语言。针对此问题,文章提供了三种解决方案:1)官方合规的海外版固件更换;2)低成本的操作界面翻译与远程协助;3)长期更换海外版设备的彻底解决方案。同时给出了跨境采购的注意事项,强调应提前确认设备版本、拒绝非官方改造并预留适配时间。

海康威视技术支持 3952

大数据架构中的调度系统:Airflow与DolphinScheduler

在大数据处理场景下,存在大量复杂的数据处理任务,如数据采集、清洗、转换、分析和存储等。这些任务往往相互依赖,需要按照特定的顺序和时间进行执行。调度系统的目的就是对这些任务进行有效的管理和协调,确保它们能够按时、按序、稳定地运行。本文的范围主要聚焦于Airflow和DolphinScheduler这两个在大数据领域广泛应用的调度系统。我们将对它们的核心概念、架构、工作原理、算法实现、实际应用等方面进行详细的比较和分析,帮助读者了解它们的特点和适用场景,以便在实际项目中做出合理的选择。背景介绍。

软件工程实践的博客 974

CMIP6数据处理及在气候变化、水文、生态等领域中的应用

CMIP6、Biome-BGC、生态、气候变化、气象、水文、气候模式、植被、生态模式、遥感、极端气候、降水、WRF模式、动力降尺度、RCM、大气环流模型、贝叶斯模型、、降尺度

PhyliciaFelicia的博客 1544

大数据调度平台Airflow(六):Airflow Operators及案例

定义依赖的触发规则,包括选项如下{all_success|all_failed|all_done|one_success|one_failed|none_failed|none_failed_or_skipped|none_skipped|dummy(无条件执行)}defaultisall_success。在“bash_command”中写执行脚本时,一定要在脚本后跟上空格,有没有参数都要跟上空格,否则会找不到对应的脚本。...

lisheng19870305的专栏 4612

(实战)[re:Invent 2018]-001:赛道分析-(致敬1024)

打印log

Rainbow 2778

STK中的传感器与通信组件:雷达、发射机、接收机与天线的协同建模

本文深入解析了STK软件中传感器、雷达、发射机、接收机与天线的协同建模方法。通过构建一个完整的卫星对地数传系统实例,阐述了各组件如何分工协作,实现从几何指向到射频链路的高保真仿真,为复杂航天通信与探测系统的设计与分析提供了高效、灵活的解决方案。

weixin_29271263的博客 273
上一篇: 大数据调度平台 Airflow(二):Airflow 架构及原理
下一篇: 大数据调度平台 Airflow(五):Airflow 使用
wrr-cat
博客等级 码龄9年 128粉丝 302原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值