Может ли одна задача воздушного потока запускаться на нескольких воркерах в Cloud Composer?

У меня есть задача в dag воздушного потока, для успешного выполнения которой требуется 100 ГБ ОЗУ. У меня есть 3 узла с памятью 50 ГБ каждый в среде Composer. У меня 3 воркера (по одному на каждом узле). Проблема здесь в том, что эта задача выполняется только на одном из рабочих процессов (максимальная память, которую она может использовать, составляет 50 ГБ), поэтому она не работает из-за проблем с памятью.

Есть ли способ заставить эту задачу использовать память со всех узлов (150 ГБ)? (Предположим, мы не можем разбить задачу на более мелкие шаги)

Кроме того, в облачном композиторе можем ли мы сделать рабочую группу охватывающей несколько узлов? (Если это так, я могу заставить одного рабочего работать на всех трех узлах и использовать 150 ГБ памяти)


person Bob    schedule 11.09.2020    source источник
comment
сделать рабочий диапазон на нескольких узлах, вы говорите о распределенных вычислениях, это не так просто, как вы пишете. Вот почему были созданы такие фреймворки, как Hadoop и Spark. Возможно, вы вместо этого можете написать свою работу в Dataflow, поскольку это позволит масштабировать вашу задачу на несколько рабочих и использовать оператор Dataflow.   -  person cryanbhu    schedule 13.10.2020
comment
как и другие, упомянутые, если вы хотите использовать грубую силу, вы можете использовать Airflow, чтобы развернуть один экземпляр в GCE с достаточным количеством оперативной памяти, выполнить задачу, а затем развернуть экземпляр   -  person cryanbhu    schedule 13.10.2020


Ответы (2)


Если один DAG является достаточно ресурсоемким, чтобы исчерпать ресурсы всего узла Composer, то большее количество узлов не поможет, если только совместно запланированные рабочие не являются проблемой. Таким образом, возможное решение - создать новую среду Cloud Composer с большим типом машины, чем текущий тип машины, пожалуйста, обратитесь к общедоступной документации.

Высокая нехватка памяти в любом из узлов GKE заставит планировщик Kubernetes изгнать поды из узлов в попытке уменьшить это давление. Хотя в GKE работает множество различных компонентов Airflow, большинство из них обычно не используют много памяти, поэтому чаще всего случается, что пользователь загрузил ресурсоемкую группу DAG. Рабочие Airflow запускают эти группы доступности базы данных, у них заканчиваются ресурсы, а затем их выселяют.

Вы можете проверить это, выполнив следующие действия:

  1. В облачной консоли перейдите к Kubernetes Engine - ›Workloads
  2. Щелкните airflow-worker и посмотрите под Managed pods
  3. Если есть модули, отображающие Evicted, щелкните каждый удаленный модуль и найдите сообщение The node was low on resource: memory в верхней части окна.
person Ines    schedule 14.09.2020

Если меньше 128 ГБ, вы можете запустить Compute Engine, используя различные операторы для вашего дела https://airflow.apache.org/docs/stable/howto/operator/gcp/compute.html

person judoole    schedule 14.09.2020