airflow的安装

news2024/11/22 4:09:09

文章目录

  • 前言
  • 一、Airflow基本概念
    • 1.概念
    • 2. 名词
  • 二、Airflow安装
    • 1.Airflow官网
    • 2.安装python环境
    • 3. 安装anaconda3
    • 4. 创建airflow虚拟环境
    • 5. 安装Airflow
      • 1. 更改pip源
      • 2. 安装airflow
      • 3. 初始化airflow
      • 4. 查看版本
      • 5. 查看airflow安装的路径
      • 6.创建账号
      • 7. 启动airflow调度
      • 8. 启动airflow web 服务,
    • 6. 安装后的细节问题
      • 1. 修改数据库为mysql
      • 2. 登录mysql, 并进行airflow数据库的相关配置
      • 3. 进行airflow的相关配置
      • 4. 重新初始化airflow, 启动相关服务
      • 5. 重新创建账号登录:
      • 6. 启动airflow, 并打开查看
  • 总结


前言

随着任务的增多, 需要顺序的自动执行, 这个时候就需要有一款合适的框架, 对工作流进行执行和监控, 所以在这里选择了airflow的使用.

一、Airflow基本概念

1.概念

Airflow 是一个以编程方式编写,安排和监视工作流的平台。

使用 Airflow 将工作流编写任务的有向无环图(DAG)。Airflow 计划程序在遵循指定的依赖项,同时在一组工作线程上执行任务。丰富的命令实用程序使在 DAG 上执行复杂的调度变的轻而易举。丰富的用户界面使查看生产中正在运行的管道,监视进度以及需要时对问题进行故障排除变的容易。

2. 名词

(1)Dynamic:Airflow 配置需要实用 Python,允许动态生产管道。这允许编写可动态。这允许编写可动态实例化管道的代码。
(2)Extensible:轻松定义自己的运算符,执行程序并扩展库,使其适合于您的环境。
(3)Elegant:Airlfow 是精简的,使用功能强大的 Jinja 模板引擎,将脚本参数化内置于 Airflow 的核心中。
(4)Scalable:Airflow 具有模板块架构,并使用消息队列来安排任意数量的工作任务。

二、Airflow安装

1.Airflow官网

https://airflow.apache.org

2.安装python环境

Airflow 是由 Python 语言编写的 Web 应用,要求 Python3.8 的环境。

3. 安装anaconda3

此处省略1万字…, 自行百度安装即可或是之前我的博客查看

说明:conda 环境管理常用命令
创建环境:conda create -n env_name
查看所有环境:conda info --envs
删除一个环境:conda remove -n env_name --all

4. 创建airflow虚拟环境

# 1. 创建对应的虚拟环境
conda create --name airflow python=3.8
# 2. 激活airflow环境
conda activate airflow
# 3. 退出当前环境
conda deactivate
# 4. 查看python当前版本
python -V

5. 安装Airflow

1. 更改pip源

依次执行以下命令

conda activate airflow
pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple
sudo mkdir ~/.pip
sudo vim ~/.pip/pip.conf

添加一下内容

[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host = https://pypi.tuna.tsinghua.edu.cn

2. 安装airflow

pip install "apache-airflow==2.4.3"

3. 初始化airflow

airflow db init

4. 查看版本

airflow version

5. 查看airflow安装的路径

pwd

6.创建账号

airflow users create \
--username admin \
--firstname bigdata \
--lastname bigdata \
--role Admin \
--email xxxx@qq.com

在这里插入图片描述
此时输入密码, 这里的密码设置的为123456

7. 启动airflow调度

airflow scheduler -D

8. 启动airflow web 服务,

  • 启动后浏览器访问: http://localhost:8080
airflow webserver -p 8080 -D

在这里插入图片描述
在这里插入图片描述
则已经进入了airflow的页面.

6. 安装后的细节问题

页面中显示了两个问题,第一个问题是希望将元数据存放在MySQL或者PostgresSQL中,第二个问题是不建议用这个执行器,接下来我们进行改进
在这里插入图片描述

1. 修改数据库为mysql

  • 尝试了docker容器的方法进行MYSQL配置,成功
  • 解决步骤
    • 安装docker
      apt install docker.io
      
    • 拉取mysql镜像
      docker pull mysql:5.7
      
    • 创建容器
      docker run -d --name=mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
      
    • 执行容器
      docker exec -it mysql bash
      

2. 登录mysql, 并进行airflow数据库的相关配置


#登录MYSQL
mysql -uroot -p123456
#创建个airflow的用户,airflow数据库
CREATE DATABASE IF NOT EXISTS airflow DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
# 创建名称为airflow的数据库
create user 'airflow'@'%' identified by 'password';
# 对airflow赋操作权限
grant all privileges on airflow.* to airflow@localhost identified by 'password';
grant all privileges on airflow.* to 'airflow'@'%' identified by 'password';
flush privileges;

3. 进行airflow的相关配置

#以下默认已经安装airflow
#修改配置文件airflow.cfg
executor = LocalExecutor
sql_alchemy_conn = mysql://airflow:password@localhost:3306/airflow?charset=utf8
sql_engine_encoding = utf-8

4. 重新初始化airflow, 启动相关服务

#如果airflow服务已启动,先kill掉相关服务
ps -ef|egrep 'scheduler|airflow-webserver'|grep -v grep|awk '{print $2}'|xargs kill -9
# 相关初始化
airflow db init

说明: 初始化报错 1067 - Invalid default value for ‘update_at’:
原因:字段 ‘update_at’ 为 timestamp 类型,取值范围是:1970-01-01 00:00:00 到2037-12-31 23:59:59(UTC +8 北京时间从 1970-01-01 08:00:00 开始),而这里默认给了空值,所以导致失败
推荐修改mysql存储时间戳格式: 注意: 重启 MySQL 会造成参数失效

mysql> set GLOBAL sql_mode ='STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'

5. 重新创建账号登录:

airflow users create \
--username admin \
--firstname bigdata \
--lastname bigdata \
--role Admin \
--email xxxx@qq.com

说明: 密码: 123456

6. 启动airflow, 并打开查看

#重启服务
airflow webserver -D
airflow scheduler -D

重新打开页面展示:
在这里插入图片描述
发现之前显示的两行消失, 说明配置成功.

总结

根据以上的步骤, 可以很快的安装和搭建起airflow, 后期就是对其部署和使用了, 部署和使用待下期更新~~~.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/880013.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

解决hbase节点已下线,但在status中显示为dead问题

工作中需要下线4台hbase小节点,下线完成后使用status 命令查看,有一台为dead状态: 使用status detailed 查看,发现“hd-03"这台节点是dead。 检查各节点配置文件无误,并使用 /opt/hbase/bin/hbase-daemon.sh restart master 重启两个…

改良版自编小程序上线啦---助力孟德尔随机化(Mendelian Randomization)数据挖掘

孟德尔随机化步骤相对简单固定,一共就是3步,但是如果我们一个一个的对研究变量和结果数据进行筛选,也是挺费时间的,在上篇文章《自编R语言小程序助力孟德尔随机化(Mendelian Randomization)数据挖掘》中,咱们自编了一个…

【ppt密码】忘记了PPT的密码,怎么办?

PPT文件设置了保护密码,但是密码忘记了,无法打开PPT文件、无法编辑PPT文件了该怎么办?PPT文件的两种保护密码该如何解密? 首先是打开密码 网上有一种解决方法: 1、重新命名PPT文件,将其后缀改为zip格式&…

字节跳动在PGO反馈优化技术上的探索与实践

背景 随着字节跳动的业务迅速增长,微服务的性能优化工作显得尤为重要,对于头部应用来说,提升若干百分点的性能也能为公司节省巨大的服务器资源成本。 编译器优化是软件性能优化的一种常用方法,相比其它特定的性能优化方法&#…

从零开始 Spring Cloud 11:Elasticsearch II

从零开始 Spring Cloud 11:Elasticsearch II 图源:laiketui.com 在上篇文章中我们学习了 es 的基本功能,在本篇文章中会学习 es 的一些高级功能,比如: 聚合查询自动补全集群部署 数据聚合 类型 **聚合&#xff08…

toB 业务分析

1、 如何透彻分析B端客户的需求? - 知乎我在讲《如何分析客户需求》这门课时,经常会问学员:“开发客户的最大困难是什么?”有人说价格高不好卖,有人说客户需求不好把握,有人说客户地处偏远,素养…

部署WMS仓储管理系统前要知道哪些关键点

随着物流行业的快速发展,WMS仓储管理系统解决方案已成为企业仓储管理的重要工具。然而,在部署WMS仓储管理系统之前,企业需要了解一些关键点,以确保系统的成功实施和高效运行。本文将介绍部署WMS前需要知道的关键点。 1、明确目标与…

一个小时入门 EJB

前置知识 在开始学习Java EE的Enterprise JavaBeans (EJB)之前,以下是一些你可能需要提前了解的技术和概念: Java基础:熟悉Java的基础知识,包括面向对象的概念(例如类、接口、继承和多态等)、基本的数据结…

【从零学习python 】27. Python 函数的使用及嵌套调用

文章目录 函数的文档说明1. 基本使用2. 高级使用 函数应用:打印图形和数学计算目标思考&实现1参考代码1 思考&实现2参考代码2 函数的嵌套调用进阶案例 函数的文档说明 1. 基本使用 def test(a, b):"用来完成对2个数求和" # 函数第一行写一个字…

产品需求管理软件:了解常见选择和功能

产品需求管理软件是一种非常重要的工具。它可以帮助企业更好地理解客户需求,提高产品开发效率并降低成本。本文将介绍一些常见的产品需求管理软件及其主要功能。 “产品需求管理软件有哪些?比较流行的有Zoho Projects、Trello、Asana、Smartsheet等。” …

「并发编程 」

一、 为什么会有线程安全问题 1)程序和CPU间的协作关系 CPU组成 寄存器 存储了从内存加载的数据(从内存中将数据加载到 L1,L2,L3 缓存,再到寄存器) ;寄存器的运行速度比内存快好多个级别&…

哈工大开源“活字”对话大模型

一、介绍 大规模语言模型(LLM)在自然语言处理的通用领域已取得了令人瞩目的成功。对于广泛的应用场景,这种技术展示了强大的潜力,学术界和工业界的兴趣也持续升温。哈工大自然语言处理研究所30余位老师和学生参与开发了通用对话大…

【BUG】docker安装nacos,浏览器却无法访问到页面

个人主页:金鳞踏雨 个人简介:大家好,我是金鳞,一个初出茅庐的Java小白 目前状况:22届普通本科毕业生,几经波折了,现在任职于一家国内大型知名日化公司,从事Java开发工作 我的博客&am…

单链表相关操作(插入,删除,查找)

通过上一节我们知道顺序表的优点: 可随机存储(O(1)):查找速度快 存储密度高:每个结点只存放数据元素,而单链表除了存放数据元素之外,还需存储指向下一个节点的指针 http://t.csdn.cn/p7OQf …

计算机组成原理之浮点运算

1、浮点运算步骤 ①0操作数的检查,看有无简化操作的可能。 ②比较阶码大小并完成对阶(小阶向大阶对齐)。 ③尾数进行加或减运算。 (在进行尾数加减前,浮点运算器会自动把原码形式的尾数转换成补码形式。) ④…

像素相关知识

物理像素 指的是物理设备上真实的小方块个数,就是拿放大镜看屏幕时看到的像素点, 每个物理像素具体的大小是不固定的,不同设备不相同,由厂家设置 逻辑像素 指的就是我们css用到的px这个单位的像素 像素比(DPR&…

GB/GMP法规内容对沉降​菌、浮游菌监测​点设置相关规定及要求详解

微生物鉴定一直是生物、食品、医药等领域非常重要的监控指标,可以帮助预测药品生产过程以及无菌生产环境的风险。对于许多企业而言,建立厂房环境微生物菌种库对于微生物污染控制来说非常关键,环境菌种库的建立可以帮助制定洁净区消毒灭菌程序…

Leetcode40 组合之和2

给定一个候选人编号的集合 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的每个数字在每个组合中只能使用 一次 。 注意:解集不能包含重复的组合。 解题思路:回溯剪枝 代码&#xff…

LeetCode--HOT100题(31)

目录 题目描述:25. K 个一组翻转链表(困难)题目接口解题思路代码 PS: 题目描述:25. K 个一组翻转链表(困难) 给你链表的头节点 head ,每 k 个节点一组进行翻转,请你返回修改后的链表…

麦肯锡重磅发布2023年15项技术趋势,生成式AI首次入选,选对了就是风口

两位朋友在不同群里分享了同一份深度报告。 一位是LH美女,她在“AIGC时代”群里上传了这份文档,响应寥寥,可能是因为这些报告没有像八卦文那样容易带来冲击。 你看韩彬的这篇《金融妲己:基金公司女销售的瓜,一个比一个…