Hadoop в двух словах

Если вы станете изучать такую популярную сейчас тему, как «Большие Данные» (Big Data), вы рано или поздно столкнётесь с этим странным словом: Hadoop. Что же это такое?

Hadoop можно рассматривать как набор программ и процедур с открытым исходным кодом (что означает, что они могут быть бесплатными для любого пользователя, кто может их использовать или модифицировать, за некоторыми исключениями), который можно использовать в качестве «основы» для построения систем Big Data и работы с ними.

Hadoop состоит из четырёх основных «модулей», каждый из которых выполняет определённую задачу, необходимую для системы аналитики больших данных.

  1. Распределённая файловая система Hadoop HDFS (Hadoop Distributed File System)

Это главная часть Hadoop, которая позволяет хранить данные в легкодоступном формате на большом количестве связанных устройств хранения данных. «Файловая система» — это метод, используемый компьютером для хранения данных, так, чтобы их можно найти и использовать. Обычно тип файловой системы определяется операционной системой компьютера, однако Hadoop использует свою собственную файловую систему, которая «сидит» на файловой системе компьютера, на котором запущен Hadoop.

  1. MapReduce

Модуль MapReduce предоставляет базовые инструменты для поиска данных. MapReduce назван в честь двух основных операций, выполняемых этим модулем: чтение из базы данных, размещение их в формате, подходящем для анализа (Map), и выполнение математических операций, сокращение и удаление повторяющихся данных, например, подсчёт количества мужчин в возрасте 30+ в базе данных клиентов компании (Reduce).

  1. Hadoop Common

Модуль Hadoop Common предоставляет инструменты (написанные на языке Java), необходимые в операционных системах пользователя (Windows, Unix или других) для чтения данных, хранящихся в файловой системе Hadoop.

  1. YARN

Модуль YARN, который управляет ресурсами систем, хранящих данные и выполняющими анализ. Название его расшифровывается весьма нетривиально: Yet Another Resource Negotiator, что можно очень приблизительно перевести как «еще одно средство для общения ресурсов между собой для оптимального их использования». Не удивительно, что термин YARN практически никто не расшифровывает, и все используют просто аббревиатуру.

В последние годы появились другие процедуры, библиотеки или функции, которые стали считаться частью «структуры» Hadoop (Framework). Но четыре перечисленных модуля: Hadoop Distributed File System, MapReduce, Hadoop Common и YARN – являются базовыми.

Как появился Hadoop

Развитие Hadoop началось с того, что прогрессивно мыслящие разработчики программ поняли, что очень полезно хранить и анализировать наборы данных гораздо большего объёма, чем их можно практически сохранить на одном физическом устройстве хранения (например, на жёстком диске). И если их хранить в распределённых системах, то это может быть гораздо эффективнее.

Отчасти это связано с тем, что по мере того, как возрастал объём физических устройств хранения, для считывания данных с диска, его магнитной головке требуется всё больше времени для перемещения к нужной области диска, где записаны данные. Поэтому, множество более мелких устройств, работающих параллельно, более эффективно, чем одно большое устройство хранения.

Поэтому в  2005 году Apache Software Foundation, некоммерческая организация, которая разрабатывает программное обеспечение с открытым исходным кодом, которое обеспечивает работу многих служебных систем Интернета, разработала систему Hadoop с целью «распараллеливания» работы с большими объёмами данных. Эта система была довольно нетривиальной для своего времени создания, как и странное имя, ей данное. Так звали игрушечного слона, принадлежащему сыну одного из первых создателей! Что он хотел этим сказать, давая системе такое название, неясно по сию пору. Впрочем в мире разработчиков ПО такие вещи – не редкость.

Использование Hadoop

Пользователи системы Hadoop могут добавлять или изменять свою систему данных по мере изменения их потребностей, используя дешёвые и легкодоступные модули практически от любого поставщика ИТ. Сегодня это наиболее широко используемая система для хранения и обработки данных на «коммерчески-доступном» (commodity) оборудовании. Это относительно недорогие, готовые к использованию системы, связанные друг с другом, в отличие от дорогостоящих заказных систем, выполненных по индивидуальному заказу.

Почти все крупные Интернет-компании используют Hadoop, и, поскольку каждый может свободно изменять его в своих целях, изменения, внесённые в программное обеспечение экспертами-инженерами, например, Amazon и Google, возвращаются в сообщество разработчиков, где они часто используются для улучшения другого «официального» продукта. Эта форма совместной разработки между добровольцами и коммерческими пользователями является ключевой особенностью программного обеспечения с открытым исходным кодом.

Базовые модули системы от Apache можно найти здесь http://hadoop.apache.org/. Однако, работа непосредственно с ними может быть очень сложной даже для ИТ-специалистов. Поэтому были разработаны различные коммерческие версии, такие как Cloudera, которые могут упростить задачу установки и запуска системы Hadoop, а также предложить услуги по обучению и поддержке.

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

***

 

Об авторе Алексей Шалагинов

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

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход /  Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход /  Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход /  Изменить )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.