Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
На этой странице описаны рекомендации по настройке классических вычислительных ресурсов. Для большинства новых рабочих нагрузок Databricks рекомендует использовать бессерверные вычисления, которые не требуют настройки. Если рабочая нагрузка не поддерживается на бессерверных вычислениях (см. ограничения без сервера), используйте следующие рекомендации для настройки классического вычислительного ресурса.
Примечание.
Структурированные рабочие процессы потоковой передачи имеют определенные рекомендации по настройке. См. Рекомендации по эксплуатации для структурированной потоковой передачи.
Режим доступа
Классические вычислительные ресурсы можно назначить стандартному или выделенному режиму доступа, который определяет, кто может подключаться к вычислительному ресурсу и использовать его.
Databricks рекомендует использовать стандартный режим доступа для большинства рабочих нагрузок. Стандартные вычислительные ресурсы могут совместно использоваться несколькими пользователями и группами при применении изоляции пользователей и всех разрешений доступа к данным. Это делает его более простым в управлении и экономически эффективным вариантом для большинства рабочих нагрузок.
Используйте режим выделенного доступа только в том случае, если для вашей рабочей нагрузки действуют определенные ограничения стандартных вычислительных ресурсов, например ML Runtime на GPU, API RDD или R. Дополнительные сведения см. в разделе Требования и ограничения стандартных вычислительных ресурсов.
Если включён Unity Catalog, не задавайте spark.databricks.passthrough.enabled. Сквозная передача учетных данных — это устаревший режим доступа, который несовместим с Unity Catalog.
См. режимы доступа.
Версия Databricks Runtime
Используйте последнюю версию Databricks Runtime с долгосрочной поддержкой (LTS). Версии LTS получают расширенные исправления безопасности и исправления ошибок, обеспечивая стабильность рабочих нагрузок и совместимость с последними функциями платформы.
Выберите среду выполнения машинного обучения только в том случае, если рабочая нагрузка использует GPU, распределенное обучение машинного обучения или AutoML. Databricks Runtime для машинного обучения устанавливает большой набор библиотек, которые, если они не нужны, могут конфликтовать с вашими собственными зависимостями, вызывая ошибки или скрытые нарушения корректности. См. статью "Обучение моделей ИИ и машинного обучения".
Гигиена конфигурации
Эти практики помогают поддерживать конфигурации вычислительных ресурсов в чистоте и обеспечивают переносимость рабочих нагрузок.
Избегайте использования скриптов инициализации
Скрипты инициализации могут приводить к непредвиденному поведению, включая конфликты библиотек, которые приводят к сбоям в рабочих нагрузках и делают среды менее предсказуемыми. Вместо этого добавьте библиотеки в политики вычислений, используйте %pip install в записных книжках или определите зависимости в спецификации среды. См. раздел "Добавление библиотек в политику".
Избегайте жесткой кодировки Spark
Избегайте жестко прописывать конфигурации Spark (например, spark.executor.memory или spark.dynamicAllocation.*) в определениях вычислений или заданий. Жёстко заданные значения переопределяют встроенные оптимизации, предоставляемые Azure Databricks, что часто приводит к лишним затратам или ухудшению производительности. Используйте конфигурации сеанса на уровне блокнота только в тех случаях, когда у вас есть веская причина переопределить настройки по умолчанию.
Избегайте путей к локальному хранилищу вычислений
Не сохраняйте данные на локальных путях вычислений, которые не сохраняются за пределами жизненного цикла вычислений. Вместо этого используйте тома каталога Unity или временное хранилище. См. раздел "Что такое тома?".
Избегайте подключений DBFS
Подключения DBFS не имеют надлежащих списков управления доступом (ACL). Вместо этого используйте тома каталога Unity или файловые системы рабочей области (WSFS). См. раздел "Что такое тома?".
Не устанавливайте библиотеки, привязанные к вычислительным ресурсам
Установка библиотек на уровне вычислений создает смещение среды между заданиями. Вместо этого используйте %pip install в записных книжках или определите зависимости в спецификации среды. Это также упрощает миграцию классических рабочих нагрузок на бессерверные.
Производительность
Оцените, будет ли вам полезен Photon
Многие рабочие нагрузки выигрывают от Photon, но наибольшую пользу он приносит для рабочих нагрузок SQL и операций DataFrame, связанных со сложными преобразованиями, такими как соединения, агрегации и сканирование больших таблиц. Рабочие нагрузки с частым доступом к диску, широкими таблицами или повторяющейся обработкой данных также видят улучшенную производительность.
Простые пакетные ETL-задания, не предполагающие ресурсоёмких преобразований или больших объёмов данных, могут почти не ощутить эффекта от включения Photon, особенно если запросы обычно выполняются менее чем за две секунды.
Использование автомасштабирования
Настройте автомасштабирование, чтобы длительные задачи могли динамически добавлять и удалять рабочие узлы во время выполнения задания. См. Включение автомасштабирования.
Используйте пулы экземпляров, чтобы сократить время запуска
Пулы экземпляров резервируют вычислительные ресурсы у вашего облачного провайдера. Пулы сокращают время запуска нового кластера и обеспечивают доступность вычислительных ресурсов. См. справочник по конфигурации пула.
Оптимизация затрат
Использование политик вычислений
Azure Databricks рекомендует использовать политики вычислений. Политики вычислений позволяют создавать предварительно настроенные вычислительные ресурсы, предназначенные для конкретных целей, таких как личные вычисления, общие вычислительные ресурсы, продвинутые пользователи и задания. Политики ограничивают решения, которые необходимо принять при настройке параметров вычислений.
Если у вас нет доступа к политикам, обратитесь к администратору рабочей области. См. статью о политиках и семействах политик по умолчанию.
Использование точечных экземпляров
Настройте точечные экземпляры для рабочих нагрузок с минимальными требованиями к задержке для оптимизации затрат. См. Spot-инстансы.
Рекомендации по размеру вычислений
Примечание.
В следующих рекомендациях предполагается, что у вас есть неограниченное создание кластера. Администраторы рабочей области должны предоставлять этому привилегию только расширенным пользователям.
Люди часто думают о размере вычислительных мощностей с точки зрения числа работников, но есть и другие важные факторы, которые следует учитывать.
- Общее число ядер (вычислений) исполнителя: общее количество ядер по всем исполнителям. Это определяет максимальный параллелизм вычислений.
- Общая память исполнителей: общий объем ОЗУ по всем исполнителям. Это определяет объем данных, которые можно хранить в памяти, прежде чем сбрасывать их на диск.
- Локальное хранилище исполнителя: тип и объем локального дискового хранилища. Локальный диск в основном используется при избытках данных и в случаях перемешивания и кэширования.
К дополнительным вопросам относятся тип и размер экземпляра рабочей роли, которые также оказывают влияние на вышеупомянутые факторы. При изменении размера вычислительных ресурсов следует учитывать:
- Какой объем данных будет использовать ваша рабочая нагрузка?
- Какова вычислительная сложность рабочей нагрузки?
- Откуда считываются данные?
- Как данные секционированы во внешнем хранилище?
- Какая степень параллелизма вам необходима?
Существует балансирующий акт между числом рабочих и размером типов рабочих экземпляров. При настройке вычислений с двумя рабочими возможностями, каждый из которых имеет 16 ядер и 128 ГБ ОЗУ, имеет те же вычислительные ресурсы и память, что и при настройке вычислений с 8 рабочими возможностями, каждый из которых содержит 4 ядра и 32 ГБ ОЗУ.
Примеры конфигурации вычислений
В следующих примерах показаны рекомендации по вычислению на основе определенных типов рабочих нагрузок. Эти примеры также включают конфигурации, которые следует избегать, и причины, почему такие конфигурации не подходят для типов рабочей нагрузки.
Примечание.
Для всех примеров в этом разделе было бы лучше использовать бессерверные вычисления вместо того, чтобы развёртывать новый вычислительный ресурс. Если рабочая нагрузка не поддерживается без сервера, используйте приведенные ниже рекомендации, чтобы настроить классический вычислительный ресурс.
Анализ данных
Аналитики данных обычно выполняют обработку, которая требует данные из нескольких секций, что приводит к множественным операциям перемешивания данных. Вычислительный ресурс с меньшим числом более крупных узлов может снизить объем сетевых и дисковых операций ввода-вывода, необходимых для выполнения этих перетасовок.
Вычисление с одним узлом с большим типом виртуальной машины, скорее всего, лучше всего подходит для одного аналитика.
Аналитические рабочие нагрузки, скорее всего, потребуют считывания одних и тех же данных, поэтому рекомендуемые типы узлов оптимизированы для хранения с включенным кэшем дисков или экземплярами с локальным хранилищем.
Для аналитических рабочих нагрузок рекомендуется использовать следующие дополнительные функции:
- Включите автоматическое завершение, чтобы обеспечить завершение вычислений после периода бездействия.
- Рассмотрите возможность включения автомасштабирования на основе типичной рабочей нагрузки аналитика.
Базовые пакетные ETL
Для простых пакетных ETL-заданий, не требующих ресурсоёмких преобразований, таких как операции соединения или агрегации, используйте экземпляры с меньшими объёмами памяти и хранилища. Это может привести к снижению затрат по сравнению с другими типами работников.
Сложные пакетные ETL
Для сложного ETL-процесса, например такого, который требует операций UNION и JOIN по нескольким таблицам, Azure Databricks рекомендует использовать меньше рабочих узлов, чтобы сократить объем данных, перемещаемых между узлами. Для компенсации уменьшенного числа сотрудников увеличьте размер экземпляров.
Сложные преобразования могут быть интенсивными для вычислений. Если вы наблюдаете значительную выгрузку на диск или ошибки Out Of Memory (OOM), увеличьте объем памяти, доступной в ваших экземплярах.
При необходимости используйте пулы экземпляров, чтобы сократить время запуска вычислительных ресурсов и общее время выполнения при запуске конвейеров заданий.
Обучение моделей машинного обучения
Для обучения моделей машинного обучения Azure Databricks рекомендует создать вычислительный ресурс с помощью политики личных вычислений.
Используйте одноузловую конфигурацию с узлом большого типа для первоначальных экспериментов. При меньшем количестве узлов снижается влияние перетасовок.
Добавление дополнительных рабочих ролей может помочь в стабильности, но избежать добавления слишком большого количества рабочих ролей из-за затрат на перетасовку данных.
Рекомендуемые типы рабочих ролей — это хранилище, оптимизированное с включенным кэшированием дисков, или экземпляр с локальным хранилищем для учета повторяющихся операций чтения одних и тех же данных и включения кэширования обучающих данных.
Дополнительные функции, рекомендуемые для рабочих нагрузок машинного обучения, включают:
- Включите автоматическое завершение, чтобы обеспечить завершение вычислений после периода бездействия.
- Используйте пулы экземпляров, которые позволяют ограничить вычислительные ресурсы предварительно утвержденным типом экземпляра.
- Убедитесь, что единообразные конфигурации вычислительных ресурсов обеспечиваются с помощью политик.