Рекомендации по использованию Apache Spark и Kubernetes для обработки данных

Если вы используете конвейеры данных и рабочие процессы для передачи данных из одного места в озеро данных, это обычно означает, что команде потребуется обрабатывать огромные объемы данных. Чтобы сделать это масштабируемым способом и обрабатывать сложные этапы вычислений с большим объемом данных (эффективно с точки зрения затрат), Kubernetes - отличный выбор для планирования заданий Spark по сравнению с YARN.

Apache Spark - это платформа, которая может быстро выполнять задачи обработки для очень больших наборов данных, а Kubernetes - это переносимая расширяемая платформа с открытым исходным кодом для управления и оркестровки выполнения контейнерных рабочих нагрузок и служб в кластере из нескольких машин.

С архитектурной точки зрения, когда вы отправляете приложение Spark, оно напрямую взаимодействует с Kubernetes, сервером API, который будет планировать модуль драйвера, контейнер драйвера Spark. Затем драйвер Spark и кластер Kubernetes будут общаться друг с другом, чтобы запросить и запустить исполнителей Spark. Это может происходить статически или может происходить динамически, если вы включаете динамическое приложение.

Управление зависимостями

Когда команда использует Kubernetes, каждое приложение Spark имеет собственный образ Docker, это означает, что команда может иметь полную изоляцию и полный контроль над средой. Команда может установить свою версию Spark, версию Python, зависимости, используя эту архитектуру. Эти контейнеры упаковывают код, необходимый для выполнения рабочей нагрузки, а также все зависимости, необходимые для запуска этого кода, устраняя необходимость поддерживать общую зависимость для всех рабочих нагрузок, выполняемых в общей инфраструктуре.

Динамическое автомасштабирование

Еще одна возможность с этой настройкой заключается в том, что группа может иметь приложения Spark с активированным динамическим распределением и должным сканированием в кластере. Это также приводит к лучшему управлению ресурсами, так как планировщик заботится о выборе узлов для развертывания рабочих нагрузок в сочетании с тем фактом, что в облаке масштабирование кластера вверх / вниз выполняется быстро и легко, потому что это просто вопрос добавления или удаление виртуальных машин в кластер, и у управляемых предложений Kubernetes есть помощники для этого. На практике это позволяет значительно сэкономить.

Развертывание

В современном мире гибридных облаков предприятия хотят предотвратить блокировки. Запуск Spark в Kubernetes означает однократную сборку и развертывание в любом месте, что обеспечивает масштабируемость независимого от облака подхода.

Метрики и безопасность

Что касается метрик, команда может экспортировать все в базу данных временных рядов. Это позволяет наложить границы этапа Spark и метрики использования ресурсов.

Kubernetes - это технология с ролевой моделью контроля доступа и управлением секретами. Команда может использовать множество проектов с открытым исходным кодом, с которыми легко управлять безопасностью, как хранилище HashiCorp.

Наконец, запуск Spark в Kubernetes сэкономит время команды. Время специалистов по обработке данных, инженеров данных и архитекторов данных ценно, и такая установка повысит продуктивность этих людей, а отделы могут привести к экономии.

Заинтересованы в изучении науки о данных?



Подпишитесь на нашу новостную рассылку Acing AI, если вам интересно: