Hive Metastore на собеседовании Data Engineer
Карьерник — Duolingo для аналитиков: 10 минут в день тренируй SQL, Python, A/B, статистику, метрики и ещё 3 темы собеса. 1500+ вопросов в Telegram-боте. Бесплатно.
Содержание:
Зачем спрашивают на собесе DE
HMS — стандарт для централизованной schema БД для lake / lakehouse. На собесе DE: «зачем HMS», «отличие от Glue», «нужен ли при Iceberg».
Что такое Hive Metastore
Сервис, хранящий метаданные таблиц (schema, location, partitions) для систем, работающих с файлами в lake (Hive, Spark, Presto/Trino).
Сам lake — Parquet / ORC / Avro файлы в S3 / HDFS / GCS.
HMS говорит: «есть таблица events, columns такие-то, файлы лежат в s3://bucket/events/ партиционирована по event_date».
Без HMS каждый engine читает только raw файлы — нет общего понимания структуры.
Что хранится
- Database (= schema).
- Table — name, owner, location, format (Parquet / ORC / etc), columns с типами.
- Partitions — список ключей и locations.
- Properties — comments, tags, owner.
- Statistics — row count, size, NDV (для cost-based optimizer).
Хранится в RDBMS (Postgres / MySQL) под HMS-сервисом.
Интеграция с Spark / Trino
Spark.
spark.sql("SELECT * FROM hms.events WHERE event_date = '2026-05-01'")Spark подключается к HMS, получает schema + partition locations, читает файлы напрямую.
Trino / Presto.
SELECT * FROM hive.default.events;Catalog hive указывает на HMS. Federated queries — несколько catalogs в одном запросе.
dbt. Может работать с Spark / Trino, всё через HMS.
AWS Glue Catalog и альтернативы
Glue Catalog — managed HMS-совместимый сервис на AWS. Не нужно хостить.
Source data in S3 → Glue Crawler → Glue Catalog → Athena / Redshift Spectrum / EMRАльтернативы:
- Unity Catalog (Databricks) — современная alternative.
- OpenMetadata — open source.
- Polaris (Snowflake) — Iceberg-native catalog.
- Project Nessie — git-style catalog для Iceberg.
Iceberg / Delta — нужен ли HMS
Iceberg имеет свой metadata format (manifest files в S3). HMS не обязателен — Iceberg может хранить metadata в:
- HMS (legacy compat).
- AWS Glue.
- Nessie.
- REST catalog.
- File-based (только для тестов).
Delta Lake — metadata в _delta_log поверх Parquet файлов. HMS — optional, для discovery.
В современных lakehouse Iceberg + Glue / Nessie популярнее, чем Hive table + HMS. HMS остаётся в legacy / Hive-окружениях.
Частые ошибки
Single point of failure. HMS падает — все queries падают. HA setup обязателен в проде.
Long table names. Hive таблицы chunked по 128 чарам. Используй short names + comments.
Mass ALTER TABLE без partitions. Изменение schema на 100k partitions — медленно. Лучше партиции реже.
Игнорировать stats. Без ANALYZE TABLE cost-based optimizer Trino / Spark делает плохие planы.
Мульти-cloud setup. HMS в одном регионе, S3 в другом — latency. Co-locate.
Связанные темы
- Lakehouse Iceberg Delta для DE
- Parquet ORC Avro для DE
- Spark RDD vs DataFrame для DE
- Schema evolution для DE
- Подготовка к собесу Data Engineer
FAQ
Hive Metastore Service vs HiveServer2?
HMS — каталог metadata. HiveServer2 — engine, выполняющий Hive SQL queries. Разные сервисы, оба часть Hive ecosystem.
Можно ли использовать без Hive?
Да. Spark, Trino, Iceberg — все умеют использовать HMS без Hive engine.
Это официальная информация?
Нет. Статья основана на документации Apache Hive, AWS Glue, Apache Iceberg.
Тренируйте Data Engineering — откройте тренажёр с 1500+ вопросами для собесов.