Объёмы данных растут быстрее, чем мощность отдельного сервера. Логи веб-порталов, транзакции платёжных систем, выгрузки из ведомственных реестров – всё это уже не помещается в одну реляционную базу и не обрабатывается за разумное время классическим SQL. В 2009 году на сцену выходит подход, который раньше был внутренней кухней Google и Yahoo!: распределённая обработка на дешёвых серверах. Инструмент, вокруг которого складывается экосистема, – Apache Hadoop.
Что такое Hadoop и откуда он взялся
Hadoop – это открытая реализация двух идей Google: распределённой файловой системы (GFS) и модели вычислений MapReduce, описанных в статьях 2003–2004 годов. Дуг Каттинг и сообщество Apache собрали из них рабочий стек. Сегодня проект используют Yahoo!, Facebook и десятки других компаний на кластерах в тысячи узлов.
Стек состоит из двух базовых частей. HDFS (Hadoop Distributed File System) разбивает файлы на блоки и раскладывает их по узлам кластера с трёхкратной репликацией – отказ диска или целого сервера не теряет данные. MapReduce делит задачу на фазу map (параллельная обработка кусков данных) и фазу reduce (агрегация результатов). Вычисление едет к данным, а не наоборот: каждый узел считает то, что лежит на его дисках. Это снимает узкое место – сетевой обмен.
Принципиальный момент – оборудование. Hadoop проектировался под commodity-серверы, обычные машины без RAID и дорогих SAN-хранилищ. Надёжность обеспечивает софт через репликацию, а не железо. Кластер на сто узлов собирается из техники, сопоставимой по цене с одним мощным сервером уровня enterprise.
Когда это нужно бизнесу и госсектору
Hadoop – не замена реляционным СУБД и не ускоритель для оперативных транзакций. Он решает другой класс задач: пакетную обработку терабайтов, где важна пропускная способность, а не отклик в миллисекундах. Типовые сценарии – анализ логов и поведения пользователей, построение поисковых индексов, разбор больших выгрузок, подготовка витрин для аналитики.
Для госсектора это перспективный инструмент консолидации: сведение данных из разных ведомственных систем, обработка статистики, аналитика по реестрам. Объёмы здесь растут вместе с переводом услуг в электронный вид, и реляционные хранилища упираются в потолок.
Прежде чем строить кластер, оцените трезво. Hadoop требует зрелой эксплуатации: настройка, мониторинг, написание MapReduce-заданий на Java – это инженерная работа, а не установка коробки. Начните с аудита ИТ-инфраструктуры и честного ответа на вопрос, действительно ли ваши объёмы выходят за рамки одной базы. Для многих задач достаточно грамотно настроенной СУБД – например, управляемой Amazon RDS, где администрирование берёт на себя провайдер.
С чего начать
Развернуть Hadoop можно на собственном железе или в облаке – Amazon уже предлагает Elastic MapReduce поверх своей инфраструктуры, что снимает порог входа для пилотного проекта. Это удобно, когда нужно проверить гипотезу без капитальных затрат: платите за часы работы кластера и гасите его после расчёта. Сама модель «вычисления как сервис» становится привычной – достаточно вспомнить, как Google продвигает браузер и веб как платформу.
Архитектура обработки больших данных под реальную нагрузку складывается из нескольких решений: от выбора между классической СУБД и распределённым кластером до проектирования аналитических витрин и BI, на которые в итоге опирается отчётность.
Big Data перестаёт быть темой исследовательских лабораторий и приходит в прикладные задачи. Технология ещё молодая, инструментов вокруг неё немного, специалистов мало. Но направление задано: данных будет только больше, и выигрывает тот, кто научится их обрабатывать раньше конкурентов.