仅此记录-Docker部署airflow(单节点)
操作系统 Ubuntu:22.04.2
docker:20.10.18
安装步骤
1、下载镜像
$ docker pull puckel/docker-airflow
2、启动容器并挂载宿主机
$ docker run -itd -p 8080:8080 -v /home/capsio/software/airflow:/usr/local/airflow -v /etc/localtime:/etc/localtime --restart always --privileged=true --name airflow puckel/docker-airflow
/home/capsio/software/airflow:是自己这边的宿主机的挂载地址。如果没有该地址,需要创建该路径下的文件夹mkdir /home/capsio/software/airflow.
并赋予文件夹权限,chmod 777 /home/capsio/software/airflow
通过 docker ps查看容器是否启动:
3、airflow容器配置
1、进入airflow docker容器
docker exec -it -u root 82da1fe75951 bash
最好是root的形式进入容器,不然在容器中通过pip下载python包时,会报没有权限,下载失败。
2、airflow docker容器的额外配置
在通过输入vim airflow.cfg时,提示报错,command not found。
1、安装vim
apt-get install vim
2、出现上述情况,需要更新 vim 指令
apt-get update
3、再次执行重新安装
apt-get install vim
3、配置airflow.cfg
dags_folder代表airflow会去读取该文件夹路径下的 *.py的文件,执行定时任务。
base_log_folder代表airflow执行定时任务保存的日志文件的文件夹路径。
#设置执行模式为单机模式,后续线上应根据情况进行修改 executor = LocalExecutor
#数据库地址 sql_alchemy_conn = mysql://airflow:123456@localhost:3306/airflow
#这里可以设置时区为上海 default_timezone = Asia/Shanghai
#设置airflow是否展示示例的dag任务,本项目不展示,设置为了False
load_examples = False
这里的数据库地址代表airflow启动之后,airflow的数据存储的数据库的位置,本文中使用的是mysql数据库,因为之后要编写dag的python运行脚本,数据的存取都是基于mysql,最好在容器中进行pip install pymysql,如果超时导致安装失败,执行pip --default-timeout=2000 install pymysql执行。
:wq保存退出
提示:因为airflow docker容器可能会迁移到别的服务器中,且别的服务器不能通过外网进行pip install的包安装,如果编写dag 任务,用到了其他的python的包,需要在该容器中通过pip进行安装。
4、airflow运行并展示
初始化airflow数据库表:执行$ airflow initdb
运行airflow应用程序:$ nohup airflow scheduler >>airflow-scheduler.log 2>& 1 &
展示:输入http://服务器ip:8080(如果是访问失败,查看该服务器的防火墙是否打开)。
提示:在本文中没有设置airflow的用户,默认是无需登录的,如果有需求,需要自行设置。
CSDN-Ada助手: 恭喜您写了第6篇博客!标题很吸引人,让我对Java虚拟机加载类的过程产生了浓厚的兴趣。您的文章内容一定也是非常有价值的。接下来,我期待您能进一步深入探索Java虚拟机的相关机制,比如内存管理、垃圾回收等方面的知识,这样读者可以更全面地了解Java虚拟机的工作原理。再次恭喜您,并期待您的下一篇博文!
CSDN-Ada助手: 恭喜您写了第5篇博客!标题“Mybatis和Mybatis plus”非常吸引人,内容肯定也很精彩。您对这两个框架的比较和分析一定会为读者提供很有价值的信息。 在下一步的创作中,我建议您可以深入探讨这两个框架的优缺点,并结合您的实际经验给出一些建议和最佳实践。此外,您还可以分享一些使用这两个框架的技巧和经验,帮助读者更好地理解和应用。 再次恭喜您的持续创作,希望您能够一直保持谦虚的态度,并继续为读者带来有价值的内容。期待您的下一篇博客!