> For the complete documentation index, see [llms.txt](https://docs.e6data.com/query-engine/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.e6data.com/query-engine/guides/catalogs/hive-metastore.md).

# Hive Metastore

Connect a Hive Metastore catalog to your e6data workspace. e6data supports Hive Metastore's running in AWS and Azure, with or without cross-account access.

## Before you start

* Have your Hive Metastore host and port ready.
* Confirm network connectivity from your e6data workspace to the metastore (allow the metastore port through firewalls / NSGs).
* For Serverless workspaces, complete the cloud-specific storage access setup so e6data can read the underlying data.
* For cross-account or cross-tenant configurations, have the relevant cloud identity values ready.

## Connect to Hive Metastore

1. Navigate to the **Catalogs** section from the sidebar and click **Create Catalog**.
2. Enter a **Catalog Name**. The name must be unique within the workspace. Lowercase letters, numbers, and hyphens are recommended (for example, `azure-hive-catalog`).
3. Select **Catalog Type** as **Hive Metastore**.
4. (Optional) Enable **Governance**. Apply fine-grained access control using Ranger, OPA, Unity, or Lake Formation. Use this if your organization enforces centralized data governance policies.
5. Configure the metastore connection:

   | Field              | Description                                          |
   | ------------------ | ---------------------------------------------------- |
   | **Metastore Host** | IP address or hostname of the Hive Metastore service |
   | **Metastore Port** | Thrift port of the Hive Metastore (default: 9083)    |
6. (Optional) Enable **Cross-Account Connection** if the metastore or the underlying storage lives in a different cloud account or tenant. The fields differ by cloud - see [Cross-account configuration](#cross-account-configuration) below.
7. Click **Test Connection** to verify connectivity and configuration.
8. After a successful test, **specify the schemas to include** by selecting only the databases you want this catalog to expose.
9. Click **Create Catalog**. The catalog appears in the catalogs list and is available to attach to clusters.

### Cross-account configuration

If your metastore or storage is in a different cloud account or tenant, enable **Cross-Account Connection** and provide cloud-specific values.

**Azure** - for a metastore where the storage account is in a different Azure tenant:

| Field                    | Description                                                                            |
| ------------------------ | -------------------------------------------------------------------------------------- |
| **Tenant ID**            | The Azure AD tenant ID holding the storage account                                     |
| **Client ID**            | Client ID of the Managed Identity or service principal with read access to the storage |
| **Storage Account Name** | Name of the ADLS Gen2 storage account                                                  |

**AWS** - for a metastore or storage in a different AWS account:

| Field            | Description                                             |
| ---------------- | ------------------------------------------------------- |
| **IAM Role ARN** | Role in the data-owning account that e6data will assume |
| **External ID**  | (Optional) External ID required by the trust policy     |

The trust policy on the role must allow e6data's identity to assume it. See [AWS Hive Metastore cross-account](/query-engine/guides/catalogs/cross-account/aws-hive-metastore.md) for the full pattern.

### Public Hive Metastore warning

If your Hive Metastore is hosted on a public IP (not in a private network), the create flow prompts you to acknowledge the security implications before proceeding. Hive's Thrift protocol does not authenticate by default - running it on a public endpoint is a significant exposure. Prefer:

* A private endpoint (VNet peering, VPC peering, or PrivateLink) over the public internet.
* A reverse proxy that adds authentication in front of the Thrift port.
* Cross-account access patterns that don't require exposing the metastore publicly.

## Edit a Hive Metastore connection

Editing a Hive Metastore connection lets you change the databases and schemas available for querying.

{% hint style="info" %}
To change connection details (host, port, and so on), delete and recreate the connection.
{% endhint %}

1. In the **Catalogs** section, click the catalog name to open its summary page.
2. Click **Edit Catalog** at the top right.
3. Select or deselect schemas as required.
4. To enable automatic catalog updates, toggle on auto-refresh and set the desired interval; otherwise continue.
5. Click **Update Catalog**.

## Delete a Hive Metastore connection

1. In the **Catalogs** section, click the name of the catalog you want to delete to open its summary page.
2. Click **Delete Catalog** at the top right and confirm. The catalog is removed; clusters attached to it lose access.

## See also

* [Catalogs overview](/query-engine/guides/catalogs.md)
* [Register and manage catalogs](/query-engine/guides/catalogs/register-and-manage-catalogs.md)
* [Cross-account access](/query-engine/guides/catalogs/cross-account.md)
* [Catalog errors](/query-engine/reference/error-codes/catalog.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.e6data.com/query-engine/guides/catalogs/hive-metastore.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
