Открыть сервис

Amazon EMR

Amazon EMR — это облачный сервис для обработки больших данных, предоставляемый Amazon Web Services (AWS). Он предназначен для запуска распределённых вычислительных фреймворков, таких как Apache Hadoop, Apache Spark, Apache Hive, Apache HBase, Apache Flink и Presto, на кластерах виртуальных серверов (экземпляров EC2) в инфраструктуре AWS. Сервис автоматизирует развёртывание, настройку и масштабирование кластеров, позволяя пользователям сосредоточиться на анализе данных, а не на управлении инфраструктурой. Название EMR изначально расшифровывалось как «Elastic MapReduce», что отражало его основную функцию — выполнение вычислений по модели MapReduce, разработанной Google.

История

Развитие Amazon EMR связано с ростом популярности экосистемы Hadoop в начале 2010-х годов. В то время развёртывание кластера Hadoop требовало значительных усилий по администрированию серверов, настройке сети и управлению хранилищем. Amazon, стремясь упростить этот процесс для своих клиентов, запустил сервис Amazon Elastic MapReduce в 2009 году.

Первоначально сервис поддерживал только фреймворк Hadoop и его компонент MapReduce. Пользователи загружали данные в Amazon S3, а EMR автоматически создавал кластер из экземпляров EC2, запускал задачу MapReduce и завершал работу кластера после её выполнения. Такая модель позволяла платить только за фактическое время вычислений.

Со временем функциональность сервиса расширилась. В 2012 году была добавлена поддержка Apache Hive для выполнения SQL-подобных запросов. В 2014 году — Apache Spark, который стал альтернативой MapReduce для многих задач. В последующие годы были интегрированы Apache HBase (база данных реального времени), Presto (интерактивные запросы) и Apache Flink (потоковая обработка). В 2017 году сервис был переименован в Amazon EMR, чтобы отразить поддержку не только MapReduce, но и других фреймворков.

Ключевым этапом стало внедрение Amazon EMR Serverless в 2021 году. Эта опция позволила запускать задания без необходимости создавать и управлять кластерами, полностью автоматизируя выделение ресурсов.

Архитектура и компоненты

Amazon EMR работает на основе инфраструктуры AWS, используя несколько ключевых сервисов.

Вычислительные ресурсы (Amazon EC2)

Кластер EMR состоит из одного или нескольких виртуальных серверов — экземпляров Amazon EC2. Тип и количество экземпляров определяют вычислительную мощность кластера. Пользователь может выбирать из широкого спектра типов, включая оптимизированные для вычислений, памяти или хранения данных. Кластеры могут быть одноузловыми (для тестирования) или многоузловыми (для производственных нагрузок).

Хранилище данных

EMR поддерживает несколько моделей хранения:

Управляющий слой

Сервис включает в себя управляющий компонент, который отвечает за:

Классификация типов кластеров

Amazon EMR предлагает несколько способов развёртывания, различающихся по управляемости и стоимости.

Долгоживущие кластеры

Кластеры, которые работают непрерывно в течение длительного времени (дни, недели, месяцы). Они подходят для интерактивных запросов, потоковой обработки или приложений, требующих постоянного доступа к данным в HDFS. Пользователь управляет жизненным циклом кластера самостоятельно.

Временные (транзиентные) кластеры

Кластеры, которые создаются для выполнения одного или нескольких заданий и автоматически завершают работу после их окончания. Это наиболее экономичный вариант, так как оплата идёт только за время вычислений. Подходит для пакетной обработки больших объёмов данных, например, ежедневных отчётов.

Amazon EMR Serverless

Бессерверная опция, запущенная в 2021 году. Пользователь не управляет кластерами, а только отправляет задания (например, Spark-приложения). Сервис автоматически выделяет необходимые ресурсы, масштабирует их и завершает работу после выполнения. Оплата производится за объём обработанных данных (в гигабайтах-секундах). Этот вариант упрощает эксплуатацию, но может быть дороже для длительных или предсказуемых нагрузок.

Кластеры с выделенными узлами

Пользователь может арендовать выделенные физические серверы (Dedicated Hosts) или экземпляры с гарантированной производительностью (Reserved Instances) для снижения стоимости при долгосрочном использовании.

Применение

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

Пакетная обработка (ETL)

Извлечение, преобразование и загрузка (ETL) данных из различных источников (базы данных, логи, файлы) в хранилища данных или аналитические системы. Например, компания может ежедневно обрабатывать логи веб-сервера, хранящиеся в S3, с помощью Spark или Hive, преобразовывать их в структурированный формат и загружать в Amazon Redshift для последующей аналитики.

Интерактивная аналитика

Выполнение SQL-подобных запросов к большим наборам данных с использованием Presto или Spark SQL. Аналитики могут получать ответы на вопросы в реальном времени без необходимости писать сложные программы.

Машинное обучение

Подготовка данных для обучения моделей машинного обучения. EMR может использоваться для очистки, агрегации и преобразования больших массивов данных, которые затем передаются в сервисы AWS для обучения моделей (например, Amazon SageMaker). Также на кластерах EMR можно запускать распределённое обучение с использованием Spark MLlib.

Обработка потоковых данных

Анализ данных в реальном времени с помощью Apache Flink или Spark Streaming. Например, обработка потоков данных с датчиков IoT, финансовых транзакций или кликов пользователей на веб-сайте.

Научные исследования

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

Преимущества и недостатки

Преимущества

Недостатки

Интересные факты

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →