Hadoop – что это и для чего оно нужно в BigData?

Hadoop в мире BigData

Hadoop в мире BigData

Сегодня говорим о самом популярном животном в зоопарке BigData — Hadoop. Так зовут “маленького” слоника, который перевернул мир данных и спас мир, когда привычные SQL базы данных спасовали. Итак, знакомьтесь:

Hadoop — это фреймворк, состоящий из набора утилит для разработки и выполнения программ распределенных вычислений.

Hadoop

Полезно знать

Идея родилась в 2004 году: Google публикует работу, в которой рассказывает о технологии BigTable и MapReduce (на которой сейчас держатся NoSQL-базы данных). В 2006 Yahoo выпускает открытую реализацию и дает ей имя Hadoop. В 2010 году была создана экосистема технологий, делающая  Hadoop применимой и популярной.

Зачем нужен Hadoop?

Объем данных за последние несколько лет растет с большой скоростью и обещает продолжать в том же духе. Именно это и послужило предпосылкой для написания Google вышеупомянутой работы: стандартные базы данных больше не могли поддерживать работоспособность при таком темпе.

Один из многих графиков, отражающих этот стремительный рост:

Рост объема мировых данных по годам

Рост объема мировых данных по годам. Источник: seagate.com

Обработка, хранение и все вытекающие действия с такими объемами данных и есть Big Data. Hadoop — технология работы с BigData.

Кем используется?

У Hadoop хороший послужной список: eBay, Amazon, IBM, Facebook и т.д. Нет единой схемы для работы с данными абсолютно любой компании: работа всех сервисов, даже не слишком больших, очень специфична. Поэтому на основной функционал накладываются дополнительные фичи, разработанные специально для конкретных компаний.

Тут мы имеем дело с дистрибутивами. В случае с Hadoop дистрибутив означает набор установочных файлов для различных сервисов экосистемы. Под каждый кейс нужно подбирать свой набор подсистем Hadoop: это обеспечит совместимость всех версий компонентов. Поставляют и настраивают дистрибутивы вендоры дистрибутивов. Самые популярные  от Cloudera, MapR, HDP.

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

Некоторые инструменты:

  • HBase — NoSQL СУБД, эффективно поддерживающая случайное чтение и запись;
  • Pig — язык обработки данных и среда выполнения;
  • SPARK — набор инструментов для реализации распределенных вычислений;
  • Hive — хранилище данных с интерфейсом SQL;
  • ZooKeeper — хранилище конфигурационной информации

и другие.

Разнообразие в экосистеме Hadoop делает этого слона универсальным инструментом, меняющимся вместе со временем.

Разнообразие инструментов в экосистеме Hadoop

Как работает?

Hadoop — это система, состоящая из нескольких компонентов. Основные: HDFS и MapReduce. Первое — файловая система, второе — фреймворк обработки данных.

Основные принципы Hadoop:

  1. Горизонтальное масштабирование

Представим, что в кластере произошли неполадки, не хватает ресурсов имеющихся серверов. Есть две модели поведения:

  1. Всячески апгрейдим уже имеющееся железо или заменяем его — это вертикальное масштабирование.
  2. Дополняем имеющийся комплект серверов новыми устройствами — горизонтальное масштабирование.

Вертикальное и горизонтальное масштабирование

                                              Источник:1cloud.ru

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

II. Код отправляется к данным, а не наоборот

Есть подход, при котором выделяются сервера для хранения данных и их обработки. Поэтому при работе большие объемы данных приходится передавать между этими серверами. Это энергозатратно, тяжело и долго.

Схема хранения данных и обработки данных

Hadoop поступает умнее:

Когда нам нужно обработать данные, мы не переносим их все на сервер обработки, а копируем нужную часть кода и переносим её к данным. Система работает быстрее, легче.

копирование части кода и перенос его к данным

III. Отказоустойчивость

При работе Hadoop учитывает возможность отказа железа целыми двумя механизмами:

  1. Репликацией данных — восстановление потерянной части данных
  2. Перезапуском тасков — механизм запоминает таски и постоянно проверяет и обновляет их.

Из принципов I, II и III следует одно из главных преимуществ Hadoop: кластер машин может состоять из обычных серверов без невероятных запросов к отказоустойчивости.

IV. Инкапсуляция сложности реализации

Задумчивый взгляд Бена Стиллера

Звучит непонятно. Это значит, что пользователь только продумывает, каким образом он хочет обрабатывать данные, больше фокусируется на бизнес-логике процесса, чем на программной части.

Кто изучает Hadoop?

Те, кто работает с BigData: аналитики и разработчики в этой сфере. Часто это  работники банков, IT-компаний, крупные сервисы с большой клиентской базой.

Как учиться?

  1. Начать советуем с обзорных экскурсий на Youtube, чтобы понимать, что из себя представляет каждый инструмент и с чем предстоит работать.
  2. Обратите внимание на большое количество оффлайн и онлайн курсов по Hadoop.(их много на Coursera, Udasity, Udemy и т.д. )
  3. Если хотите попробовать освоить технологию самостоятельно, для этого есть несколько интересных возможностей.
    Первое: установите на виртуальную машину образ, где вся экосистема установлена и настроена. Посмотрите, как это работает (например, здесь или здесь).  Полный туториал можете найти по ссылке: http://snap.stanford.edu/class/cs246-2017/homeworks/hw0/tutorialv3.pdf

Далее, подключайте все источники!

  • Книги

Hadoop: The Definitive Guide by Tom White

Следует воспринимать её как учебник и обращаться к главам в случае необходимости

  • Видео-уроки

Например, от mail.ru

  • Форумы