【发布时间】:2019-03-07 09:01:47
【问题描述】:
所以我有这些由几个任务组成的 Airflow DAG。基本上每个任务都针对给定的代码 sn-p 执行一些独立的分析步骤,最后从监管的角度决定是否可以使用这个 sn-p。
每个任务 - 取决于代码 sn-p - 非常短(最多 1-25 分钟),并且主要归结为执行一些外部分析工具(开源和内部)并处理该工具的输出。
所有这些在我的开发机器上运行得非常好,但是由于我们在工作时间(每小时约 50 个)分析了相当多的代码 sn-ps,而在工作时间之外没有,我想得到所有这些在云中的某个地方启动并运行(我真的不在乎是在谷歌云、aws 还是 azure 上)。
所以我的问题是,在云中启动和运行的经济方式是什么?我考虑过使用谷歌云作曲家和这些谷歌抢占式虚拟机(那些随机关闭但超级便宜的虚拟机),但似乎我不能将 PVM 与云作曲家一起使用。
由于 DAG 中的各个步骤是独立的,因此 PVM 将非常适合 IMO - 如果在任务执行期间它们被关闭,我只需在不同的 PVM 上重试这个任务。
谢谢
【问题讨论】:
-
对于
AWS前台,您可以使用lambdas 和AwsLambdaHook与他们合作。 -
谢谢。实际上我也考虑过 lambda,但我不知道我可以将自己的工具“安装”到 lambda 中然后执行它们。例如,我需要在 lambda 中执行 cloc 并获得结果。这可能吗?
-
..economic way of getting this up and running..在裸机上设置Airflow只需要大约 10 分钟;就像pip install apache-airflow[<list-of-extras>]一样简单,然后启动scheduler和webserver(假设LocalExecutor) -
嗨,是的,这与设置气流无关 - 与每小时执行约 50 次 DAG 的计算能力有关。
-
我从未使用过
lambdas,所以无法评论依赖问题。但是当然PythonOperator可以让你运行任何东西,Airflow已经有一些使用AwsHook的例子,它使用了AWS的pythonSDK:boto3
标签: google-cloud-platform airflow google-cloud-composer