Sign inSign up

ilum/hive

By ilum

Updated 5 months ago

ILUM Hive: Apache Hive Metastore & HiveServer2 with cloud connectors (S3, GCS, Azure) for Spark

Image
Monitoring & observability
0

5.4K

ilum/hive repository overview

Ilum Hive Metastore

Production-ready Apache Hive Metastore and HiveServer2 images optimized for Kubernetes and Ilum.

Base Image Architectures


Overview

The ilum/hive image provides a robust implementation of Apache Hive 3.1.3, configured to run as a standalone Metastore or HiveServer2 (HS2). It is specifically designed for cloud-native environments with built-in support for major cloud storage providers.

  • Cloud-Ready — pre-installed connectors for AWS S3, Google Cloud Storage (GCS), and Azure Blob Storage
  • Database Support — includes PostgreSQL drivers for external metastore databases
  • Security — runs as a non-root user (hive with UID 1001)
  • Multi-arch support — built for linux/amd64 and linux/arm64

TL;DR / Quick Start

# Run Hive Metastore with local Derby database
docker run -d \
  --name ilum-hive-metastore \
  -e SERVICE_NAME=metastore \
  -p 9083:9083 \
  ilum/hive:<version>

For production deployments, use the official Ilum Hive Metastore Helm Chart.


Supported Tags

  • <version>: Apache Hive 3.1.3 + Hadoop 3.3.6 + Tez 0.9.2

TIP: Choosing a version: Always use a version that matches your Hadoop/Spark ecosystem requirements (Hadoop 3.x is standard for Ilum).


Environment Variables

Required for Production
VariableDescription
SERVICE_NAMEDefines the service to run: metastore or hiveserver2
DB_DRIVERDatabase driver: postgres (recommended) or derby (default)
Optional & Tuning
VariableDefault ValueDescription
IS_RESUMEfalseSet to true to skip schema initialization on restart
SCHEMA_COMMANDinitSchemaSchema tool action: initSchema or upgradeSchema
SERVICE_OPTS-Additional JVM options (e.g. heap size)
VERBOSEfalseEnable verbose logging during startup

Variables can also be defined with hyphens if required by your configuration management.


Data Persistence (Volumes)

Container PathPurpose
/opt/hive/data/warehouseDefault Hive Warehouse location (Local/S3/GCS)
/opt/hive/confHive configuration — mount custom XMLs here
/home/hive/.beelineBeeline command history and configuration
# docker-compose example
volumes:
  - ./hive-site.xml:/opt/hive/conf/hive-site.xml
  - ./warehouse:/opt/hive/data/warehouse

TIP: Use HIVE_CUSTOM_CONF_DIR env to point to a folder with custom hive-site.xml and core-site.xml. They will be automatically linked at startup.


Network Configuration

PortService
9083Hive Metastore (Thrift)
10000HiveServer2 (Thrift/JDBC)
10002HiveServer2 Web UI

Security

Non-root Architecture

The image runs as user hive (UID 1001). When mounting host volumes, ensure directories have appropriate permissions:

# On host
sudo chown -R 1001:1001 /path/to/warehouse /path/to/conf
Secret Hygiene

CAUTION: Never pass passwords or cloud keys directly in environment variables!

Recommended methods:

  1. IAM Roles (IRSA) — use Kubernetes Service Accounts for S3/GCS access.
  2. Kubernetes Secrets — mount configuration files containing sensitive data.
Vulnerability Scanning

Before production deployment, scan the image:

# Trivy
trivy image ilum/hive:<version>

Building the Image

Run command from the docker/ilum-hive-metastore directory:

docker buildx build \
  --platform linux/amd64,linux/arm64 \
  -t ilum/hive:<version> \
  --push .

Image Verification

Layer Analysis (Dive)
dive ilum/hive:<version>
Software Bill of Materials (SBOM)
# Syft
syft ilum/hive:<version> -o spdx-json > sbom.json

Image Contents — Details

Dockerfile Components
  • Base: Eclipse Temurin 8 JRE
  • Hive: Apache Hive 3.1.3
  • Hadoop: Apache Hadoop 3.3.6
  • Tez: Apache Tez 0.9.2
  • Connectors:
    • AWS SDK (S3 support)
    • GCS Connector
    • Azure Storage SDK
    • PostgreSQL JDBC Driver

Support and Feedback

Tag summary

Content type

Image

Digest

sha256:959ad8d04

Size

938.6 MB

Last updated

5 months ago

docker pull ilum/hive:4.2.0