Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Apache Hive: そしてCloud Native Lakehouseへ

Apache Hive: そしてCloud Native Lakehouseへ

OTFSG Osaka Meetup #2で使用した発表資料です。

YouTube: https://youtu.be/xr3JQQJjjLE

English Version: Apache Hive: Toward a Cloud Native Lakehouse

Avatar for okumin

okumin

July 16, 2026

More Decks by okumin

Other Decks in Programming

Transcript

  1. Apache Hive: “Distributed Data Warehouse at Massive Scale” Spark /

    Flink / Trino / etc. Hive Metastore (Metadata Repository) RDBMS Backend Amazon S3 / HDFS / etc. HiveServer2 (SQL Gateway) YARN / Hadoop Hive on Tez Kubernetes Hive LLAP
  2. Data LakeからLakehouseへ On-prem Cloud Proprietary Open Data Warehouse Enterprise DWH

    Data Lake Big Data Cloud Data Warehouse Compute-Storage Separation Lakehouse Open Table Format
  3. Data LakeからLakehouseへ On-prem Cloud Proprietary Open Data Warehouse Enterprise DWH

    Data Lake Big Data Cloud Data Warehouse Compute-Storage Separation Lakehouse Open Table Format
  4. Data LakeからLakehouseへ On-prem Cloud Proprietary Open Data Warehouse Enterprise DWH

    Data Lake Big Data Cloud Data Warehouse Compute-Storage Separation Lakehouse Open Table Format
  5. 発表内容 - Lakehouseを支える機能 - (1) カタログ - (2) 計算エンジン -

    (3) 継続的テーブルメンテナンス - クラウドネイティブ対応 - (4) Kubernetes-Native Hive Disclaimer: 今日紹介する機能の中には、まだリリースされていないものも含まれています
  6. おさらい: 汎用メタデータリポジトリ Hive Metastore (Stateless Java App) RDBMS Backend 分散ストレージ上の

    ファイル群 例: HDFS / S3 / GCS / ADLS Files RDBMSやNoSQL 例: PostgreSQL, MySQL, Apache HBase, Apache Kudu Databases イベントストリーム 例: Apache Kafkaトピック Event store Open Table Format 例: Apache Iceberg, Apache Hudi, Delta Lake Lakehouse
  7. おさらい: デファクトスタンダードな Thrift API Hive Metastore API Apache Spark Cloud

    Data Warehouse Trino - Thrift - Kerberos / LDAP - Any table format Apache Gravitino
  8. Iceberg REST Catalog API: 新しい、もう一つの標準 商用サービス - Databricks Unity Catalog

    - Cloudera Iceberg REST Catalog - Snowflake Open Catalog - AWS Glue - Amazon S3 Tables - Google Cloud's Lakehouse - Microsoft Fabric OneLake - Dremio Open Catalog OSS実装 - Unity Catalog - Apache Polaris - Apache Gravitino - Lakekeeper - Project Nessie
  9. Iceberg REST Catalog API backed by Hive Metastore “Hive Metastoreを通して学ぶIceberg

    REST Catalog ― 仕様から実装まで” https://speakerdeck.com/okumin/from-spec-to-implementation-iceberg-rest-catalog-with-hive-metastore-japanese-version Trino REST Catalog Hive Metastore Iceberg REST API Hive Catalog API Server Iceberg REST API Hive Metastore Thrift API Trino REST Catalog REST API RDBMS RDBMS Thrift RPC REST API Embedded Mode Standalone Mode (>= 4.3)
  10. HMS Thrift API再考: 汎用メタデータ APIの価値 最も普及した汎用メタデータAPI → 既存データを活かしつつ、未来の可能性を狭めない 利用する側 現実世界のデータ

    HMS Thrift API Apache Spark Trino Cloud DWH Federated Catalog 次世代クエリエンジン Hive Table CSV/TSV PostgreSQL Delta Lake 次世代フォーマット
  11. まとめ: 時空を超えるメタストア Lakehouse時代に適応 過去と未来も大事に Iceberg REST API OAuth 2.0 Metrics

    Reporting Thrift API これまでのデータ資産 未来のイノベーション 🤝
  12. Hiveがサポートする Iceberg機能の一例 - Iceberg V1 & V2 - ✅ Schema

    Evolution - ✅ Partition Evolution - ✅ Hidden Partitioning - ✅ DELETE/UPDATE/MERGE - ✅ Time Travel - ✅ Branching / Tagging - Iceberg V3 - ✅ Row Lineage (for Parquet) - ✅ Deletion Vectors - ✅ Variant Type
  13. まとめ: Hive = スケーラブル SQLクエリエンジン 分散SQLクエリエンジン Hive以外も使おう Hive on Tez

    & LLAP Iceberg主要機能 高性能オプティマイザー ストリーム処理 SQL以外のI/F 機械学習
  14. メンテナンス機能対応状況 - ✅ Minorコンパクション : 非常に小さな Data Fileのマージ - ✅

    Majorコンパクション : 小さなData Fileや削除ファイルのマージ - ✅ Smartコンパクション : Minor / Majorコンパクションの自動選択 - ✅ Expire Snapshots - ✅ 孤立ファイルの削除
  15. まとめ: Lakehouseを使える状態に保つ カタログとクエリエンジンを同時開発 → 統合されたメンテナンス体験 Hive Metastore - テーブルの状態を把握 -

    適切なコンパクションの選択 - 古いスナップショットの削除 - メンテナンスタスクをスケジュール Hiveクエリエンジン - スケーラブルなコンパクション実行基盤 - 安定したリソースプール
  16. Quickstart with Docker docker run \ --rm \ --env SERVICE_NAME=hiveserver2

    \ --name hive \ apache/hive:4.2.0 HiveServer2 + Hive Metastore docker run \ --rm \ --name hms \ apache/hive:standalone-metastore-4.2.0 Hive Metastore w/ Iceberg REST Catalog API 2023年から公式Dockerイメージを配布 → とりあえず試すのが簡単に
  17. Hive on Hadoop → Kubernetes YARN NodeManager タスク用コンテナ Hive LLAP

    Tez App Master OR 分散タスクコーディネーター YARNコンテナを立ち上げてタスクをスケジュール OR 常駐型プロセスLLAPにタスクをスケジュール あとは分散Hive on TezをなんとかすればKubernetesでHive全体が動くようになるが……
  18. Hive on Hadoop → Kubernetes Tez Application Masterが最後の関門だった YARN NodeManager

    タスク用コンテナ Hive LLAP Tez App Master OR YARN依存: 強 YARN依存: 強 ただしLLAPがあれば必須 ではない YARN依存: 弱 (極論EC2でも動くはず)
  19. Kubernetes Operator & Helm Chart # For Tez AMs and

    LLAP daemons helm install zookeeper bitnami/zookeeper ... # For Metastore backend helm install postgres bitnami/postgresql ... # Install Hive Metastore, HiveServer2, and LLAP daemons helm install hive oci://registry-1.docker.io/ayushtkn/hive-operator ... “Cloud-Native Apache Hive: A Deep Dive into the New Kubernetes Operator, Autoscaling, and Multi-Tenancy” https://medium.com/@ayushtkn/cloud-native-apache-hive-a-deep-dive-into-the-new-kubernetes-operator-autoscaling-and-6d3e4427121a
  20. Apache Hive Is a Cloud Native Lakehouse Platform # For

    Tez AMs and LLAP daemons helm install zookeeper bitnami/zookeeper ... # For Metastore backend helm install postgres bitnami/postgresql ... # Install Hive Metastore, HiveServer2, and LLAP daemons helm install hive oci://registry-1.docker.io/ayushtkn/hive-operator ... カタログ + SQLクエリエンジン + 継続的テーブルメンテナンス
  21. まとめ: 今後のデプロイ方法 Kubernetes Tez App Master ZooKeeper Hive LLAP Hadoop

    YARN Tez App Master タスク用コンテナ Hive LLAP Helmチャートで簡単デプロイ。 Hadoopクラスタを持っていない人はこっちが 便利。 YARNによるエンタープライズグレードなスケ ジューリングが可能。 数百・数千テナントを管理するならこっちの 方が実績がある。