Amazon EMR позволяет быстро и легко выделять необходимое количество ресурсов, а также добавлять или удалять ресурсы автоматически или вручную. Эта возможность окажется чрезвычайно полезной в тех случаях, когда требования по обработке данных постоянно меняются или же их невозможно прогнозировать. Например, если основная масса работы приходится на ночное время суток, потребность в ресурсах может составлять 100 инстансов в дневное время и 500 инстансов в ночное. Также потребность в ресурсах может значительно возрастать на короткий период времени. В Amazon EMR можно выделить сотни или тысячи инстансов, как только они понадобятся, выполнить автоматическое масштабирование для обеспечения требований к вычислительным ресурсам и остановить кластер по завершении задания, чтобы не платить за лишние ресурсы.

Начать работу с Amazon EMR

Создать бесплатный аккаунт

Есть вопросы? Задайте их нам!

elastic

Добавление или удаление ресурсов выполняют следующим образом.

Развертывание множества кластеров. Если потребуется больше ресурсов, вы с легкостью запустите новый кластер и остановите его, когда он перестанет использоваться. Ограничений на количество кластеров нет. Несколько кластеров может понадобиться при наличии нескольких пользователей или приложений. Например, вы можете хранить входные данные в Amazon S3 и запускать по кластеру для каждого обрабатывающего их приложения. Один кластер можно оптимизировать для использования ресурсов ЦПУ, другой – для использования ресурсов хранилища и т. д.

Изменение размеров запущенного кластера. Amazon EMR позволяет легко осуществить автоматическое масштабирование или ручное изменение размера запущенного кластера.Вы можете осуществить масштабирование кластера в сторону увеличения, чтобы временно добавить кластеру больше вычислительной мощности, или масштабирование в сторону уменьшения, чтобы избежать расходов на неиспользуемые ресурсы. Например, некоторые пользователи добавляют к своим кластерам сотни инстансов для пакетной обработки данных и удаляют лишние инстансы после ее завершения. При добавлении инстансов в кластер EMR теперь можно использовать выделенные ресурсы сразу, как только они становятся доступными. При масштабировании в сторону уменьшения EMR будет заранее выбирать свободные узлы, чтобы уменьшить воздействие на выполняемые задания.

Amazon EMR позволяет снизить стоимость обработки больших объемов данных. Снизить стоимость обработки данных позволяют такие возможности, как низкие посекундные тарифы, возможность использования спотовых или зарезервированных инстансов Amazon EC2, эластичность и интеграция с Amazon S3.

Низкие посекундные тарифы. В Amazon EMR плата начисляется на посекундной основе (минимальный уровень составляет одну минуту) и начинается с 0,015 USD в час за инстанс Small (131,40 USD в год). Подробнее см. в разделе «Цены».

Интеграция спотовых инстансов Amazon EC2. Клиенты могут предлагать свою цену на ресурсы спотовых инстансов Amazon EC2. Спотовые инстансы позволяют указать максимальный почасовой платеж, на который вы согласны для запуска конкретного типа инстанса. Пока цена предложения превышает цену на аукционе спотовых инстансов, инстансы сохраняются за клиентом и, как правило, обходятся ему дешевле, чем инстансы по требованию. Cпотовая цена изменяется на основании спроса и предложения на инстансы, при этом клиенты никогда не платят больше указанной ими суммы. Использование спотовых инстансов в Amazon EMR не представляет никакой сложности и позволяет сэкономить время и деньги. В состав кластеров Amazon EMR входят постоянные узлы с файловой системой HDFS и узлы заданий, которые ее не содержат. Узлами заданий лучше всего назначать спотовые инстансы, потому что в этом случае данные, хранящиеся в файловой системе HDFS, не будут потеряны, если цена спотовых инстансов возрастет и они будут прерваны. (См. подробнее о постоянных узлах и узлах заданий.)

Зарезервированные инстансы Amazon EC2 позволяют вам сохранить преимущества эластичных вычислений, снижая затраты и резервируя вычислительные мощности. При использовании зарезервированных инстансов вы вносите небольшой однократный платеж и получаете существенную скидку с посекундной оплаты данного инстанса. Использовать зарезервированные инстансы в Amazon EMR очень просто, при этом экономия может составить до 65 % по сравнению с ценой инстансов по требованию.

Эластичность. Поскольку Amazon EMR позволяет легко обеспечить автоматическое масштабирование кластера, нет необходимости выделять избыточные ресурсы. Если вы не знаете, какой объем данных будет обрабатываться вашим кластером (кластерами) через 6 месяцев, или если при обработке данных периодически возникают пиковые нагрузки, с Amazon EMR это перестанет быть проблемой, потому что он дает возможность добавить требуемый объем ресурсов или удалить лишние ресурсы в любой момент.

Интеграция Amazon S3. Благодаря применению файловой системы EMR (EMRFS), сервис Amazon S3 эффективно и безопасно используется кластерами EMR в качестве хранилища объектов для Hadoop. Данные можно хранить в Amazon S3 и обрабатывать их множеством кластеров Amazon EMR. Каждый кластер оптимизируется для того или иного вида рабочей нагрузки. Это более эффективно, чем использовать один и тот же кластер для разных видов рабочей нагрузки с разными требованиями. Например, из двух кластеров, обрабатывающих одни и те же данные в Amazon S3, один можно оптимизировать для приложений, интенсивно использующих ресурсы ввода-вывода, а другой – для использования ресурсов ЦПУ. Кроме того, при хранении входных и выходных данных в Amazon S3 можно останавливать кластеры, которые больше не требуются.

EMRFS отличается высокой производительностью операций чтения и записи в среде Amazon S3, поддерживает серверное и клиентское шифрование S3 с использованием службы управления ключами AWS (KMS) и клиентских ключей, а также дополнительное единое представление для проверки согласованности списков и операций чтения после записи для объектов, которые отслеживаются в метаданных. Кластеры Amazon EMR работают как с файловой системой EMRFS, так и с HDFS, поэтому выбирать между хранением данных в кластере и в среде Amazon S3 не потребуется.

Интеграция каталога данных Glue AWS. Каталог данных AWS Glue можно использовать в качестве управляемого репозитория метаданных для хранения метаданных внешних таблиц Apache Spark и Apache Hive. Кроме того, он предоставляет возможность автоматического обнаружения схем данных и хранения истории версий. Это позволяет легко сохранять метаданные внешних таблиц вне кластера в Amazon S3.

С Amazon EMR можно использовать разные хранилища данных, в том числе Amazon S3, распределенную файловую систему Hadoop (HDFS) и Amazon DynamoDB.

DetailsPage_EMR-Diagram

Amazon S3. Amazon S3 – это высоконадежный, масштабируемый, безопасный, производительный и недорогой сервис хранения данных. Amazon EMR использует файловую систему EMR (EMRFS) для эффективного и безопасного хранения объектов Hadoop в Amazon S3. Сервис Amazon EMR значительно усовершенствовал платформу Hadoop и обеспечил эффективную обработку больших объемов данных, хранящихся в Amazon S3. Кроме того, в EMRFS есть дополнительное единое представление для проверки согласованности списков и операций чтения после записи для объектов в Amazon S3. EMRFS поддерживает серверное и клиентское шифрование S3 при работе с зашифрованными объектами Amazon S3 и позволяет использовать как службу управления ключами AWS (KMS), так и собственного поставщика ключей.

При запуске кластера Amazon EMR начинает потоковую передачу данных из Amazon S3 на каждый инстанс кластера и сразу запускает их обработку. Одним из преимуществ хранения данных в Amazon S3 и обработки их с помощью Amazon EMR является возможность обрабатывать одни и те же данные множеством кластеров. Например, кластер разработки Hive, оптимизированный для использования ресурсов памяти, и производственный кластер Pig, оптимизированный для использования ресурсов ЦПУ, могут использовать один и тот же набор входных данных.

Распределенная файловая система Hadoop (HDFS). HDFS – это файловая система Hadoop. Текущая топология сервиса Amazon EMR объединяет инстансы в 3 логических группы: группа Master, исполняющая планировщик ресурсов YARN и сервис узлов имен HDFS; группа Core, исполняющая HDFS DataNode Daemon и планировщик узлов YARN, и группа Task, исполняющая планировщик узлов YARN. Amazon EMR устанавливает HDFS в хранилище, связанное с инстансами в группе Core.

Каждый инстанс EC2 включает в себя подключенный фиксированный объем хранилища, называемого «хранилищем инстанса». Хранилище в инстансе можно изменять путем добавления в инстанс томов Amazon EBS. Amazon EMR позволяет добавлять следующие типы томов: универсальные (SSD), выделенные (SSD) и магнитные. Тома EBS, добавленные к кластеру EMR, не сохраняют данные после остановки кластера. Сервис EMR автоматически очищает тома после завершения работы кластера.

Можно также включить полное шифрование для файловой системы HDFS с помощью конфигураций безопасности Amazon EMR или создав вручную зоны шифрования файловой системы HDFS с помощью сервера управления ключами Hadoop.

Amazon DynamoDB. Amazon DynamoDB – это производительный, полностью управляемый сервис баз данных NoSQL. Amazon EMR напрямую интегрируется с Amazon DynamoDB, что обеспечивает быструю и эффективную обработку хранящихся в Amazon DynamoDB данных и обмен данными между Amazon DynamoDB, Amazon S3 и HDFS в Amazon EMR.

Другие хранилища данных AWS. Пользователи Amazon EMR используют также Amazon Relational Database Service (веб-сервис, позволяющий без труда создавать и масштабировать реляционные базы данных в облаке и управлять ими), Amazon Glacier (сервис хранения данных, отличающийся очень низкой стоимостью и обеспечивающий безопасное и надежное хранение архивов и резервных копий) и Amazon Redshift (производительный, полностью управляемый сервис, позволяющий хранить объемы данных в несколько петабайтов). AWS Data Pipeline – это веб-сервис, помогающий надежно и с заданными интервалами обрабатывать данные, а также перемещать их между различными вычислительными сервисами, хранилищами AWS или локальными источниками.

Amazon EMR поддерживает использование эффективных и проверенных инструментов Hadoop, таких как Hive, Pig, HBase и Impala, а также распределенных вычислительных систем помимо Hadoop MapReduce, таких как Spark и Presto (устанавливаются с помощью загрузочного скрипта). Вы также можете воспользоваться приложениями Hue или Zeppelin в качестве графического пользовательского интерфейса для работы с приложениями в своем кластере.

Hive – это инфраструктура хранения данных и аналитики с открытым кодом, представляющая собой надстройку Hadoop. Hive использует язык Hive QL на основе SQL, обеспечивающий структурирование, систематизацию и выдачу запросов данных. Hive QL – это расширение стандартного языка SQL. Он обеспечивает превосходную поддержку функций map/reduce и сложных расширяемых типов данных, определяемых пользователем, например JSON и Thrift. Это позволяет обрабатывать источники сложных неструктурированных данных, такие как текстовые документы и лог-файлы. Hive поддерживает пользовательские расширения с помощью определяемых пользователем функций на Java. Amazon EMR добавляет к Hive целый ряд возможностей, включая прямую интеграцию с Amazon DynamoDB и Amazon S3. Например, с Amazon EMR можно автоматически загружать разделы таблиц из Amazon S3, записывать данные в таблицы в Amazon S3 без использования временных файлов и получать доступ к таким ресурсам в Amazon S3, как скрипты для пользовательских операций map/reduce и дополнительные библиотеки. Подробнее о Hive и Amazon EMR.

Pig – это пакет аналитики с открытым исходным кодом, представляющий собой надстройку сервиса Hadoop. Pig использует язык Pig Latin на основе SQL, обеспечивающий структурирование, систематизацию и выдачу запросов данных. Pig Latin реализует возможности аналогично SQL и обеспечивает превосходную поддержку функций map/reduce functions и сложных расширяемых типов данных, определяемых пользователем. Это позволяет обрабатывать источники сложных неструктурированных данных, такие как текстовые документы и лог-файлы. Pig поддерживает пользовательские расширения с помощью определяемых пользователем функций на Java. Amazon EMR добавляет к Pig целый ряд возможностей, в частности возможность использования множества файловых систем («чистый» Pig обладает доступом только к одной удаленной файловой системе), загрузки пользовательских JAR и скриптов из Amazon S3 (напр., REGISTER s3:///my-bucket/piggybank.jar) и дополнительные возможности обработки типов данных String and DateTime. Подробнее о Pig и Amazon EMR.

HBase – это распределенная нереляционная база данных с открытым исходным кодом на основе базы данных BigTable от Google. Она разработана в рамках проекта Apache Software Foundation's Hadoop, представляет собой надстройку распределенной файловой системы Hadoop (HDFS) и обеспечивает аналогичные BigTable возможности для Hadoop. HBase – это отказоустойчивое эффективное средство хранения больших количеств разреженных данных, сжимаемых и сохраняемых по столбцам. Кроме того, HBase обеспечивает быстрый поиск данных, поскольку она кэширует данные в памяти. HBase оптимизирована для операций последовательной записи и эффективно выполняет операции пакетной вставки, обновления и удаления данных. HBase эффективно работает с Hadoop, используя его файловую систему и обеспечивая прямой ввод и вывод данных для заданий Hadoop. HBase также интегрируется с Apache Hive, поддерживая запросы SQL-типа к таблицам HBase, совместима с таблицами Hive, а также поддерживает соединение с базами данных на Java (JDBC). С помощью Amazon EMR можно использовать Amazon S3 в качестве хранилища данных для Apache HBase , что позволяет уменьшить затраты и снизить эксплуатационную сложность. Если файловая система HDFS используется в качестве хранилища данных, то можно создать резервную копию HBase в Amazon S3, а затем восстановить данные из ранее созданной резервной копии. Подробнее о HBase и Amazon EMR.

Phoenix обеспечивает выполнение SQL-запросов с низкой задержкой и поддерживает возможность проведения ACID-транзакций с данными, хранимыми в Apache HBase. Можно легко создавать вторичные индексы для дополнительного повышения производительности, а также создавать различные представления одной и той же базовой таблицы HBase. Подробнее о Phoenix в Amazon EMR.

Impala – это один из инструментов с открытым исходным кодом семейства Hadoop, предназначенный для интерактивных спонтанных запросов с помощью синтаксиса SQL. В нем используется не MapReduce, а движок массово-параллельной обработки (MPP), как в традиционных системах управления реляционными базами данных (СУРБД). Подробнее об Impala и Amazon EMR.

HUE – это пользовательский интерфейс с открытым исходным кодом для Hadoop, упрощающий запуск и разработку запросов Hive, управление файлами в HDFS, запуск и разработку скриптов Pig и управление таблицами. HUE в Amazon EMR также интегрируется с Amazon S3, что позволяет выдавать запросы непосредственно к объектам в Amazon S3 и легко осуществлять обмен файлами между HDFS и Amazon S3. Подробнее о HUE и Amazon EMR.

Spark – это движок семейства Hadoop для быстрой обработки больших наборов данных. Он задает преобразование данных с помощью размещенных в оперативной памяти отказоустойчивых распределенных наборов данных (RDD) и направленных ациклических графов (DAG). Spark также включает в себя Spark SQL, Spark Streaming, MLlib и GraphX. Подробнее о Spark в Amazon EMR.

Presto – это распределенный движок запросов SQL с открытым исходным кодом, оптимизированный для выполнения спонтанного анализа данных с низкой задержкой. Он поддерживает стандарт ANSI SQL, включая комплексные запросы, агрегацию, слияние и функции окон. Presto может обрабатывать данные из множества источников, включая распределенную файловую систему Hadoop (HDFS) и Amazon S3. Подробнее о Presto в Amazon EMR.

Zeppelin – это графический пользовательский интерфейс, создающий интерактивные блокноты с возможностью совместного использования для исследования данных с помощью Spark. Для работы с данными и быстрой визуализации результатов можно использовать языки Scala, Python, SQL (с модулем Spark SQL) или HiveQL. С блокнотами Zeppelin могут совместно работать несколько пользователей, а визуализацию можно публиковать на внешних панелях аналитики. Подробнее о Zeppelin в Amazon EMR.

Oozie – это планировщик рабочих процессов для Hadoop, позволяющий создавать ориентированные ациклические графы (DAG) действий. Он также позволяет легко запускать рабочие процессы Hadoop при выполнении некоторого действия или в определенный момент времени. Подробнее о Oozie в Amazon EMR.

Tez – это инфраструктура исполнения на платформе Hadoop YARN, обеспечивающая высокую производительность за счет оптимизации планов выполнения запросов и улучшенного управления ресурсами. Tez можно использовать с Apache Hive и с Apache Pig вместо Hadoop MapReduce. Интерфейс пользователя Tez позволяет визуализировать планы исполнения. Подробнее о Tez в Amazon EMR.

Flink – это движок потоковых данных, упрощающий запуск обработки потоков в режиме реального времени для источников данных с высокой пропускной способностью. Он поддерживает семантику времени события для событий с нарушением очередности, семантику «ровно один раз», контроль замедленной обратной реакции и API, оптимизированные под написание приложений как для потоковой, так и для пакетной обработки. Подробнее о Flink в EMR

Другие инструменты. Amazon EMR также поддерживает широкий спектр других распространенных приложений и инструментов, например R, Apache MXNet (глубокое обучение), Mahout (машинное обучение), Ganglia (мониторинг), Accumulo (безопасная база данных NoSQL), Sqoop (модуль подключения реляционных баз данных), HCatalog (управление таблицами и хранилищем) и т. д. Команда Amazon EMR осуществляет поддержку репозитория загрузочных скриптов с открытым исходным кодом для установки дополнительного ПО, настройки кластера, а также использования их в качестве примеров для создания ваших собственных загрузочных скриптов.

Tune Your Cluster. Вы можете выбрать типы инстансов EC2 для своего кластера (стандартные, оптимизированные для использования ресурсов памяти, ЦПУ, выполнения операций ввода-вывода и т. д.), исходя из требований вашего приложения. С помощью данного инструмента вы получаете полный доступ к каждому инстансу и можете выполнять настройку кластера в соответствии текущим требованиям. Подробнее о поддерживаемых типах инстансов Amazon EC2.

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

Мониторинг кластера. Amazon CloudWatch можно использовать для мониторинга двадцати трех пользовательских метрик Amazon EMR, таких как среднее число запущенных заданий map and reduce. Для этих метрик можно также задать генерацию оповещений. Подробнее о мониторинге кластеров Amazon EMR.

Ответ на события. Можно использовать типы событий Amazon EMR в Amazon CloudWatch Events для ответа на изменения состояния кластеров Amazon EMR.Используя простые и быстро настраиваемые правила, можно сопоставлять события и маршрутизировать их в темы Amazon SNS, функции AWS Lambda, очереди Amazon SQS и т. п. Подробнее о событиях в кластерах Amazon EMR.

Планирование повторяющихся потоков работ. С помощью AWS Data Pipeline можно планировать повторяющиеся потоки работ с использованием Amazon EMR. AWS Data Pipeline – это веб-сервис, помогающий надежно и с заданными интервалами обрабатывать данные и перемещать их между различными вычислительными сервисами и сервисами хранилища AWS, а также пользовательскими локальными источниками данных. Подробнее об Amazon EMR и Data Pipeline.

Cascading. Cascading – это открытая библиотека Java, включающая API запросов, планировщик запросов и планировщик заданий для создания и запуска приложений Hadoop MapReduce. Приложения, разработанные на основе Cascading, компилируются и упаковываются в стандартные Hadoop-совместимые файлы JAR аналогично другим приложениям Hadoop. Подробнее о Cascading и Amazon EMR.

Глубокое обучение. Использование популярных платформ для глубокого обучения, например Apache MXNet, позволяет определять, обучать и развертывать глубокие нейронные сети. Эти платформы можно использовать в кластерах Amazon EMR с инстансами на графических процессорах. Подробнее о MXNet в Amazon EMR.

Контроль сетевого доступа к кластеру. Кластер можно запускать в Amazon Virtual Private Cloud (VPC) – логически изолированном разделе облака AWS. Вы можете полностью контролировать свою среду виртуальной сети, в том числе выбирать собственный диапазон IP-адресов, создавать подсети, а также настраивать таблицы маршрутизации и сетевые шлюзы. Подробнее об Amazon EMR и Amazon VPC.

Управление пользователями, разрешениями и шифрованием. Для управления доступом и разрешениями можно использовать инструменты AWS Identity and Access Management (IAM), такие как IAM Users and Roles. Например, определенным пользователям можно открыть доступ к кластерам для чтения, но не для записи. Кроме того, можно использовать конфигурации безопасности Amazon EMR для включения различных вариантов шифрования хранимых и передаваемых данных, включая поддержку шифрования для Amazon S3 и аутентификацию по протоколу KerberosПодробнее об управлении доступом к кластеру и возможностях шифрования Amazon EMR.

Установка дополнительного программного обеспечения. Для установки дополнительного программного обеспечения в кластере можно использовать операции начальной загрузки или собственный образ машины Amazon (AMI) под управлением Amazon Linux. Эти действия выполняются с помощью скриптов, запускаемых в узлах кластера при запуске кластера сервисом Amazon EMR. Скрипты запускаются перед началом работы Hadoop, до того, как узел начнет обрабатывать данные. Можно также предварительно загрузить и использовать программное обеспечение в собственном образе Amazon Linux AMI.Подробнее об операциях начальной загрузки Amazon EMR и собственных образах Amazon Linux AMI.

Эффективное копирование данных. Вы можете быстро перемещать большие объемы данных из Amazon S3 в HDFS, из HDFS в Amazon S3 или между корзинами Amazon S3 с помощью S3DistCp от Amazon EMR, представляющего собой открытое расширение инструмента Distcp и использующего MapReduce для эффективного перемещения больших объемов данных. Подробнее об S3DistCp

Hadoop Streaming. Hadoop Streaming – это утилита Hadoop для разработки исполняемых файлов MapReduce не на языке Java. Streaming представляет собой файл JAR. Подробнее о Hadoop Streaming и Amazon EMR.

Пользовательские файлы Jar. Напишите программу Java, скомпилируйте ее для нужной версии Hadoop и загрузите ее в Amazon S3, после чего вы сможете отправлять задания Hadoop в кластер с помощью интерфейса Hadoop JobClient. Подробнее об обработке собственных файлов Jar с помощью Amazon EMR.

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

Передача данных

Мониторинг

Performance Tuning

Graphical IDE

Hadoop Distribution

BI/Visualization

Бизнес-аналитика

Data Exploration

BI/Visualization

Graphical IDE

BI/Visualization