Через какие движки на HDFS можно работать с файлами как с таблицами?

«Через какие движки на HDFS можно работать с файлами как с таблицами?» — вопрос из категории Hadoop и HDFS, который задают на 33% собеседований Data Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Для работы с файлами в HDFS как с таблицами используются SQL-движки, которые предоставляют реляционную абстракцию поверх данных. Основные из них:

  • Apache Hive: Классический движок для запросов, который транслирует SQL-подобные запросы (HiveQL) в задания MapReduce, Tez или Spark. Использует метаданные (схему таблиц) из Hive Metastore.
  • Apache Spark SQL: Позволяет выполнять SQL-запросы к данным в HDFS (и другим источникам) через DataFrame/Dataset API. Часто используется вместе с Hive Metastore для доступа к структурированным таблицам.
  • Presto (Trino): Высокопроизводительный распределенный SQL-движок для аналитических запросов. Может напрямую запрашивать данные из HDFS в различных форматах (ORC, Parquet, JSON), используя коннекторы.
  • Apache Impala: MPP-движок запросов, оптимизированный для низкой задержки при работе с данными в HDFS (обычно в формате Parquet). Интегрируется с Hive Metastore.

Ключевая идея: Эти движки позволяют выполнять SELECT, JOIN, GROUP BY над файлами в HDFS, как если бы это были таблицы в базе данных, абстрагируясь от физического расположения и формата файлов.