Apache™ Hadoop® – это программный проект с открытым исходным кодом, предназначенный для эффективной обработки больших пакетов данных. Вместо одного большого компьютера для обработки и хранения данных Hadoop предлагает использовать для параллельного анализа огромных пакетов данных кластеры на базе стандартного аппаратного обеспечения.
В семействе Hadoop существует множество приложений и сервисов выполнения, предлагающих различные инструменты для обработки аналитических рабочих нагрузок. Сервис Amazon EMR позволяет легко создавать полностью настроенные эластичные кластеры инстансов Amazon EC2, на которых работают Hadoop и различные приложения этого семейства, и обеспечивать управление таковыми.
Под Hadoop обычно понимается проект Apache Hadoop, включающий MapReduce (интерфейс исполнения), YARN (менеджер ресурсов) и HDFS (распределенное хранилище). Сервис 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, во всех узлах кластера. Вы также можете установить дополнительные приложения, такие как Hive и Pig.
Hadoop MapReduce (сервис исполнения в Hadoop) выполняет обработку рабочих нагрузок с помощью интерфейса MapReduce, который разбивает задания на мелкие составляющие для дальнейшего распределения по узлам кластера Amazon EMR. Механизм Hadoop MapReduce, разработанный с расчетом на то, что любой компьютер в кластере может в любой момент выйти из строя, обеспечивает отказоустойчивость. Если исполняющий задание сервер выйдет из строя, Hadoop передаст это задание другому компьютеру, и так до завершения задания.
Программы MapReduce можно писать на Java, а также использовать Hadoop Streaming для параллельного исполнения собственных скриптов, приложения Hive и Pig (если вы установили их в кластере Amazon EMR) для получения более высокого уровня абстракции по сравнению с MapReduce или другие инструменты, взаимодействующие с Hadoop.
В Hadoop 2 и более новых версиях управление ресурсами осуществляется с помощью Yet Another Resource Negotiator (YARN). YARN осуществляет мониторинг ресурсов кластера и обеспечивает их динамическое распределение для решения задач по обработке данных. YARN может управлять рабочими нагрузками Hadoop MapReduce, а также другими распределенными платформами, например Apache Spark, Apache Tez и т. д.
Благодаря файловой системе 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 конфигурирует Hadoop под хранение промежуточных данных, созданных при выполнении заданий Hadoop MapReduce, в HDFS и на локальных дисках, даже если входные данные хранятся в Amazon S3.
Вы можете быстро динамически инициализировать новый кластер Hadoop или добавить серверы в существующий кластер Amazon EMR, значительно снизив время, затрачиваемое на обеспечение доступности ресурсов пользователям и специалистам по обработке данных. Hadoop на платформе AWS позволяет значительно повысить организационную гибкость за счет сокращения расходов и времени, которое тратится на распределение ресурсов для экспериментов и разработки.
Настройка Hadoop, работа с сетью, установка сервера и текущее административное обслуживание могут требовать значительных усилий. Управляемый сервис Amazon EMR обеспечивает соответствие требованиям платформы Hadoop, благодаря чему вы можете сосредоточиться на своей профильной деятельности.
Среду Hadoop можно легко интегрировать не только с Amazon EMR, но и с другими облачными сервисами, например с Amazon S3, Amazon Kinesis, Amazon Redshift и Amazon DynamoDB, для перемещения данных, создания рабочих процессов и выполнения аналитики с помощью различных сервисов платформы AWS.
Нагрузка, создаваемая большинством задач Hadoop, неравномерна по своей природе. Например, задача ETL может исполняться ежечасно, ежедневно или ежемесячно, а задачи по моделированию в финансовых компаниях или генетическому секвенированию могут исполняться всего несколько раз в год. Hadoop в Amazon EMR позволяет легко запускать эти кластеры с рабочей нагрузкой, сохранять результаты и освобождать ресурсы Hadoop, когда они больше не нужны, чтобы избежать лишних расходов на инфраструктуру.
Hadoop в Amazon EMR позволяет гибко запускать кластеры в любом количестве зон доступности в любом регионе AWS. Потенциальную проблему или угрозу, существующую в одном из регионов, можно легко обойти за несколько минут посредством запуска кластера в другой зоне.
Планирование ресурсов до развертывания среды Hadoop часто оборачивается простоем дорогостоящего оборудования или нехваткой мощностей. Сервис Amazon EMR позволяет распределять строго необходимое количество ресурсов, а также масштабировать их с уведомлением всего за несколько минут.
Благодаря широчайшим возможностям масштабирования Hadoop обычно используется для обработки больших данных. Для повышения производительности обработки кластера Hadoop добавьте дополнительные серверы с необходимыми объемами ресурсов ЦП и памяти.
Hadoop предлагает высокий уровень надежности и доступности при параллельной обработке вычислительных аналитических рабочих нагрузок. Благодаря сочетанию высокой доступности, надежности и масштабируемости процесса обработки Hadoop является наилучшим решением для работы с большими данными. Сервис Amazon EMR позволяет за несколько минут создать и настроить кластер инстансов Amazon EC2, на которых исполняется Hadoop, и начать извлекать пользу из своих данных.
Hadoop можно использовать для анализа данных навигации по сайту, чтобы сегментировать аудиторию и определить предпочтения пользователей. Анализ навигации и журналы впечатлений от рекламы можно также использовать для более эффективного распространения рекламных материалов.
Подробнее о том, как Razorfish использует Hadoop в Amazon EMR для анализа навигации »
Hadoop можно использовать для обработки файлов журналов, генерируемых мобильными и интернет-приложениями. Hadoop позволяет клиентам обрабатывать петабайты неструктурированных или слабоструктурированных данных, чтобы получить полезные выводы о приложениях или пользователях.
Приложения семейства Hadoop (например, Hive) позволяют пользователям задействовать Hadoop MapReduce с помощью интерфейса SQL, чтобы выполнять аналитические задачи в крупномасштабном, распределенном и отказоустойчивом хранилище данных. Hadoop можно использовать для хранения данных и создания запросов к данным любого объема.
Hadoop можно использовать для быстрой и эффективной обработки больших объемов данных генома и других больших пакетов научных данных. AWS предоставляет всем желающим доступ к данным проекта «1000 геномов» абсолютно бесплатно.
Благодаря широким возможностям масштабирования и низкой стоимости Hadoop идеально подходит для обработки типичных рабочих нагрузок ETL, таких как сбор, сортировка, объединение и агрегация пакетов больших данных для более простого потребления системами дальнейшей обработки.
Apache и Hadoop – товарные знаки Apache Software Foundation.