12 августа 2012

Платформа Hadoop. Обзор (Платформа Hadoop. Часть 1)

В предыдущем посте мы рассмотрели концепцию Big Data и место (и роль) в этой концепции программной платформы Apache Hadoop. Ниже обзорно рассмотрим платформу Hadoop, экосистему платформы и ее основные характеристики.
Hadoop – это программная платформа (Software Framework) построения распределенных приложений для массово-параллельной обработки (Massive Parallel Processing, MPP) данных.
Основные концепции платформы Hadoop были подчеркнуты из докладов инженеров Google [17, 18], опубликованных в 2004-2006 году [7]. Работа над проектом была начата 2005 году. Начиная с января 2008 года, Hadoop становится проектом верхнего уровня Apache Software Foundation. В 2010 году в Facebook, заявили, что имеют наибольший Hadoop-кластер в мире, размер которого составляет 21 ПБайт. К 2011 году пользователями Hadoop стали Yahoo, AOL, Twitter, Amazon, Apple, LinkedIn (полный список можно найти по электронному адресу http://wiki.apache.org/hadoop/PoweredBy). В июле 2011 года было анонсировано, что объем данных в кластере Hadoop возрос до 30 PB [7].
В марте этого же года на ежегодной церемонии MediaGuardian Innovation Awards проект Hadoop был удостоен награды как самый инновационные проект года.
К январю 2012 года о поддержке Hadoop в своих облачных сервисах объявили Amazon (поддержка анонсирована в апреле 2009), Microsoft (CTP-версия с декабря 2011) и Google (доступна с 2011).
27 декабря 2011 года на сайте Apache Software Foundation было анонсировано о доступности версии 1.0.0 платформы Hadoop.
На февраль 2012 года проект Apache Hadoop включает в себя 3 подпроекта:
  1. Hadoop Common: библиотеки и сценарии управления распределенной обработкой, файловой системой, развертывания инфраструктуры;
  2. Hadoop Distributed File System: распределенная файловая система, которая обеспечивает высокоскоростной доступ к данным приложения;
  3. Hadoop MapReduce: программная платформа для распределенной обработки больших объемов данных на вычислительном кластере.
К основным техническим характеристикам платформы Hadoop относят:
  • Масштабируемость: платформа масштабируется линейно и позволяет хранить и обрабатывать петабайты данных;
  • Устойчивость к сбоям: все хранящиеся данные избыточны, все проваленные задания по обработке данных перезапускаются;
  • Кроссплатформенность: библиотеки Hadoop написаны (в основном) на Java, и могут выполняться в любой операционной системе, поддерживающей JVM (Java VM);
  • Автоматическое распараллеливание выполнения задачи: Hadoop создает «чистые» абстракции для разработчиков, снимая с них работу по планированию, контролю и агрегатированию результатов параллельной обработки данных.
Бизнес-выгоды от использования Hadoop можно определить как:
  • Гибкость: хранение и анализ структурированных и неструктурированных типов данных;
  • Эффективность: в большинстве случаев более низкая стоимость хранения / обработки терабайта данных по сравнению существующими решениями;
  • Низкая стоимость создания кластера: для создания Hadoop-кластера не требуется дорогое серверное аппаратное обеспечение.
  • Сравнительная легкость адаптации: Hadoop имеет широкую и активно развивающуюся экосистему;
  • Минимальные риски, связанные с некорректной работой ядра платформы: на сегодняшний день платформа Hadoop успешно используется для обработки петабайт информации;
  • «Open Source» лицензирование: низкая стоимость внедрения и владения платформой Hadoop, большое «developer community».

Экосистема платформы Hadoop

Центральное место экосистемы Hadoop занимает хранилище данных (Data Storage). Hadoop поддерживает хранение как неструктурированных данных с распределенной файловой системе HDFS, так и структурированных данных в нереляционной базе данных HBase.
The Hadoop Ecosystem
Фреймворк MapReduce отвечает за планирование задач (Job Scheduling) и выполнение распределенных вычислений.
Делать запросы к хранящимся на Hadoop-кластере наборам данных с помощью следующих инструментов, входящих в экосистему Hadoop: Pig, Hive (имеет свой SQL-подобный язык запросов HiveQL).
Для передачи большого количества данных, хранящихся на кластере Hadoop, и хранилищами структурированных данных, такие как, реляционные базы данных, разработан инструмент Sqoop.
Компоненты, относящейся к взаимодействию (Integration Services), управлению (Management), отвечающие за доступ к данным (Data Access), а также нереляционная БД HBase представлены отдельными проектами Apache Foundation (часто верхнего уровня). Подробную информацию о них можно узнать в соответствующих разделах сайта Apache Software Foundation.
В последующих статьях мы рассмотрим концепции, лежащие в основе компонент Hadoop, и подробно остановимся на архитектуре Hadoop MapReduce и HDFS.

Автор статьи

,
DS/ML Preacher, Microsoft MVP && Coffee Addicted