# hive-metastore
**Repository Path**: mirrors_databricks/hive-metastore
## Basic Information
- **Project Name**: hive-metastore
- **Description**: Apache Hive Metastore as a Standalone server in Docker
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2024-10-25
- **Last Updated**: 2025-10-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# hive-metastore
Apache Hive Metastore as a Standalone server in Docker. Can be used in a modular fashion with Presto, Trino, Spark, and many other BigData tools.
There are numerous Docker images that attempt to do this, but yet to see something actually work as advertised with minimal bloat.
## Setup
### Usage
The recommended way to get this Docker Image is to pull the prebuilt image from the [Docker Hub Registry](https://hub.docker.com/r/naushadh/hive-metastore).
```bash
$ docker pull naushadh/hive-metastore
```
If you wish, you can also build the image yourself by cloning the repository, and executing the docker build command.
```bash
$ git clone https://github.com/naushadh/hive-metastore
$ cd hive-metastore
$ make build
```
You can also use DockerCompose to launch the app with all of its dependencies using [docker-compose.yml](https://raw.githubusercontent.com/naushadh/hive-metastore/main/docker-compose.yml) file in the GitHub repository. Just replace the `build` with `image`
```diff
app:
- build: .
+ image: naushadh/hive-metastore
```
And then run
```bash
$ docker compose up -d
[+] Running 4/4
✔ Container hive-metastore-localstack-1 Healthy 10.8s
✔ Container hive-metastore-postgres-1 Healthy 30.8s
✔ Container hive-metastore-s3_setup-1 Started 11.0s
✔ Container hive-metastore-app-1 Started 31.0s
$ docker compose ps
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
hive-metastore-app-1 hive-metastore-app "./run.sh" app About a minute ago Up 8 seconds 0.0.0.0:9083->9083/tcp
hive-metastore-localstack-1 localstack/localstack:1.1 "docker-entrypoint.sh" localstack About a minute ago Up 39 seconds (healthy) 4510-4559/tcp, 5678/tcp, 0.0.0.0:4566->4566/tcp
hive-metastore-postgres-1 postgres:14-alpine "docker-entrypoint.s…" postgres About a minute ago Up 39 seconds (healthy) 0.0.0.0:5432->5432/tcp
```
You can now connect to the MetaStore Thrift server at `0.0.0.0:9083` from your host machine.
### Configuration
Controlled via ENVironment variables
Key | Required? | Description
-------------------|---------------------------------------|-------------
DATABASE_TYPE_JDBC | No, defaults to postgresql | Database type1 for JDBC connection
DATABASE_TYPE | No, defaults to postgres | Database type1 for migration tool
DATABASE_DRIVER | No, defaults to org.postgresql.Driver | Database class used for JDBC connection
DATABASE_HOST | Yes | Database host
DATABASE_PORT | No, defaults to 5432 | Database port
DATABASE_DB | Yes | Database name
DATABASE_USER | Yes | Database user
DATABASE_PASSWORD | Yes | Database password
S3_ENDPOINT_URL | No | Custom S3 endpoint URL; useful for LocalStack integration
S3_BUCKET | Yes | S3 bucket name
S3_PREFIX | Yes | S3 bucket prefix
> **1** Though you have the ability to modify `DATABASE_TYPE_JDBC`/`DATABASE_TYPE`, we presently only install Postgres driver.
> You'd have to extend this image and install a non-Postgres driver to change the Database type.
### Development
This project has most of the batteries included to test and verify that the app works
1. Install docker and docker-compose
2. Launch dev environment
```bash
$ make env-up
```
3. Run test(s)
```bash
$ docker-compose run test
```