【发布时间】:2020-12-30 07:32:10
【问题描述】:
我在气流 dag 中有一个任务,需要 100 GB 的 RAM 才能成功完成。我在 Composer 环境中有 3 个节点,每个节点都有 50 GB 内存。我有 3 名工人(每个节点上运行一名)。这里的问题是,此任务仅在其中一个工作人员上运行(它可以使用的最大内存为 50 GB),因此由于内存问题而失败。
有没有办法让这个任务使用所有节点的内存(150 GB)? (假设我们不能将任务分成更小的步骤)
另外,在 Cloud Composer 中,我们可以让工作人员跨越多个节点吗? (如果是这样,我可以强制一个工作人员在所有三个节点上运行并使用 150 GB 内存)
【问题讨论】:
-
“让一个worker跨越多个节点”,你说的是分布式计算,这并不像你写的那么简单。这就是创建 Hadoop 和 Spark 等框架的原因。也许您可以改为在 Dataflow 中编写工作,因为这会将您的任务扩展到多个工作人员,并使用 Dataflow 运算符。
-
和其他提到的一样,如果你想暴力破解它,你可以使用 Airflow 在 GCE 中用足够的内存启动单个实例,执行任务,然后关闭实例
标签: google-cloud-platform google-cloud-composer airflow