气流根据文件数量创建子流程

airflow create sub process based on number of files

气流中的新手问题, 我在一个文本文件中有 100 多台服务器的列表。目前,python 脚本用于登录每个服务器、读取文件和写入输出。获取输出需要很长时间。如果这个作业转换为Airflow DAG,是否可以将服务器拆分成多个组,使用任意算子发起一个新任务?或者这可以通过仅修改 Python 脚本(如使用异步)并使用 Python 运算符执行来实现。求advice/best练习。我尝试搜索示例,但没有找到。谢谢!

Airflow 并不是真正的“map-reduce”类型的框架(您似乎正在尝试实现)。 Airflow 的任务并不是(至少目前)设计为在它们之间拆分工作。对于 Airflow 来说,这是非常不典型的,它有 N 个任务,每个任务在一个数据子集上做同样的事情。 Airflow 更多地用于编排逻辑,因此 Airflow 中的每个任务在概念上都做不同的事情,并且很少有 N 个并行任务做同样的事情(但在不同的数据子集上)的情况。通常情况下,Airflow“任务”不会自己“完成”工作,而是告诉其他人该做什么,然后等到完成。

通常,Airflow 可用于编排此类服务,excel 在执行此类处理时 - 您可以拥有一个 Hadoop 作业,该作业使用其他工具处理此类“并行”map-reduce 类型的作业。您也可以 - 正如您提到的那样 - 执行异步、多线程甚至多处理 python 运算符,但在某种程度上,我认为通常其他专用工具应该更容易使用并且更好地获得的最大价值(例如,有效利用并行性)。