Почему компании выбирают Apache Hadoop для работы с большими данными?

Андрей Шедько
Андрей Шедько

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

Что влияет на выбор вашей компании и ваших клиентов в пользу этой платформы?

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

Платформа способна решать широкий спектр задач. Например, ее можно использовать для хранения и обработки информации о банковских транзакциях, уровне складских запасов, сведений о посещаемых сайтах, журналах веб-серверов и мобильных приложений, документообороте и электронных письмах, данных датчиков из Интернета вещей (IoT), образовании и многом другом.

А как вы определяете «большие данные» и какие основные проблемы они вызывают у бизнеса?

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

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

Какие основные типы хранения данных вы можете выделить?

Существует несколько ключевых типов хранения:

  • Хранилище данных (Data Warehouse) для структурированных данных из различных источников.
  • Озеро данных (Data Lake) для полу- и неструктурированных данных.
  • Дом озера данных (Data Lakehouse), который является гибридом предыдущих двух типов.

Как выбрать инструмент для работы и какие преимущества предоставляет Hadoop при работе с неструктурированными и большими объемами данных?

Структурированные данные имеют однородный состав, когда каждый элемент данных состоит из одинакового набора атрибутов. В качестве примера можно привести почтовый адрес, где набор полей определен – город, улица, дом и т.д. Обработка структурированных данных традиционно осуществляется с помощью SQL-запросов, позволяющих выполнять различные операции поиска и аналитики.

Примером неструктурированных данных могут служить текстовые файлы, PDF-документы, Excel и Word-файлы. Работа с неструктурированными данными требует создания программного кода, который берет на себя выполнение аналитических задач, поскольку такие задачи не могут быть описаны, например, в терминах SQL.

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

Как Hadoop справляется с задачами обработки неструктурированных данных?

Hadoop эффективно обрабатывает неструктурированные данные благодаря механизму, известному как MapReduce. Этот механизм распределяет задачи между серверами кластера, а затем собирает результаты воедино. Это позволяет платформе обрабатывать данные параллельно на многих серверах, что значительно ускоряет процесс.

Можете привести пример задачи, которую можно решить с помощью Hadoop?

В качестве примера можно привести задачу обработки данных о поведении клиентов на сайте. Каждое действие клиента записывается в текстовой файл логирования, где информация может содержать данные о том, откуда пришел клиент, что он смотрит на странице, какие предпринимает действия, сколько и каких товаров показано, продолжительность визита и так далее. Эта информация является ценным источником данных о поведении клиентов. В такой ситуации с помощью Apache Hadoop можно проанализировать время, проведенное клиентом на странице, в зависимости от других критериев за последние 10 лет с учетом того, что каждый день генерируется около 1 миллиона записей. Hadoop идеально подходит для подобной аналитики.

В каких ситуациях вы рекомендуете использовать Apache Hadoop?

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

Есть ли у Hadoop альтернативы, которые вы бы рекомендовали?

В зависимости от задач, мы рекомендуем рассмотреть также другие продукты Apache, такие как Spark и HBase, которые в определённых ситуациях могут иметь преимущества. Кроме того, существуют коммерческие версии Hadoop: например, от Arenadata с продуктом ADH (Arenadata Hadoop), которые предлагают удобство в администрировании и совместимости компонентов.

Как вы видите будущее больших данных и роль Apache Hadoop в нем?

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