Ответ
Для работы с файлами в 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, как если бы это были таблицы в базе данных, абстрагируясь от физического расположения и формата файлов.