Yahoo! − компания, которая знает, что делать с Hadoop

29 июль, 2015 - 16:35Александр Черников

В последнее время часто можно слышать толки о том, что проект Hadoop остановился в своем развитии. Недавний отчет Gartner назвал спрос на Hadoop «довольно анемичным», а ряд блоггеров указали на «слабый темп восприятия Hadoop в корпоративном мире». Так ли это? Или просто ума не хватает?

В целом − проблема есть. Она заключается в том, чтобы получить реальную ценность от Hadoop. Для этого нужно точно знать, что вы собираетесь делать с ним и сопутствующим ПО.

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

Но если вы хотите видеть, как выглядит успешное широкомасштабное развертывание Hadoop, трудно подобрать лучший пример, чем Yahoo!.

Ресурс InfoWorld провел специальное интервью с несколькими старшими технологами Hadoop в Yahoo, чтобы выяснить, какие уроки можно извлечь из гигантского развертывания Hadoop в компании.

Уместен ли здесь эпитет «гигантский»? Насколько в действительности велика инфраструктура Hadoop в Yahoo!?

Согласно Сумиту Сингху (Sumeet Singh), старшему директору Yahoo! по облачным и Big Data платформам, в компании, по состоянию на июнь 2015 г., задействовано 43 тыс. серверов почти в двух десятках системах YARN с MapReduce и 600 петабайт данных в распределенной файловой системе HDFS. Все это обеспечивает персонализацию доступа, мобильную работу с системой (и коммуникации вообще), а также рекламу и медиа.

Базовый набор (framework) Apache Hadoop состоит из следующих модулей:

  • Hadoop Common − библиотеки и утилиты, используемые в других модулях;
  • Hadoop Distributed File System (HDFS) − распределенная файловая система, которая сохраняет данные на относительно недорогих компьютерах общего назначения (commodity) в кластере;
  • Hadoop YARN − платформа управления ресурсами в кластере, отвечающая за работу пользовательских приложений;
  • Hadoop MapReduce − программная модель для обработки данных в системах большого масштаба.

Но этим базовым набором мир Hadoop далеко не ограничивается.

Hadoop − это не только…

Yahoo! занимает первое место в мире по степени распространения сопутствующих технологий из состава постоянно растущего семейства Hadoop.

Yahoo − компания, которая знает, что делать с Hadoop

Вот так примерно выглядит только основная экосистема Hadoop. Ниже перечислены наиболее актуальные на сегодня технологии, связанное ПО и инструментальные средства

Согласно Тиму Тулли (Tim Tully), руководителю разработок в Yahoo!, компания хранит шесть петабайт метрик на 5 тыс. узлов HBase, чтобы привести в действие Flurry Analytics только лишь для одной мобильной аналитики.

Для интерактивной аналитики в реальном времени и на уровне событий Flurry использует развитый внутренний язык запросов поверх Spark, все более популярного инструмента для обработки данных непосредственно в оперативной памяти (in-memory processing). Что здесь есть что?

HBase − это Open Source, нереляционная, распределенная СУБД, написанная на Java.

Flurry − основанная в 2005 г. компания, которая разрабатывает и продает платформы для анализа взаимодействия с покупателями с мобильными приложениями, решения для управления встроенной в приложения рекламой, а также сервис для внедрения монетизационных структур в мобильные приложения.

Apache Spark − Open Source структура для кластерных вычислений, разработанная в AMPLab университета Беркли.

Для мобильной аналитики Yahoo! сейчас находится в процессе замены HBase ПО Druid, Open Source, ориентированной на столбцы, in-memory СУБД. Фактически, Druid − это движок запросов реального времени. В Yahoo! он уже работает, − на обычных компьютерах, с оперативной памятью от 192 до 256 ГБ.

Движение к обработке данных in-memory на сегодня, возможно, самая мощная тенденция в мире баз данных, но еще больше − именно в сфере Hadoop. Особенно это касается исследовательской аналитики (exploratory analytics), свойственной Flurry.

Платформа YARN

Другая Hadoop-история наших дней в исполнении Yahoo! − управление ее озером данных объемом 600 ПБ.

Yahoo − компания, которая знает, что делать с Hadoop

Платформа YARN связывает ресурсы Hadoop с распределенной файловой системой и сама выполняет множество операций по обработке данных

Львиная доля операций по обработке данных теперь перенесена на платформу YARN, которая сама по себе является очень существенным улучшением ранних версий Hadoop.

Yahoo! была первой компанией, которая развернула YARN в большом масштабе. Модернизация до YARN, которая началась в 2011 г., позволила Yahoo! стремительно улучшить использование ее Hadoop-ресурса.

Все же для приложений аналитики, которые требуют итеративности и интерактивности, Yahoo! предпочитает использовать Spark для каждого кластера YARN. Добавьте сюда еще 3 тыс. серверов, на которых работает Storm для «почти оперативной» (near-real-time) обработки событий.

Apache Storm − это распределенная вычислительная структура, написанная на языке Clojure, или попросту «процессор событий».

Различие между Hadoop и Storm в том, что Storm обрабатывает события соответственно времени, в то время, как Hadoop или Spark обрабатывают целую партию событий за один раз. Разумеется, партия может быть большой, маленькой, или крохотной (microbatch). В последнем случае обработка, конечно, приближается к принципам Storm, но окончательно таковой не становится.

Storm действительно предназначен для обработки «шторма событий» и есть много случаев такого его использования, особенно в рекламе реального времени с обратной связью. Yahoo! − главный спонсор Apache Storm Community. Впрочем, Yahoo была также ранним спонсором Spark, когда она разрабатывалась в Беркли.

Экосистема Hadoop

Список технологий в семействе Hadoop продолжает расти. Как Yahoo! приходит к решению о необходимости добавления новой функциональности в общую вычислительную среду? Это далеко не тривиальный вопрос для компании, работающей в масштабе Yahoo. Каждая подобная инвестиция должна возвращаться по крайней мере с обеспечением гарантии безопасности нового ПО, многопользовательского режима его работы и возможности масштабирования.

Yahoo! также зависима от того, что Сингх назвал «тремя основными транспортными средствами» (three primary vehicles) − Pig, Hive/HCatalog и Oozie.

В наибольшей степени это касается технологии Apache Pig, которая фактически стартовала в Yahoo!, где и продолжает доминировать в настоящее время. Примерно 50-60% всей обработки сегодня производится с помощью ПО, написанного как скрипты Pig.

В то время как Pig обеспечивает скриптовые способности, Hive дает SQL абстракцию, а HCatalog − репозиторий метаданных (metadata repository) для всех приложений.

Наконец, Oozie − планировщик технологического процесса (workflow scheduler), который в Yahoo! используется для создания почти 70% расписаний проектов (schedule jobs).

Yahoo также − главный пользователь Tez, ПО, которое устраняет ряд неэффективностей MapReduce, включая излишнюю загрузку дисков. Согласно Сингху, «Tez работает как MapReduce, чувствует себя подобно MapReduce, но при этом не является MapReduce».

Это не слишком понятно, но можно обратиться к внешним проявлениям изменений. Обработка становится намного более быстрой, чем в MapReduce, иногда на порядок. Кроме этого, появляется возможность предсказания времени выполнения. В Yahoo! с MapReduce на Tez уже перемещены почти 60% рабочей нагрузки SQL на Hadoop. К концу 2015 г. эта цифра должна составить 100%.

О подходе «с кондачка»

Вернемся к интервью InfoWorld. Аналитики ресурса сделали вывод, что экосистема Yahoo! кажется им «сложной на грани подавляющего», − что говорить о тех, кто не знаком с предметом.

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

Итоговый вывод − если проект останавливается, или, по крайней мере, освоение Hadoop замедляется, то дело вовсе не в Hadoop, а в том, что компания не смогла грамотно использовать его.