Эластичность

Amazon EMR позволяет просто и быстро выделять необходимое количество ресурсов, а также добавлять или удалять ресурсы автоматически или вручную. Эта возможность чрезвычайно полезна в тех случаях, когда требования по обработке данных постоянно меняются или их невозможно прогнозировать. Например, если основная масса работы приходится на ночное время суток, потребность в ресурсах может составлять 100 инстансов в дневное время и 500 инстансов в ночное. Другой вариант – значительное возрастание потребности в ресурсах на короткий период времени. С помощью 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. Спотовые инстансы позволяют указать максимальную почасовую цену, которую вы готовы платить за использование определенного типа инстанса. Пока цена предложения превышает цену на аукционе спотовых инстансов, инстансы сохраняются за клиентом и, как правило, обходятся ему значительно дешевле, чем инстансы по требованию. Спотовая цена изменяется на основании спроса и предложения на инстансы, но клиенты никогда не платят больше указанной ими максимальной цены. Использование спотовых инстансов в Amazon EMR не представляет никакой сложности и позволяет сэкономить время и деньги. В состав кластеров Amazon EMR входят постоянные узлы с файловой системой HDFS и узлы заданий без нее. Спотовые инстансы лучше всего назначать узлами заданий, потому что в этом случае данные, хранящиеся в файловой системе HDFS, не будут потеряны, если цена спотовых инстансов возрастет и их работа будет прервана. (Подробнее о постоянных узлах и узлах заданий.)

Интеграция зарезервированных инстансов Amazon EC2. Зарезервированные инстансы 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 Key Management Service (KMS) или клиентских ключей, а также предлагает дополнительное единое представление для проверки согласованности списков и операций чтения после записи для объектов, которые отслеживаются в метаданных. Кластеры Amazon EMR работают как с файловой системой EMRFS, так и с HDFS, поэтому выбирать между хранением данных в кластере и в среде Amazon S3 не требуется.

Интеграция каталога данных AWS Glue. Каталог данных 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 Key Management Service (KMS), так и собственного поставщика ключей.

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

Распределенная файловая система Hadoop (HDFS). HDFS – это файловая система Hadoop. Текущая топология сервиса Amazon EMR объединяет инстансы в три логических группы: группа 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) и локальными источниками данных.

Поддержка популярных приложений с открытым исходным кодом

Управление версиями релизов Amazon EMR позволяет без труда выбирать и использовать новейшие проекты с открытым исходным кодом в кластере EMR, включая приложения семейств Apache Spark и Hadoop. Установку и настройку ПО выполняет сервис Amazon EMR, что избавляет от необходимости обслуживать инфраструктуру и позволяет сосредоточиться на реализации потенциала своих данных.

emr-5.16.0

Инструменты Hadoop

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

hadoop-apps

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

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, обеспечивающий структурирование и систематизацию данных, а также отправку запросов к ним. Помимо SQL‑подобных операций, в Pig Latin реализована превосходная поддержка функций map / reduce и сложных расширяемых пользовательских типов данных. Это позволяет обрабатывать источники сложных неструктурированных данных, такие как текстовые документы и файлы журналов. Pig поддерживает пользовательские расширения с помощью определяемых пользователем функций на Java. Amazon EMR добавляет к Pig целый ряд возможностей, в частности возможность использования множества файловых систем (обычно Pig обладает доступом только к одной удаленной файловой системе), возможность загрузки пользовательских JAR и скриптов из Amazon S3 (например, REGISTER s3:///my‑bucket/piggybank.jar) и дополнительные возможности обработки данных типа String и DateTime. Подробнее о Pig и Amazon EMR.

HBase – это нереляционная распределенная БД с открытым исходным кодом, спроектированная по принципам БД BigTable от Google. Она была разработана в рамках проекта Hadoop организации Apache Software Foundation и представляет собой надстройку распределенной файловой системы Hadoop (HDFS), которая обеспечивает для Hadoop возможности, аналогичные BigTable. HBase предлагает эффективное отказоустойчивое хранение большого количества разреженных данных благодаря сжатию и хранению по столбцам. Кроме того, HBase обеспечивает быстрый поиск данных, поскольку кэширует данные в памяти. База данных HBase оптимизирована для операций последовательной записи и эффективно выполняет операции пакетной вставки, обновления и удаления данных. HBase эффективно работает с Hadoop, используя его файловую систему и обеспечивая прямой ввод и вывод данных для заданий Hadoop. HBase интегрируется с Apache Hive, что позволяет отправлять SQL‑подобные запросы к таблицам HBase, выполнять операции слияния с таблицами Hive и использовать стандарт Java Database Connectivity (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.

Presto – это ядро обработки распределенных SQL‑запросов с открытым исходным кодом, оптимизированное для выполнения спонтанного анализа данных с низкой задержкой. Оно поддерживает стандарт ANSI SQL, включая комплексные запросы, агрегацию, объединение и функции окон. Presto может обрабатывать данные из множества источников, включая распределенную файловую систему Hadoop (HDFS) и Amazon S3. Узнайте, что такое Presto и как использовать 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 осуществляет поддержку репозитория загрузочных скриптов с открытым исходным кодом для установки дополнительного ПО и настройки кластера. Их также можно использовать в качестве примеров для создания собственных загрузочных скриптов. 

Дополнительные возможности

Настройка кластера. Можно выбирать типы инстансов EC2 для своего кластера (стандартные, оптимизированные для использования ресурсов памяти, ЦПУ, выполнения операций ввода‑вывода и т. д.) исходя из потребностей приложения. Вы получаете доступ на уровне root к каждому инстансу и можете выполнять настройку кластера в полном соответствии с текущими требованиям. Подробнее о поддерживаемых типах инстансов Amazon EC2.

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

Мониторинг кластера. Amazon CloudWatch можно использовать для мониторинга 23 пользовательских метрик Amazon EMR, таких как среднее число запущенных задач map и 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. Например, определенным пользователям можно открыть доступ к кластерам для чтения, но не для записи. Кроме того, можно использовать конфигурации безопасности 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, а также между корзинами 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 можно использовать со множеством программных инструментов сторонних разработчиков, включая следующие.

Передача данных
Мониторинг
Настройка производительности
Графическая среда IDE
Распространение Hadoop
Бизнес‑аналитика и визуализация
Бизнес‑аналитика
Просмотр данных
Tableau_logo
Бизнес‑аналитика и визуализация
logo-talend-400
Графическая среда IDE
200x100_Jaspersoft_Logo
Бизнес‑аналитика и визуализация

Подробнее о ценах на Amazon EMR

Перейти на страницу цен
Готовы приступить к разработке?
Начало работы с Amazon EMR
Есть вопросы?
Свяжитесь с нами