Apache Airflow - DAG 中有多少任务太多了?
Apache Airflow - how many tasks in a DAG is too many?
我尝试使用一个包含 400 个任务的 DAG(比如每个 运行 调用远程 spark 服务器将单独的数据文件处理成 s3...与 mysql 无关)和气流( v1.10.3) 在接下来的 15 分钟内执行了以下操作:
- cpu 保持在 99%
- 没有处理新的 putty 登录或 ssh 请求
我的机器(亚马逊 linux)
- airflow 网络服务器停止响应..仅
给出了 504 个错误
- 启动了 130 个与 mysql RDS 的并发连接
(气流元数据库)
- 让我的任务停留在预定状态
我最终切换到另一个 ec2 实例但得到了相同的结果...
我是 运行 单机(16 个 CPU)上的 LocalExecutor。
请注意,对于具有 30 个任务的 DAG,它运行良好。
DAG 中的任务数量没有实际限制。在您的情况下,您使用的是 LocalExecutor
- 然后气流将使用主机上可用的任何资源来执行任务。听起来您只是淹没了 ec2 实例的资源并使气流工作者/调度程序超载。我建议添加更多工人来分解任务或降低 airflow.cfg
中的 parallelism
值
我尝试使用一个包含 400 个任务的 DAG(比如每个 运行 调用远程 spark 服务器将单独的数据文件处理成 s3...与 mysql 无关)和气流( v1.10.3) 在接下来的 15 分钟内执行了以下操作:
- cpu 保持在 99%
- 没有处理新的 putty 登录或 ssh 请求 我的机器(亚马逊 linux)
- airflow 网络服务器停止响应..仅 给出了 504 个错误
- 启动了 130 个与 mysql RDS 的并发连接 (气流元数据库)
- 让我的任务停留在预定状态
我最终切换到另一个 ec2 实例但得到了相同的结果...
我是 运行 单机(16 个 CPU)上的 LocalExecutor。
请注意,对于具有 30 个任务的 DAG,它运行良好。
DAG 中的任务数量没有实际限制。在您的情况下,您使用的是 LocalExecutor
- 然后气流将使用主机上可用的任何资源来执行任务。听起来您只是淹没了 ec2 实例的资源并使气流工作者/调度程序超载。我建议添加更多工人来分解任务或降低 airflow.cfg
parallelism
值