我正在尝试使用Airflow在AWS上建立一条简单的数据管道。 我已经创建了一个DAG,它每天将数据抓取到S3,然后使用在EMR上运行的Spark作业进行处理。
我当前在本地笔记本电脑上运行气流计划程序,但我当然知道这不是一个好的长期解决方案。
所以我想了解一些关于将调度程序部署到EC2的提示(实例大小、部署进程或任何其他有用的信息)
推荐答案在本地运行通常不是可行的后期测试阶段。因此,您需要一个正在运行的服务器。以下是将其部署到AWS EC2的选项和指南。
您可以使用扩展坞/气流图像在EC2实例上部署气流。T3.中等就够了。通常不会有太多DAG。我们可以创建一个每隔7天运行一次的工作流,并清理日志文件,所以在磁盘方面,如果内存消耗保持不变,就不会有问题。您可以像在本地计算机上一样在EC2上正常安装和配置气流,但我更喜欢通过Puckelhere使用坞站映像进行设置。
首先,您可以使用安装了docker的AMI,也可以自己安装。
下一步,从扩展坞中拉出图像
docker pull puckel/docker-airflow 在这里,您可能会遇到SQLAlChemy版本合并问题(如果没有,则忽略此步骤)。因此将DockerFile中此行更改为使用其他版本的气流,如1.10.10 ARG AIRFLOW_VERSION=1.10.9 # change this to 1.10.10 ( or hardcode sqlalchmy version)接下来,您可能需要在postgres中添加用户。
现在您可以将其作为
运行 docker run -d -p 8080:8080 puckel/docker-airflow webserver要进入命令行(用于启动executor、scheduler等),请从
抓取容器名称/id docker ps并使用此命令
docker exec -ti <name_of_container> bash另外,为了使用docker DAGS文件夹挂载EC2文件夹,您可以如下所示挂载它,您的DAG将与气流DAG同步
docker run -d -p 8080:8080 -v /path/to/dags/on/your/ec2/folder/:/usr/local/airflow/dags puckel/docker-airflow webserver为了从任何其他计算机(您自己的笔记本电脑)在浏览器中访问此内容
首先,从您的IP的安全组中启用ec2http端口8080
从浏览器中,您可以
<ec2-public-ip>:8080其他第三方管理选项在AWS上运行Airflow
Astronomer是一家在所有云平台上提供全托管气流的公司,具有高级监控等功能。他们的团队中有一些顶级的气流贡献
成本:
在t3媒体上运行整个月的气流每月成本约为32.37美元,可以calculated here
天文学家每10 AU(1个CPU,3.75 GB内存)的成本约为100$/month(但也有折衷,由天文学家管理,他们提供支持等)
更多推荐
如何将气流调度器部署到AWS EC2?
发布评论