Блог Amazon Web Services
Новость – Amazon EMR на Amazon Elastic Kubernetes Service (EKS)
Оригинал статьи: ссылка (Channy Yun, Principal Developer Advocate)
Десятки тысяч заказчиков используют Amazon EMR для запуска приложений для анализа больших объемов данных на таких фреймворках, как Apache Spark, Hive, HBase, Flink, Hudi и Presto. EMR автоматизирует инициализацию и масштабирование этих фреймворков и оптимизирует производительность, предоставляя широкий диапазон типов инстансов EC2 для удовлетворения ценовых требований, а также требований к производительности. В настоящее время заказчики консолидируют вычислительные ресурсы, используя Kubernetes. Некоторые клиенты, которые сами управляют Apache Spark на Amazon Elastic Kubernetes Service (EKS), хотят использовать EMR, чтобы избавиться от трудоемких задач по установке и управлению необходимых им фреймворков и их интеграции с сервисами AWS. Кроме того, они хотят воспользоваться более быстрой средой исполнения и инструментами для разработки и отладки, которые предоставляет EMR.
Сегодня мы анонсируем выход на рынок Amazon EMR на Amazon EKS, новой возможности развертывания EMR, которая позволяет клиентам автоматизировать инициализацию и управление фреймворками с открытым исходным кодом для работы с большими объемами данных на Amazon EKS. С помощью EMR на EKS клиенты теперь могут запускать приложения Spark совместно с другими типами приложений на одном и том же кластере EKS для повышения эффективности использования вычислительных ресурсов и упрощения управления инфраструктурой.
Клиенты могут развертывать EMR приложения на том же кластере EKS, что и другие типы приложений. Это позволяет им совместно использовать имеющиеся ресурсы и стандартизировать EKS как единое решение для эксплуатации и управления всеми своими приложениями. Клиенты получают все те же возможности EMR на EKS, которые они в настоящее время используют на EC2, такие как доступ к последним версиям фреймворков, оптимизированное время выполнения, EMR ноутбуки для разработки приложений и пользовательский интерфейс Spark для отладки.
Amazon EMR автоматически упаковывает приложение в контейнер с фреймворком для работы с большими объемами данных и предоставляет готовые коннекторы для интеграции с другими сервисами AWS. Затем EMR развертывает приложение на кластере EKS и управляет логированием и мониторингом. С EMR на EKS вы можете получить в 3 раза более высокую производительность по сравнению со стандартной средой исполнения Apache Spark на EKS, используя оптимизированную по производительности среду исполнения Spark, включенную в EMR.
Amazon EMR на EKS – начало работы
Если у вас уже есть кластер EKS, на котором вы запускаете задачи Spark, вы просто регистрируете его в EMR, используя консоль управления AWS, интерфейс командной строки AWS (CLI) или API для развертывания вашего приложения Spark.
Для примера, следующая команда CLI зарегистрирует ваш кластер EKS в EMR.
$ aws emr-containers create-virtual-cluster \
--name <virtual_cluster_name> \
--container-provider '{
"id": "<eks_cluster_name>",
"type": "EKS",
"info": {
"eksInfo": {
"namespace": "<namespace_name>"
}
}
}'
В консоли управления EMR вы можете увидеть его в списке виртуальных кластеров.
При регистрации кластеров Amazon EKS в EMR, на узлы Kubernetes устанавливаются рабочие нагрузки EMR для управления выполнением и автоматическим масштабированием приложений, а также устанавливаются и настраиваются управляемые конечные точки (endpoints) для подключения ноутбуков и SQL-клиентов. EMR создает и развертывает оптимизированную по производительности среду исполнения для фреймворков с открытым исходным кодом, используемых в аналитических приложениях.
Вы можете просто начать запускать свои задачи Spark.
$ aws emr-containers start-job-run \
--name <job_name> \
--virtual-cluster-id <cluster_id> \
--execution-role-arn <IAM_role_arn> \
--virtual-cluster-id <cluster_id> \
--release-label <<emr_release_label> \
--job-driver '{
"sparkSubmitJobDriver": {
"entryPoint": <entry_point_location>,
"entryPointArguments": ["<arguments_list>"],
"sparkSubmitParameters": <spark_parameters>
}
}'
Для мониторинга и отладки задач можно использовать логи, загруженные в Amazon CloudWatch или Amazon Simple Storage Service (S3), что настраивается в разделе monitoringConfiguration. Вы также можете запустить Spark History Server одним щелчком мыши в консоли управления.
Интеграция с Amazon EMR Studio
Теперь вы можете запускать аналитические приложения, используя AWS SDK и AWS CLI, ноутбуки Amazon EMR Studio, а также сервисы по управлению рабочими процессами, такие как Apache Airflow. Мы разработали новый Airflow Operator для Amazon EMR на EKS. Вы можете использовать этот коннектор с Airflow, управляемым вами, или добавить его в Plugin Location для Amazon Managed Workflows for Apache Airflow.
Вы также можете использовать недавно выпущенную предварительную версию Amazon EMR Studio для задач анализа и инжиниринга данных в интегрированной веб-среде разработки (IDE). Amazon EMR Studio позволяет отправлять код ноутбука на EMR-кластеры, развернутые на EKS с помощью интерфейса Studio. После настройки одной или нескольких управляемых конечных точек (endpoints), к которым пользователи Studio могут подключить рабочую среду, EMR Studio сможет взаимодействовать с вашим виртуальным кластером.
В предварительной версии EMR Studio дополнительная плата за создание управляемых конечных точек (endpoints) для виртуальных кластеров не взимается. Чтобы узнать больше, перейдите на статью в блоге или обратитесь к документации.
Функциональность уже доступна для использования
Amazon EMR на Amazon EKS доступен для использования в регионах US East (N. Virginia), US West (Oregon) и Europe (Ireland). Вы можете запускать рабочие нагрузки EMR на AWS Fargate для EKS в качестве бессерверной (serverless) опции, что устраняет необходимость в инициализации и управлении рабочими узлами EKS для запуска подов.
Чтобы узнать больше, обратитесь к документации.
Узнайте все подробности об Amazon EMR на Amazon EKS и начните работать с ним уже сегодня.