Skip to main content
Version 3.0

Hive Metastore Configuration

ChartVersion3.0.1TypeapplicationAppVersion4.0.0
CompatibilityKubernetes1.32+OpenShift4.19+Rancher2.10.x+
Feature SupportS3supportedExternal DBsupported

What is Hive Metastore?

The tdp-hive-metastore chart installs Apache Hive Metastore 4.0.0 on Kubernetes and provides an internal catalog service, accessed through a Thrift endpoint on port 9083.

This catalog stores metadata for databases, tables, columns, types, partitions, and locations. Table data remains in the configured warehouse; the Metastore records how that data should be found and interpreted by clients.

In practice, when a compatible client wants to read a table named sales, it queries the Metastore to retrieve the table schema, available partitions, and file paths. Hive, Spark, Trino, and Iceberg are examples of clients that can consume this catalog.

In TDP, the chart supports the warehouse in file mode for simple scenarios or validation, and in s3 mode for integration with S3-compatible object storage, such as Ozone. Catalog metadata is stored in PostgreSQL, either internal or external.

Learn more

See Apache Hive — Concepts, Hive Metastore section to understand the role of the metadata catalog in the data ecosystem.

How Hive Metastore fits into TDP

Compatible clients
(Hive, Spark, Trino, Iceberg...)
|
| "Where is the 'sales' table?"
v
Hive Metastore --> PostgreSQL (stores metadata)
|
| "It is in the configured warehouse"
v
File or S3/Ozone warehouse (where the actual data is)

Hive Metastore operates as data-plane infrastructure. Instead of exposing a web interface for end users, it serves internal clients that need to query or update table metadata.

For this reason, configuration usually focuses on the internal Service, the metadata PostgreSQL database, and the warehouse mode. Consumption happens through the Service Thrift endpoint on port 9083.

Deployed components

ComponentDescription
Metastore ServerThrift service on port 9083 that responds to metadata queries
PostgreSQL (internal or external)Database that stores schemas, tables, partitions and locations
TDP helper jobsDatabase validation/creation and auxiliary resource cleanup jobs

Helm values structure

The tdp-hive-metastore chart distributes configuration in two blocks:

  • tdp-hive-metastore: — main configuration: image, PostgreSQL (embedded by default, or external), warehouse type (file or s3), resources, security.
  • TDP-Settings: — optional configuration used only when postgres.enabled: false; enables the TDP hooks for validation, provisioning and authentication against an external PostgreSQL.
TDP-Settings:
externalDatabase:
enabled: false

tdp-hive-metastore:
postgres:
enabled: true
metastore:
type: file

Overview

PropertyValue
Charttdp-hive-metastore
Hive Metastore version4.0.0
Chart version3.0.1
Registry (OCI)oci://registry.tecnisys.com.br/tdp/charts/tdp-hive-metastore
Thrift port9083
External HTTP exposureNot applicable (ClusterIP access, no Ingress)

Prerequisites

  • Kubernetes 1.32+, Red Hat OpenShift 4.19+ or Rancher Manager 2.10.x+
  • Helm 3.2.0+
  • Tecnisys OCI registry accessible from the installation environment
  • If using external PostgreSQL: instance accessible from the cluster, max_connections ≥ 300, and admin Secret in the format expected by the chart

Installation

Terminal input
helm upgrade --install <RELEASE_NAME> \
oci://registry.tecnisys.com.br/tdp/charts/tdp-hive-metastore \
--version <CHART_VERSION> \
-n <NAMESPACE> --create-namespace
PlaceholderDescription
<RELEASE_NAME>Helm release name
<NAMESPACE>Kubernetes installation namespace
<CHART_VERSION>Chart version

Verify installation

Terminal input
kubectl -n <NAMESPACE> get all

Expect Deployment/Service for the metastore (and internal PostgreSQL, if postgres.enabled: true), with names derived from <RELEASE_NAME>.

Metastore Service validation

The chart exposes the Metastore through an internal Service on port 9083. After installation, validate that the Service has endpoints before configuring consuming clients.

Terminal input
kubectl get endpoints -n <NAMESPACE> <RELEASE_NAME>-metastore

If <none> appears, wait for the deploy to complete and check the Metastore pods. The Integration — Hive Metastore page shows how to use this endpoint in consumers.

Local test:

Terminal input
kubectl port-forward -n <NAMESPACE> svc/<RELEASE_NAME>-metastore 9083:9083