Как мы обрабатываем задания с интенсивным вводом-выводом с помощью Spark, когда Spark работает под управлением оператора Spark на K8S? - PullRequest
0 голосов
/ 03 августа 2020

Мы работаем над конвейером приема данных на основе Spark, который включает задачи с меньшим объемом ЦП, но в основном операции с интенсивным вводом-выводом. Для простоты мы используем много разделов, чтобы многие задачи можно было выполнять параллельно, а для этого нам понадобилось много ядер. Когда мы использовали автономный кластер Spark (с предоставленным Spark мастер и рабочие), мы обманули Spark, установив количество доступных ядер на Worker, в 4 раза большее число, чем реально доступные ядра, и это работало отлично, поскольку задачи требовали очень меньшей нагрузки на ЦП. операции. Но недавно мы переместили все на Kubernetes и используем оператор Spark. Но с этим, похоже, нет никакого способа обмануть ядра, действительно пригодные для использования исполнителями. И поэтому мы вынуждены выделить больше ядер для исполнителей для той же пропускной способности, которую мы получали раньше.

Мой вопрос в том, как заставить драйвер предполагать, что у исполнителей больше ядер и чтобы больше количество задач, которые могут выполняться одновременно.

...