Что выбрать для SQL-аналитики Big Data в Hadoop: Apache Hive или Cloudera Impala

Big Data, Большие данные, архитектура, SQL, ETL, Hadoop, Hive, Impala

Завершая сравнение SQL-инструментов для больших данных (Big Data), хранящихся в среде Hadoop, сегодня мы рассмотрим аргументы в пользу Apache Hive и Cloudera Impala – когда стоит выбирать ту или иную систему и почему. Также в этой статье мы собрали для вас несколько практических примеров реального использования Импала и Хайв в крупных Big Data проектах.

5 аргументов в пользу Apache Hive для аналитики Big Data

В большинстве случаев выбор Apache Hive в качестве основного SQL-средства для анализа данных, хранящихся в кластере Hadoop (HDFS или HBase), обусловлен ключевыми преимуществами этой системы относительно Cloudera Impala:

  • отказоустойчивость, обеспечиваемая тем, что Хайв сохраняет все промежуточные результаты;
  • высокая пропускная способность за счет LLAP (Live Long and Process) – кэширование запросов в памяти, что обеспечивает хорошую производительность на низком уровне, включая долговременные системные службы (демоны). Это позволяет напрямую взаимодействовать с узлами данных HDFS [1].
  • повышенная (по сравнению с Импала) надежность и скорость обработки сложных SQL-запросов, реализуемая опять же благодаря LLAP и
    MR3 – новому механизму выполнения (execution engine) для Hadoop и Kubernetes [2];
  • расширяемость за счет вычислительной моделиMapReduce и определяемых пользователем функций – User Defined Function (UDF), User Defined Aggregate Function (UDAF), User Defined Tabular Function (UDTF) [3];
  • отлаженная интеграция с Apache Ranger для гибкой RBAC-авторизации с возможностью задания собственных политик безопасности, например, на основе геолокации, опять же благодаря UDF. Об этом мы рассказывали здесь.

В связи с вышеперечисленными достоинствами Хайв активно применяется в масштабных Big Data проектах. Например, в соцсети знакомств Badoo, которая поддерживает множество языков и работает во всех странах мира, именно Apache Hive используется для ежедневного сбора суточных счетчиков пользователей, агрегации, фильтрации и ручного SQL-анализа данных, хранящихся в Hadoop [4]. Также стоит отметить опыт использования Hive в лаборатории реактивного движения научного центра NASA для построения и оценки климатической модели по данным дистанционного зондирования. Региональная система оценки климатической модели (RCMES) состоит из двух компонентов [5]:

  • RCMED – региональная база данных оценки климатической модели: масштабируемая облачная база данных, которая загружает данные дистанционного зондирования и данные повторного анализа, которые связаны с климатом. Здесь данные преобразуются в точечную модель с координатами (широта, долгота, время, значение, высота) и сохраняются в Apache Hive. Клиент может получить пространственные или временные данные RCMED с помощью SQL-запросов.
  • RCMET — региональный инструментарий оценки климатической модели, который позволяет пользователю сравнивать справочные данные из RCMED с выходными данными климатической модели, полученными из некоторых других источников, для выполнения различных видов анализа и оценки.
Apache Hive, SQL-on-Hadoop, NASA use case
Региональная система оценки климатической модели NASA на базе Apache Hive

7 причин выбрать Cloudera Impala в качестве SQL-средства для Apache Hadoop

Как мы уже отмечали, Impala дополняет Hive, предоставляя удобный и быстрый способ анализировать большие данные, хранящиеся в Hadoop (HDFS, HBase) и другие распределенных файловых системах, в частности, Amazon S3. При этом главным плюсом Импала считается высокая скорость обработки простых SQL-запросов, обусловленная следующими факторами:

  • вычислительная модель массовой параллельной обработки (MPP, Massive Parallel Processing), которая позволяет распараллеливать обработку данных в режиме онлайн, реализуя интерактивные вычисления;
  • отсутствие записи на диск промежуточных результатов;
  • трансляция SQL-запроса в исполнительный код во время выполнения (runtime);
  • запуск системных служб (демонов) для обработки SQL-запросов во время загрузки (boot time).

Также среди достоинств Impala можно назвать встроенную поддержку безопасного сетевого протокола аутентификации Kerberos, работу в многопользовательской среде с высокой конкуренцией запросов, кеширование часто запрашиваемых данных в памяти, приоритезацию и возможность управления очередью запросов. Благодаря этим качествам Impala широко востребована на практике для реализации ETL-процессов у аналитиков и ученых по данным (Data Analyst, Data Scientist). В частности, именно Cloudera Impala была выбрана банком ВТБ в качестве дополнительного ETL-инструмента при разгрузке корпоративного хранилища и озера данных (Data Lake) при построении собственной Big Data системы клиентской аналитики [6].

SQL-on-Hadoop, банковская Big Data система, ВТБ, Impala
Архитектура Big Data системы клиентской аналитики банка ВТБ с применением Cloudera Impala

В заключение следует еще раз подчеркнуть, что Импала и Хайв не конкурируют друг с другом, т.к. ориентированы на разные задачи. Быстрота и удобство использования Impala компенсируются отказоустойчивостью и широкой расширяемостью Hive. Импала подходит для интерактивной аналитики в режиме реального времени с помощью множества простых SQL-запросов, а Хайв можно назвать идеальным инструментом для построения сложных ETL-конвейеров. В любом случае, при выборе той или иной платформы стоит, помимо функциональных характеристик самой системы, также учитывать контекст бизнеса, перспективы развития, текущие и будущие особенности эксплуатации.

Станьте профессионалом SQL-аналитики больших данных среды Hadoop, освоив администрирование, настройку и эффективную эксплуатацию Хайв и Импала на наших практических курсах в лицензированном учебном центре обучения и повышения квалификации ИТ-специалистов (менеджеров, архитекторов, инженеров, администраторов, Data Scientist’ов и аналитиков Big Data) в Москве:

Источники

  1. https://data-flair.training/blogs/impala-vs-hive/
  2. https://mr3.postech.ac.kr/blog/2019/03/22/performance-evaluation-0.6/
  3. https://data-flair.training/blogs/hive-udf/
  4. https://habr.com/ru/company/oleg-bunin/blog/319138/
  5. http://www.bigintellects.com/2018/08/hive-tutorial-hive-architecture-and.html
  6. https://www.vtbcareer.com/article/ozero-dannih/