Какой диспетчер кластеров используется в Databricks? Как изменить количество исполнителей в кластерах Databricks?





What is the cluster manager used in Databricks?
Azure Databricks опирается на возможности Spark, предоставляя облачная платформа с нулевым управлением, который включает:
Среда выполнения Databricks построена на основе Apache Spark и изначально создана для облака Azure.
С параметром Бессерверный Azure Databricks полностью абстрагируется от сложности инфраструктуры и необходимости в специальных знаниях для установки и настройки вашей инфраструктуры данных. Бессерверный вариант помогает специалистам по данным быстро выполнять итерации в команде.
Для инженеров данных, которые заботятся о производительности производственных заданий, Azure Databricks предоставляет механизм Spark, который работает быстрее и производительнее благодаря различным оптимизациям на уровне ввода-вывода и уровне обработки (Databricks I/O).
How do I change the number of executors in Databricks clusters ?
При создании кластера вы можете указать либо фиксированное количество воркеров для кластера, либо указать минимальное и максимальное количество воркеров для кластера.
При предоставлении кластера фиксированного размера: Azure Databricks гарантирует наличие в кластере указанного количества рабочих процессов. Когда вы указываете диапазон количества рабочих, Databricks выбирает соответствующее количество рабочих, необходимое для выполнения вашего задания. Это называется автомасштабированием.
С автомасштабированием: Azure Databricks динамически перераспределяет работников с учетом характеристик вашей работы. Некоторые части вашего конвейера могут требовать больше вычислительных ресурсов, чем другие, и Databricks автоматически добавляет дополнительных рабочих на этих этапах вашей работы (и удаляет их, когда они больше не нужны).
Автомасштабирование упрощает достижение высокой степени использования кластера, поскольку вам не нужно выделять кластер в соответствии с рабочей нагрузкой. Это особенно относится к рабочим нагрузкам, требования к которым со временем меняются (например, изучение набора данных в течение дня), но также может применяться к однократно более коротким рабочим нагрузкам, требования к подготовке которых неизвестны. Таким образом, автомасштабирование предлагает два преимущества:
Примечание: В зависимости от постоянного размера кластера и рабочей нагрузки автоматическое масштабирование дает вам одно или оба этих преимущества одновременно. Размер кластера может стать меньше минимального количества рабочих процессов, выбранных, когда облачный провайдер завершает работу экземпляров. В этом случае Azure Databricks постоянно пытается повторно подготовить экземпляры, чтобы поддерживать минимальное количество рабочих процессов.
Автомасштабирование кластера недоступно для заданий с отправкой по искре. Дополнительные сведения об автомасштабировании см. в статье Автомасштабирование кластера.
Надеюсь это поможет.
Итак, какой менеджер кластера используется в Databricks?
Не совсем понимаю, этот ответ принят как правильный. Он НЕ отвечает на вопрос «Какой диспетчер кластеров используется в Databricks?»
Чтобы ответить на вопрос:
What is the cluster manager used in Databricks?
Я пытаюсь выкопать эту информацию, но я не смог найти никакой информации об этом в официальных документах.
Похоже, Databricks не использует ни один из диспетчеров кластеров из Spark, упомянутых здесь.
Согласно эта презентация, на странице 23 упоминаются 3 части диспетчера кластера Databricks.
Поэтому я предполагаю, что Databricks использует собственный менеджер кластера.
Я очень надеюсь, что databricks когда-нибудь опубликует эту информацию.
Тем не менее, вопрос по-прежнему интересен с точки зрения «за капотом». В какой-то момент @CHEEKATLAPRADEEP-MSFT был задействован в качестве менеджера кластера. Сомневаюсь, что они переписали всю логику распределения ресурсов. Spark уже имеет логику динамического распределения ресурсов в своем источнике, поэтому я предполагаю, что они адаптировали ее для «управляемого» использования облачного кластера.