Что такое Hadoop?

15 Сентября 2014
Если облака для вас
не просто теория
Широкий спектр услуг
по выделенным северам
и мультиклауд-решениям
Конфигурация VPS и бесплатный тест уже через 2 минуты
Организация вашей IT-инфраструктуры на основе мультиклауд-решения
hadoop.pngXXI век стал в первую очередь веком информационным. Эффективные поиск и обработка этого потока данных стали главным требованием нового века. Основной проблемой являлась ограниченность производительности любого конкретного компьютера, и решение было найдено в масштабировании задач и распределении их между несколькими компьютерами.  Появление и распространение распределенных вычислений породило ряд программ / программных комплексов, способных решать сложные, ранее неприступные задачи.

Среди таких инструментов одним из наиболее популярных стала программная платформа Apache Hadoop (названная так по имени игрушечного слоника, который прижился и в логотипе продукта).

Одной из основных целей Hadoop было обеспечение масштабируемости путем добавления узлов, построенных на недорогом, доступном оборудовании, без применения мощных серверов и дорогих сетей хранения данных. Помимо того, что система эффективна, надежна и хорошо масштабируема, она работает на массовых серверах, является доступным пользователям продуктом. Среди основных применений – Web-поиск, для которого платформа исходно и разрабатывалась (с участием компании Yahoo!)

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

В основе продукта лежат два элемента:
  1. Это  распределенная файловая система Hadoop Distributed File System (HDFS), обеспечивающая хранение файлов путем их распределения по нескольким узлам в кластере Hadoop. Файловая система основана на двух типах узлов хранения: DataNode (собственно данные) и NameNode (метаданные).
  2. Это платформа программирования и выполнения распределённых вычислений, предназначенная для работы с большими объемами данных MapReduce. Принцип работы MapReduce состоит из двух шагов. Первый шаг (Map) заключается в первичная обработке данных: компьютер, называемый главным узлом — master node, получает входные данные, разделяет их на части и передает другим компьютерам (рабочим узлам — worker node) для предварительной обработки. Второй шаг (Reduce) заключается в агрегации обработанных данных: главный узел получает ответы рабочих узлов и формирует результат.
Кроме того, в современный состав входят также модули Hadoop Common (набор инфраструктурных программ и элементов, связующее ПО) и YARN (система планирования заданий и управления ресурсами кластеров).

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