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 и YARN

Механизмы выполнения 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.

Хранилище на базе Amazon S3 и EMRFS

Файловая система 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 можно задействовать в качестве уровня эластичных запросов.

Кластерное хранилище с системой HDFS

В состав 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, благодаря чему пользователи могут сосредоточиться на своей профильной деятельности.

Интеграция с другими сервисами AWS

Среду 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 и начать извлекать пользу из своих данных.

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

Анализ истории посещений

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 »

Извлечение, преобразование и загрузка данных (ETL)

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

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

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

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

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