如何将气流调度器部署到aws ec2?

ruarlubt  于 2021-05-27  发布在  Spark
关注(0)|答案(2)|浏览(416)

关闭。这个问题是基于意见的。它目前不接受答案。
**想改进这个问题吗?**更新这个问题,这样就可以通过编辑这篇文章用事实和引文来回答。

4个月前关门了。
改进这个问题
我正在尝试使用气流在aws上构建一个简单的数据管道。我创建了一个dag,它每天将数据刮到s3,然后在emr上运行spark作业来处理它。
我目前正在本地运行我的笔记本电脑上的气流调度程序,但我当然知道这不是一个好的长期解决方案。
所以我想知道一些关于将我的调度器部署到ec2的技巧(istance大小、部署过程或任何其他有用的信息)

ttisahbt

ttisahbt1#

本地运行通常不是一个可行的测试后阶段。所以你需要一个正在运行的服务器。以下是将其部署到AWSEC2的选项和指南。
您可以使用docker/airflow映像在ec2示例上部署airflow。t3.中等就够了。通常没有太多的DAG。我们可以创建一个每7天运行一次的工作流,并清理日志文件,因此在磁盘方面,如果内存消耗保持不变,就不会有问题。你可以像在本地计算机上一样在ec2上安装和配置气流,但我更喜欢用puckel的docker image在这里设置气流。
首先,您可以使用ami安装docker,也可以自己安装。
接下来,从docker中提取图像

docker pull puckel/docker-airflow

在这里,您可能会遇到sqlalchemy版本conflit的问题(如果不是,请忽略此步骤)。所以把这一行改过来 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 etc),从

docker ps

使用这个命令

docker exec -ti <name_of_container> bash

另外,为了挂载ec2文件夹与docker dags文件夹,您可以像下面一样挂载它,您的dags将与气流dags同步

docker run -d -p 8080:8080 -v /path/to/dags/on/your/ec2/folder/:/usr/local/airflow/dags  puckel/docker-airflow webserver

为了从任何其他计算机(您自己的笔记本电脑)在浏览器中访问此文件
首先,启用
ec2 http 港口 8080 来自您ip的安全组
从浏览器中,您可以访问它作为

<ec2-public-ip>:8080

在aws上运行airflow的其他第三方管理选项
Astronometer是一家在所有云平台上提供全托管气流的公司,具有先进的监控功能等。他们的团队中有一些顶级气流贡献
成本:
t3.medium上整个月的运行气流的月成本约为32.37美元,可在此计算
天文学家的成本约为100美元/月/10AU(1个cpu,3.75GB内存)(但也有权衡,由天文学家管理,他们提供支持等)

9gm1akwq

9gm1akwq2#

您需要在ec2机器上安装airflow来管理emr集群的所有这些请求。
跟随气流安装
https://airflow.apache.org/docs/stable/installation.html
你可以在这里检查所有的气流执行器-
https://airflow.apache.org/docs/stable/executor/index.html
我建议你为此安装celery 执行器。在您的ec2机器上,您应安装至少3个来自airflow的服务
airflow Web服务器-访问airflow用户界面 airflow webserver start 气流调度器-触发你的DAG airflow scheduler start airflow worker-运行任务 airflow worker start 也非常推荐您安装数据库(mysql,postgres)来存储来自aifflow的元数据。您可以在ec2机器外部以aws rds postgres的形式运行此数据库,然后可以用数据库的连接字符串信息编辑airflow.cfg文件。

相关问题