大数据调度平台 Airflow(三):Airflow 单机搭建
lipiwang 2024-11-02 13:40 15 浏览 0 评论
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 Anaconda3
by 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 version
2.1.3
注意:如果不想使用默认的“/root/airflow”目录当做文件存储目录,也可以在安装airflow之前设置环境变量:
(python37) [root@node4 ~]# vim /etc/profile
export AIRFLOW_HOME=/software/airflow
#使配置的环境变量生效
source /etc/profile
这样安装完成的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
相关推荐
- 一个简单便捷搭建个人知识库的开源项目(MDwiki)
-
这里我通过自动翻译软件,搬运总结MDwiki官网的部署和使用方法。第一步:下载编译好的后MDwiki文件,只有一个HTML文件“mdwiki.html”。第二步:在mdwiki.html同级目录创建“...
- 强大、简洁、快速、持续更新 PandaWiki新一代 AI 驱动的开源知识库
-
PandaWiki是什么PandaWiki是一款AI大模型驱动的开源知识库搭建系统,帮助你快速构建智能化的产品文档、技术文档、FAQ、博客系统,借助大模型的力量为你提供AI创作、AI问答...
- DeepWiki-Open: 开源版Deepwiki,可自己构建github文档库
-
Deepwiki是Devin团队开发的github文档库,用户能免费使用,但代码不是开源,而DeepWiki-Open侧是开源版本的实现。DeepWiki-Open旨在为GitHub和GitLa...
- 最近爆火的wiki知识管理开源项目PandaWiki
-
项目介绍PandaWiki是一款AI大模型驱动的开源知识库搭建系统,帮助你快速构建智能化的产品文档、技术文档、FAQ、博客系统,借助大模型的力量为你提供AI创作、AI问答、AI搜索等...
- 轻量级开源wiki系统介绍(轻量开源论坛系统)
-
wiki系统有很多DokuWiki、MediaWiki、MinDoc等等都是开源的wiki系统。商业版的wiki,像很多企业在用的confluence等。今天我们讲的是一款轻量级且开源的文档管理系统:...
- DNS解析错误要怎么处理(dns解析状态异常怎么办)
-
在互联网时代,网络已经成为人们生活和工作中不可或缺的一部分。然而,当遇到DNS解析错误时,原本畅通无阻的网络访问会突然陷入困境,让人感到十分困扰。DNS,即域名系统,它如同互联网的电话簿,将人们易于...
- 网页加载慢?这些方法让你秒开网页!
-
打开浏览器,信心满满地准备查资料、看视频或者追剧,却发现网页怎么都打不开!是不是瞬间感觉手足无措?别慌,这个问题其实挺常见,而且解决起来并没有你想象的那么复杂。今天就来聊聊网页打不开究竟是怎么回事,以...
- windows11 常用CMD命令大全(windows11msdn)
-
Windows11中的命令提示符(CMD)是一个强大的工具,可以通过命令行执行各种系统操作和管理任务。以下是一些常用的CMD命令,按功能分类整理,供你参考:一、系统信息与状态systeminfo显...
- 电脑提示DNS服务器未响应怎么解决?
-
我们在使用电脑的时候经常会遇到各种各样的网络问题,例如最近就有Win11电脑用户在使用的时候遇到了DNS未响应的问题,遇到这种情况我们应该怎么解决呢? 方法一:刷新DNS缓存 1、打开运行(W...
- 宽带拨号错误 651 全解析:故障定位与修复方案
-
在使用PPPoE拨号连接互联网时,错误651提示「调制解调器或其他连接设备报告错误」,通常表明从用户终端到运营商机房的链路中存在异常。以下从硬件、系统、网络三层维度展开排查:一、故障成因分类图...
- 如何正确清除 DNS 缓存吗?(解决你访问延时 )
-
DNS缓存是一个临时数据库,用于存储有关以前的DNS查找的信息。换句话说,每当你访问网站时,你的操作系统和网络浏览器都会保留该域和相应IP地址的记录。这消除了对远程DNS服务器重复查询的...
- 网络配置命令:ipconfig和ifconfig,两者有啥区别?
-
在计算机网络的世界里,网络接口就像是连接你电脑和外部网络的桥梁,而网络配置则是确保这座桥梁稳固、通信顺畅的关键。提到网络配置工具,ipconfig和ifconfig绝对是两个绕不开的名字。它们一...
- 救急的命令 你会几个?(救急一下)
-
很多人都说小编是注册表狂魔,其实不完全是,小编常用的命令行才是重点。其实所谓的命令行都是当初DOS时代的标准操作方式,随着Windows不断演化,DOS的命令早已成为Windows的一部分了——开始菜...
- 电脑有网却访问不了GitHub原来是这样
-
当满心欢喜打开电脑,准备在GitHub这个“开源宝藏库”里挖掘点超酷的项目,却遭遇了网页无法访问的尴尬。看着屏幕上那令人无奈的提示,原本高涨的热情瞬间被泼了一盆冷水,是不是感觉世界都不美好了...
- rockstargames更新慢| r星更新速度 怎么办 解决办法
-
rockstargames更新慢|r星更新速度怎么办解决办法说到RockstarGames,那可是游戏界的大佬,作品个顶个的经典。但话说回来,每当新内容更新时,那蜗牛般的下载速度,真是让人急得...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- maven镜像 (69)
- undefined reference to (60)
- zip格式 (63)
- oracle over (62)
- date_format函数用法 (67)
- 在线代理服务器 (60)
- shell 字符串比较 (74)
- x509证书 (61)
- localhost (65)
- java.awt.headless (66)
- syn_sent (64)
- settings.xml (59)
- 弹出窗口 (56)
- applicationcontextaware (72)
- my.cnf (73)
- httpsession (62)
- pkcs7 (62)
- session cookie (63)
- java 生成uuid (58)
- could not initialize class (58)
- beanpropertyrowmapper (58)
- word空格下划线不显示 (73)
- jar文件 (60)
- jsp内置对象 (58)
- makefile编写规则 (58)