Hadoop – что это такое и для чего используется
Что такое Hadoop?
Hadoop (Хадуп) — это программная платформа для сбора, хранения и обработки очень больших объемов данных. Проще говоря, это база данных (database), предназначенная для работы с большими данными (Big Data).
Hadoop стал очень популярным инструментом больших данных в силу ряда особенностей:
- Бесплатное ПО: любой желающий его может скачать и установить на серверы стандартной архитектуры. Дальнейшие расходы в основном зависят от специфики конкретного проекта и уровня квалификации его команды.
- Распределенное хранение: данные располагаются на множестве узлов (Hadoop Nodes) – серверов, совокупность которых образует кластер (Hadoop Cluster). Hadoop позволяет создавать базы данных практически любых размеров, обеспечивая их масштабирование их по мере необходимости.
- Хранение и анализ любых форматов данных независимо от их природы: таблицы, тексты, видео, аудио, данные телеметрии, Интернета вещей, социальных сетей и пр. В одном кластере Hadoop могут храниться данные самых разных форматов из разных источников, что в сочетании с высокой надежностью делает платформу универсальной – она используется в очень широком спектре прикладных областей.
- Hadoop сегодня – это не просто стек, а огромная экосистема технологий для самых разных применений. На основе Hadoop работает великое множество программных продуктов, библиотек ПО и утилит, как бесплатных продуктов с открытым кодом, так и коммерческих.
Из чего состоит Hadoop?
В архитектуре Hadoop обычно выделяют четыре базовых технологических компонента: Hadoop Common, HDFS, YARN и MapReduce.
- Hadoop Common представляет собой набор библиотек программных модулей, скриптов (сценариев выполнения задач) и утилит (вспомогательных программ), которые предназначены для создания программной инфраструктуры, лежащей в основе работы всех других компонентов и продукты.
- Распределенная файловая система HDFS (Hadoop Distributed File System) обеспечивает хранение данных на узлах кластера Hadoop в виде файлов. Благодаря репликации (дублированию) информации в HDFS достигается высокая надежность хранения даже очень больших файлов: в случае недоступности или выхода из строя одного узла кластера Hadoop данные будут извлекаться из блоков на других узлах.
- Система планирования заданий и управления кластером YARN (Yet Another Resource Negotiator) позволяет управлять вычислениями на кластере, в том числе предоставлением его ресурсов отдельным распределенным приложениям. Что важно, эти вычисления могут выполняться одновременно (параллельно) на множестве узлов, благодаря чему достигается высокая скорость вычислений. YARN выполняет функцию программной прослойки между физическими ресурсами кластера и приложениями, которые с ним работают.
- Hadoop MapReduce – это фреймворк на базе YARN, реализующий известный подход к организации распределенных вычислений MapReduce («отображение-свертка»): данные сначала распределяются на множество узлов кластера («отображение»), где параллельно запускается их предварительная обработка, после чего полученные результаты передаются на центральный узел кластера («свертка»), который обеспечивает получение итоговых результатов.
Как появился Hadoop?
Автором самых первых строк кода платформы Hadoop, написанной на языке программирования Java, стал Дуг Каттинг (Doug Cutting), решивший в начале 2005 года разработать программную инфраструктуру для эффективных распределенных вычислений на базе подхода MapReduce. Символом проекта стала любимая игрушка, принадлежавшая дочери Каттинга, она же дала ему имя.
Новым большим этапом в развитии Hadoop стал состоявшийся в начале 2006 года переход Каттинга в компанию Yahoo, где он продолжил развитие системы. В 2008 году компания ввела в строй первую масштабную инсталляцию Hadoop с 10 тысячами процессорных ядер.
Начиная с 2008 года, развитие проекта продолжилось в рамках некоммерческой организации Apache Software Foundation (ASF), под эгидой которой на базе Hadoop было реализовано более десятка проектов, расширяющих возможности платформы. Наиболее известные из них – распределенная СУБД для работы с огромными таблицами данных HBase, программная инфраструктура для создания хранилищ данных Hive, высокоуровневая среда управления потоками данных Pig, высокопроизводительный сервис координации работы распределенных приложений Zookeeper и др.
В 2013 году в составе Hadoop появился модуль YARN, существенно расширивший возможности платформы за рамки подхода MapReduce.
Где и зачем используется Hadoop?
Ключевая область применения Hadoop – хранение и анализ огромных объемов данных. Благодаря высокой экономической эффективности и достаточно высокой производительности Hadoop получил широкое распространение как в крупнейших ИТ-компаниях (Facebook, Amazon, eBay и др.), так и в высокотехнологичных стартапах. Сегодня Hadoop можно встретить в самых разных отраслях – от производства до госсектора. Имеются реализации Hadoop для локального (on-premice) развертывания, а также облачные и гибридные варианты использования платформы.
Один из самых распространенных сценариев применения Hadoop – создание озер данных, в которые стекаются все данные, доступные организации-пользователю. Анализ данных может производиться средствами Hadoop, но гораздо чаще для этого применяются различные инструменты сторонних производителей и разработчиков.
Обновлено: 23.01.2024
Опубликовано: 03.12.2021
Автор