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

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

Пример кластеризации Hadoop на AWS

Под 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-запросов.

Сервис Amazon EMR программно устанавливает и конфигурирует приложения проекта Hadoop, включая Hadoop MapReduce, YARN и HDFS, во всех узлах кластера. Однако, начиная с версии 5.x Amazon EMR, Hive и Pig используют в качестве механизма выполнения Apache Tez вместо Hadoop MapReduce.

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 на платформе AWS
Преимущества Hadoop в облаке: скорость (значок)

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

Преимущества Hadoop в облаке: упрощение (значок)

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

Преимущества Hadoop в облаке: интеграция (значок)

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

Преимущества Hadoop в облаке: экономичность (значок)

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

Преимущества Hadoop в облаке: доступность (значок)

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

Преимущества Hadoop в облаке: гибкость (значок)

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

Благодаря широчайшим возможностям масштабирования 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 »

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

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

 



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