Apache Hadoop в сервисе Amazon EMR

Преимущества Apache Hadoop для EMR

Apache™ Hadoop® – это программный проект с открытым исходным кодом, предназначенный для эффективной обработки больших наборов данных. Вместо одного большого компьютера для обработки и хранения данных Hadoop предлагает использовать для параллельного анализа огромных наборов данных кластеры на базе стандартного аппаратного обеспечения.

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

Приложения и интерфейсы семейства Hadoop

Под Hadoop обычно понимается проект Apache Hadoop, включающий MapReduce (платформу исполнения), YARN (менеджер ресурсов) и HDFS (распределенное хранилище). Можно также установить Apache Tez, платформу следующего поколения, для использования вместо Hadoop MapReduce в качестве механизма выполнения. Сервис Amazon EMR также содержит связующую библиотеку EMRFS, которая позволяет Hadoop использовать Amazon S3 в качестве уровня хранения.

Однако в семействе Hadoop существуют и другие приложения и платформы, включая инструменты для создания запросов с низкими задержками, графические интерфейсы для создания интерактивных запросов, различные интерфейсы наподобие SQL и распределенные базы данных NoSQL. Семейство Hadoop содержит множество инструментов с открытым исходным кодом, предназначенных для разработки дополнительных функциональных возможностей на базе основных компонентов Hadoop. С помощью Amazon EMR можно без труда установить и настроить в своем кластере такие инструменты, как Hive, Pig, Hue, Ganglia, Oozie и HBase. Помимо Hadoop, в Amazon EMR можно запускать другие интерфейсы, например Apache Spark для обработки данных в памяти или Presto для создания интерактивных SQL‑запросов.

Hadoop: основные компоненты

Сервис Amazon EMR программно устанавливает и настраивает приложения проекта Hadoop, включая Hadoop MapReduce, YARN, HDFS и Apache Tez на всех узлах кластера.

Механизмы выполнения Hadoop MapReduce и Tez, входящие в систему Hadoop, обрабатывают рабочие нагрузки с помощью платформ, которые разделяют задания на более мелкие для распределения между узлами кластера Amazon EMR. Они разработаны для обеспечения отказоустойчивости с учетом того, что любой компьютер в кластере может в любой момент отказать. Если исполняющий задание сервер выйдет из строя, Hadoop передаст это задание другому компьютеру, и так до завершения задания.

Можно писать программы для MapReduce и Tez на Java, использовать Hadoop Streaming для исполнения собственных скриптов в параллельном режиме, использовать Hive и Pig для получения абстракций более высокого уровня по сравнению с MapReduce и Tez, а также использовать другие инструменты для взаимодействия с Hadoop.

В Hadoop 2 и более новых версиях управление ресурсами осуществляется с помощью Yet Another Resource Negotiator (YARN). YARN ведет мониторинг ресурсов кластера и обеспечивает их динамическое распределение для выполнения задач по обработке данных. YARN способен управлять рабочими нагрузками Hadoop MapReduce и Tez, а также другими распределенными инфраструктурами, такими как Apache Spark.

Файловая система EMR File System (EMRFS), которая применяется в кластерах Amazon EMR, позволяет использовать сервис Amazon S3 в качестве уровня хранения для Hadoop. Amazon S3 – это высокомасштабируемый экономичный сервис, предлагающий высокую надежность, благодаря чему он отлично подходит в качестве хранилища при обработке больших данных. Хранение данных в Amazon S3 дает возможность отделить уровень вычислений от уровня хранения, что позволяет задать размер кластера Amazon EMR с учетом необходимого объема ресурсов ЦП и памяти для обработки рабочих нагрузок. Это избавляет от необходимости включать в структуру кластера избыточные узлы, предназначенные для повышения объема кластерного хранилища. Кроме того, вы сможете останавливать кластер Amazon EMR в периоды простоя для экономии средств, при этом данные будут по‑прежнему доступны в Amazon S3.

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

В состав Hadoop входит система распределенного хранилища Hadoop Distributed File System (HDFS), которая позволяет хранить данные в больших блоках на локальных дисках кластера. HDFS предлагает настраиваемый коэффициент репликации (по умолчанию 3x) для обеспечения повышенной доступности и надежности. HDFS осуществляет мониторинг репликации и балансировку данных между узлами по мере выхода узлов из строя и добавления новых узлов.

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

Преимущества Hadoop в Amazon EMR

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

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

Среду Hadoop можно без труда интегрировать с другими сервисами, например с Amazon S3, Amazon Kinesis, Amazon Redshift и Amazon DynamoDB, для перемещения данных, создания рабочих процессов и выполнения аналитики с использованием различных сервисов платформы AWS. Дополнительно можно использовать Каталог данных AWS Glue в качестве управляемого репозитория метаданных для Apache Hive и Apache Spark.

Нагрузка, создаваемая большинством заданий Hadoop, неравномерна по своей природе. Например, задание ETL может выполняться ежечасно, ежедневно или ежемесячно, а задания по финансовому моделированию или генетическому секвенированию могут выполняться всего несколько раз в год. Hadoop в Amazon EMR позволяет без труда запускать кластеры с рабочей нагрузкой, сохранять результаты и освобождать ресурсы Hadoop, когда они больше не нужны, чтобы избежать лишних расходов на инфраструктуру. EMR 6.x поддерживает Hadoop 3, что позволяет YARN NodeManager запускать контейнеры непосредственно на хосте кластера EMR либо внутри контейнера Docker. Подробную информацию см. в нашей документации.

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

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

В чем связь Hadoop с большими данными?

Благодаря широчайшим возможностям масштабирования Hadoop обычно используется для обработки больших данных. Для повышения производительности обработки кластера Hadoop добавьте дополнительные серверы с необходимыми объемами ресурсов ЦП и памяти.

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

Примеры использования

Apache и Hadoop – товарные знаки Apache Software Foundation.

Hadoop можно использовать для анализа истории посещений веб‑сайта, чтобы сегментировать аудиторию и определить предпочтения пользователей. Анализ навигации и журналы впечатлений от рекламы можно также использовать для более эффективного распространения рекламных материалов.

Узнайте о том, как Razorfish использует Hadoop в Amazon EMR для анализа истории посещений

Hadoop можно использовать для обработки файлов журналов, генерируемых мобильными и интернет‑приложениями. Hadoop позволяет обрабатывать петабайты неструктурированных или слабо структурированных данных, чтобы получить полезные выводы о приложениях или пользователях.

Узнайте о том, как Yelp использует Hadoop в Amazon EMR для управления ключевыми функциями веб‑сайта

 

Приложения семейства Hadoop (например, Hive) позволяют пользователям задействовать Hadoop MapReduce с помощью интерфейса SQL для выполнения аналитических задач в крупномасштабном распределенном отказоустойчивом хранилище данных. Hadoop можно использовать для хранения данных и создания запросов к данным любого объема.

Узнайте о том, как Netflix использует Hadoop в Amazon EMR для обеспечения работы хранилища данных в петабайтном масштабе

Hadoop можно использовать для быстрой и эффективной обработки больших объемов данных генома и других больших наборов научных данных. AWS предоставляет всем желающим доступ к данным проекта «1000 геномов» абсолютно бесплатно.

Подробнее о геномике на AWS

 

Благодаря широким возможностям масштабирования и низкой стоимости Hadoop идеально подходит для обработки типичных рабочих нагрузок ETL, таких как сбор, сортировка, объединение и агрегация пакетов больших данных для более простого потребления системами дальнейшей обработки.

Узнайте о том, как Euclid использует Hadoop в Amazon EMR для решения ETL‑задач и агрегации данных