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, во всех узлах кластера. Однако начиная с версии Amazon EMR 5.x платформы Hive и Pig используют в качестве механизма выполнения Apache Tez вместо Hadoop MapReduce.

Обработка данных с помощью 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, благодаря чему вы можете сосредоточиться на своей профильной деятельности.

Интеграция с другими облачными сервисами

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

Оплата кластеров по мере необходимости

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

Повышенная доступность и аварийное восстановление

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

Гибкое выделение ресурсов

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

Как связаны 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
Есть вопросы?
Свяжитесь с нами