This is an automated email from the ASF dual-hosted git repository.
github-bot pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/hive-site.git
The following commit(s) were added to refs/heads/asf-site by this push:
new 9befcea deploy: 1bf826feb538d9d18993140ad13b066316b765ae
9befcea is described below
commit 9befceabc77a291f3f7d3c2f95007dcdbe4c74e2
Author: difin <[email protected]>
AuthorDate: Sat Nov 1 01:03:55 2025 +0000
deploy: 1bf826feb538d9d18993140ad13b066316b765ae
---
development/quickstart/index.html | 7 +-
docs/index.xml | 2 +-
docs/latest/index.html | 19 +-
docs/latest/index.xml | 2 +-
docs/latest/quickstart-rest-catalog/index.html | 679 +++++++++++++++++++++++++
index.json | 2 +-
index.xml | 2 +-
sitemap.xml | 2 +-
8 files changed, 707 insertions(+), 8 deletions(-)
diff --git a/development/quickstart/index.html
b/development/quickstart/index.html
index 30ef088..dd79d18 100644
--- a/development/quickstart/index.html
+++ b/development/quickstart/index.html
@@ -162,6 +162,7 @@ Last updated: May 12, 2023
<li></li>
<li><a href=#run-services>Run services</a></li>
<li><a href=#usage>Usage</a></li>
+<li><a href=#quick-start-with-rest-catalog-integration>Quick Start with REST
Catalog Integration</a></li>
</ul>
</li>
</ul>
@@ -203,7 +204,7 @@ Last updated: May 12, 2023
<hr>
<h5 id=--build-image>- Build image</h5>
<p>Apache Hive relies on Hadoop, Tez and some others to facilitate reading,
writing, and managing large datasets.
-The <a
href=https://github.com/apache/hive/blob/master/packaging/src/docker/build.sh>/packaging/src/docker/build.sh</a>
provides ways to build the image against specified version of the dependent,
as well as build from source.</p>
+The [/packaging/src/docker/build.sh] provides ways to build the image against
specified version of the dependent, as well as build from source.</p>
<h5 id=--build-from-source>- Build from source</h5>
<div class=highlight><pre tabindex=0
style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
class=language-shell data-lang=shell>mvn clean package -pl packaging
-DskipTests -Pdocker
</code></pre></div><p><code> </code></p>
@@ -384,7 +385,8 @@ docker compose up -d
docker compose exec hiveserver2-standalone /bin/bash
/opt/hive/bin/schematool -initSchema -dbType hive -metaDbType postgres -url
jdbc:hive2://localhost:10000/default
exit
-</code></pre></div>
+</code></pre></div><h3 id=quick-start-with-rest-catalog-integration>Quick
Start with REST Catalog Integration</h3>
+<p>Checkout the quickstart of REST Catalog Integration with Docker here: <a
href=https://hive.apache.org/docs/latest/quickstart-rest-catalog>REST Catalog
Integration</a></p>
</div>
<footer class=docs-footer>
<div class=docs-feedback>
@@ -424,6 +426,7 @@ exit
<li></li>
<li><a href=#run-services>Run services</a></li>
<li><a href=#usage>Usage</a></li>
+<li><a href=#quick-start-with-rest-catalog-integration>Quick Start with REST
Catalog Integration</a></li>
</ul>
</li>
</ul>
diff --git a/docs/index.xml b/docs/index.xml
index c91976c..dd7a8e9 100644
--- a/docs/index.xml
+++ b/docs/index.xml
@@ -1 +1 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0"
xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Docs on Hive
Site</title><link>https://hive.apache.org/docs/</link><description>Recent
content in Docs on Hive Site</description><generator>Hugo --
gohugo.io</generator><language>en-us</language><lastBuildDate>Tue, 14 Oct 2025
00:00:00 +0000</lastBuildDate><atom:link
href="https://hive.apache.org/docs/index.xml" rel="self"
type="application/rss+xml"/><item><t [...]
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0"
xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Docs on Hive
Site</title><link>https://hive.apache.org/docs/</link><description>Recent
content in Docs on Hive Site</description><generator>Hugo --
gohugo.io</generator><language>en-us</language><lastBuildDate>Fri, 31 Oct 2025
00:00:00 +0000</lastBuildDate><atom:link
href="https://hive.apache.org/docs/index.xml" rel="self"
type="application/rss+xml"/><item><t [...]
\ No newline at end of file
diff --git a/docs/latest/index.html b/docs/latest/index.html
index 212e8bc..684e3af 100644
--- a/docs/latest/index.html
+++ b/docs/latest/index.html
@@ -140,7 +140,7 @@ ASF
<div class=docs-meta>
<span class=docs-count>
<i class="fas fa-file-alt"></i>
-8 documents
+9 documents
</span>
</div>
</header>
@@ -148,6 +148,23 @@ ASF
<div class=docs-grid>
<div class=docs-card>
<div class=docs-card-header>
+<h3><a href=https://hive.apache.org/docs/latest/quickstart-rest-catalog/>Hive
4.2.0 - REST Catalog Integration</a></h3>
+<span class=docs-card-date>
+<i class="fas fa-calendar-alt"></i>
+Oct 31, 2025
+</span>
+</div>
+<div class=docs-card-summary>
+REST Catalog Integration Table of Contents Hive + Gravitino + Keycloak
Architecture Overview Prerequisites Quickstart Configuration Keyclock Gravitino
Hive Networking Notes Hive + Polaris Architecture Overview Prerequisites
Quickstart Configuration Polaris Hive Networking Notes Hive + Gravitino +
Keycloak The code for this setup is located in the Hive repository in
packaging/src/docker/thirdparties/gravitino folder. It contains a
docker-compose-based setup integrating Apache Hive, Gravit [...]
+</div>
+<div class=docs-card-footer>
+<a href=https://hive.apache.org/docs/latest/quickstart-rest-catalog/
class=docs-card-link>
+Read more <i class="fas fa-arrow-right"></i>
+</a>
+</div>
+</div>
+<div class=docs-card>
+<div class=docs-card-header>
<h3><a href=https://hive.apache.org/docs/latest/admin/>Administration
Manual</a></h3>
<span class=docs-card-date>
<i class="fas fa-calendar-alt"></i>
diff --git a/docs/latest/index.xml b/docs/latest/index.xml
index ebf4349..98896e0 100644
--- a/docs/latest/index.xml
+++ b/docs/latest/index.xml
@@ -1,3 +1,3 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0"
xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Documentation on Hive
Site</title><link>https://hive.apache.org/docs/latest/</link><description>Recent
content in Documentation on Hive Site</description><generator>Hugo --
gohugo.io</generator><language>en-us</language><lastBuildDate>Thu, 24 Jul 2025
00:00:00 +0000</lastBuildDate><atom:link
href="https://hive.apache.org/docs/latest/index.xml" rel="self" type [...]
+<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0"
xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Documentation on Hive
Site</title><link>https://hive.apache.org/docs/latest/</link><description>Recent
content in Documentation on Hive Site</description><generator>Hugo --
gohugo.io</generator><language>en-us</language><lastBuildDate>Thu, 24 Jul 2025
00:00:00 +0000</lastBuildDate><atom:link
href="https://hive.apache.org/docs/latest/index.xml" rel="self" type [...]
Built on top of Apache Hadoop™, Hive provides the following features:
Tools to enable easy access to data via SQL, thus enabling data warehousing
tasks such as extract/transform/load (ETL), reporting, and data analysis. A
mechanism to impose structure on a variety of data formats Access to files
stored either directly in Apache HDFS™ or in other data storage systems such as
Apache HBase™ Query execution via Apache Tez™ or MapReduce Procedural language
with HPL-SQL Sub-second query retrieval via Hive LLAP, Apache YARN and Apache
Slider.</description></item> [...]
\ No newline at end of file
diff --git a/docs/latest/quickstart-rest-catalog/index.html
b/docs/latest/quickstart-rest-catalog/index.html
new file mode 100644
index 0000000..9ab0643
--- /dev/null
+++ b/docs/latest/quickstart-rest-catalog/index.html
@@ -0,0 +1,679 @@
+<!doctype html><html><!doctype html>
+<html>
+<head>
+<meta charset=utf-8>
+<meta http-equiv=x-ua-compatible content="IE=edge">
+<meta name=viewport content="width=device-width,initial-scale=1">
+<meta name=description content>
+<meta name=author content>
+<title>Hive 4.2.0 - REST Catalog Integration</title>
+<link rel=icon href=/images/hive.svg sizes=any type=image/svg+xml>
+<link rel=stylesheet href=https://hive.apache.org/css/hive-theme.css>
+<link rel=stylesheet href=https://hive.apache.org/css/font-awesome.all.min.css>
+<link rel=stylesheet href=https://hive.apache.org/css/bootstrap.min.css>
+<link rel=stylesheet href=https://hive.apache.org/css/termynal.css>
+<link rel=apple-touch-icon sizes=180x180
href=https://hive.apache.org/images/apple-touch-icon.png>
+<link rel=icon type=image/png sizes=32x32
href=https://hive.apache.org/images/favicon-32x32.png>
+<link rel=icon type=image/png sizes=16x16
href=https://hive.apache.org/images/favicon-16x16.png>
+<link rel=manifest href=https://hive.apache.org/images/site.webmanifest>
+<link rel=mask-icon href=https://hive.apache.org/images/safari-pinned-tab.svg
color=#5bbad5>
+<meta name=msapplication-TileColor content="#da532c">
+<meta name=theme-color content="#ffffff">
+<script>var
_paq=window._paq=window._paq||[];_paq.push(['disableCookies']),_paq.push(['trackPageView']),_paq.push(['enableLinkTracking']),function(){var
b="https://analytics.apache.org/",c,a,d;_paq.push(['setTrackerUrl',b+'matomo.php']),_paq.push(['setSiteId','30']),c=document,a=c.createElement('script'),d=c.getElementsByTagName('script')[0],a.async=!0,a.src=b+'matomo.js',d.parentNode.insertBefore(a,d)}()</script>
+</head>
+<body>
+<body>
+<header>
+<menu class=main-menu>
+<nav class="navbar navbar-expand-lg navbar-dark">
+<div class=container-fluid>
+<div class=navbar-brand-wrapper>
+<a href=https://hive.apache.org class=navbar-logo>
+<img src=https://hive.apache.org/images/hive.svg width=50 height=30
alt="Apache Hive Logo">
+</a>
+<a class=navbar-brand href=https://hive.apache.org>Apache Hive</a>
+</div>
+<button class=navbar-toggler type=button data-bs-toggle=collapse
data-bs-target=#navbarSupportedContent aria-controls=navbarSupportedContent
aria-expanded=false aria-label="Toggle navigation">
+<span class=navbar-toggler-icon></span>
+</button>
+<div class="collapse navbar-collapse" id=navbarSupportedContent>
+<ul class="navbar-nav me-auto">
+<li class=nav-item>
+<a class=nav-link href=https://hive.apache.org/general/downloads>
+Releases
+</a>
+</li>
+<li class="nav-item dropdown">
+<a class="nav-link dropdown-toggle" href=/Document id=docsDropdown role=button
data-bs-toggle=dropdown aria-expanded=false>
+Documentation
+</a>
+<ul class=dropdown-menu aria-labelledby=docsDropdown>
+<li><a class=dropdown-item
href=https://hive.apache.org/docs/latest/>Latest</a></li>
+<li><a class=dropdown-item
href=https://hive.apache.org/docs/javadocs/>Javadocs</a></li>
+<li><a class=dropdown-item
href=https://hive.apache.org/docs/latest/language/languagemanual>Language
Manual</a></li>
+</ul>
+</li>
+<li class="nav-item dropdown">
+<a class="nav-link dropdown-toggle" href=/general id=generalDropdown
role=button data-bs-toggle=dropdown aria-expanded=false>
+General
+</a>
+<ul class=dropdown-menu aria-labelledby=generalDropdown>
+<li><a class=dropdown-item
href=https://www.apache.org/licenses/LICENSE-2.0.html>License</a></li>
+<li><a class=dropdown-item
href=https://hive.apache.org/general/privacypolicy/>Privacy Policy</a></li>
+<li><a class=dropdown-item href=/general/poweredby/>Powered by</a></li>
+</ul>
+</li>
+<li class="nav-item dropdown">
+<a class="nav-link dropdown-toggle" href=# id=devDropdown role=button
data-bs-toggle=dropdown aria-expanded=false>
+Development
+</a>
+<ul class=dropdown-menu aria-labelledby=devDropdown>
+<li><a class=dropdown-item
href=https://hive.apache.org/development/gettingstarted/>Getting
Started</a></li>
+<li><a class=dropdown-item
href=https://hive.apache.org/development/quickstart/>Quickstart with
Docker</a></li>
+<li><a class=dropdown-item
href=https://hive.apache.org/development/desingdocs/>Design Docs</a></li>
+<li><a class=dropdown-item
href=https://issues.apache.org/jira/projects/HIVE/issues>Hive JIRA</a></li>
+<li><a class=dropdown-item
href=https://hive.apache.org/community/resources/hivedeveloperfaq>Hive
Developer FAQ</a></li>
+<li><a class=dropdown-item
href=https://hive.apache.org/development/versioncontrol/>Version
Control</a></li>
+</ul>
+</li>
+<li class="nav-item dropdown">
+<a class="nav-link dropdown-toggle" href=# id=communityDropdown role=button
data-bs-toggle=dropdown aria-expanded=false>
+Community
+</a>
+<ul class=dropdown-menu aria-labelledby=communityDropdown>
+<li><a class=dropdown-item href=/community/becomingcommitter/>Becoming A
Committer</a></li>
+<li><a class=dropdown-item
href=https://hive.apache.org/community/resources/howtocontribute>How To
Contribute</a></li>
+<li><a class=dropdown-item href=/community/resources/>Resources</a></li>
+<li><a class=dropdown-item href=/community/meetings/>Meetings</a></li>
+<li><a class=dropdown-item
href=https://hive.apache.org/community/mailinglists/>Mailing Lists</a></li>
+<li><a class=dropdown-item
href=https://hive.apache.org/community/issuetracking/>Issue Tracking</a></li>
+<li><a class=dropdown-item
href=https://hive.apache.org/community/people/>People</a></li>
+<li><hr class=dropdown-divider></li>
+<li><a class=dropdown-item href=/community/bylaws/>By Laws</a></li>
+<li><a class=dropdown-item href=/community/resources/howtorelease/>How To
Release</a></li>
+</ul>
+</li>
+<li class=nav-item>
+<a class=nav-link href=https://hive.blog.apache.org/>
+Blogs
+</a>
+</li>
+<li class="nav-item dropdown">
+<a class="nav-link dropdown-toggle" href=# id=asfDropdown role=button
data-bs-toggle=dropdown aria-expanded=false>
+ASF
+</a>
+<ul class=dropdown-menu aria-labelledby=asfDropdown>
+<li><a class=dropdown-item
href=https://www.apache.org/foundation/contributing.html>Donations</a></li>
+<li><a class=dropdown-item
href=https://www.apache.org/foundation/sponsorship.html>Sponsorship</a></li>
+<li><a class=dropdown-item
href=https://www.apache.org/foundation/thanks.html>Thanks</a></li>
+<li><a class=dropdown-item href=https://www.apache.org/>Website</a></li>
+</ul>
+</li>
+</ul>
+<div class=navbar-search>
+<form action=/search method=get class=search-form>
+<div class=search-input-group>
+<input type=search name=q id=search-query placeholder=Search...
class=search-input aria-label=Search>
+<button type=submit class=search-button aria-label="Submit search">
+<i class="fas fa-search"></i>
+</button>
+</div>
+</form>
+</div>
+</div>
+</div>
+</nav>
+</menu>
+</header>
+<div class=content>
+<div class=docs-container>
+<main class="docs-main docs-main-full">
+<article class=docs-content>
+<nav class=docs-breadcrumb>
+<ol>
+<li><a href=/><i class="fas fa-home"></i> Home</a></li>
+<li><a href=/docs/>Documentation</a></li>
+<li class=active>Hive 4.2.0 - REST Catalog Integration</li>
+</ol>
+</nav>
+<header class=docs-header>
+<h1 class=docs-title>Hive 4.2.0 - REST Catalog Integration</h1>
+<div class=docs-meta>
+<span class=docs-date>
+<i class="fas fa-calendar-alt"></i>
+Last updated: October 31, 2025
+</span>
+</div>
+</header>
+<div class=docs-toc>
+<h4><i class="fas fa-list"></i> Table of Contents</h4>
+<nav id=TableOfContents>
+<ul>
+<li><a href=#rest-catalog-integration>REST Catalog Integration</a>
+<ul>
+<li><a href=#table-of-contents>Table of Contents</a></li>
+<li><a href=#hive--gravitino--keycloak>Hive + Gravitino + Keycloak</a>
+<ul>
+<li><a href=#architecture-overview>Architecture Overview</a></li>
+<li><a href=#prerequisites>Prerequisites</a></li>
+<li><a href=#quickstart>Quickstart</a></li>
+<li><a href=#configuration>Configuration</a></li>
+<li><a href=#networking-notes>Networking Notes</a></li>
+</ul>
+</li>
+<li><a href=#hive--polaris>Hive + Polaris</a>
+<ul>
+<li><a href=#architecture-overview-1>Architecture Overview</a></li>
+<li><a href=#prerequisites-1>Prerequisites</a></li>
+<li><a href=#quickstart-1>Quickstart</a></li>
+<li><a href=#configuration-1>Configuration</a></li>
+<li><a href=#networking-notes-1>Networking Notes</a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</nav>
+</div>
+<div class=docs-article>
+<h1 id=rest-catalog-integration>REST Catalog Integration</h1>
+<h2 id=table-of-contents>Table of Contents</h2>
+<ul>
+<li><a href=#hive--gravitino--keycloak>Hive + Gravitino + Keycloak</a>
+<ul>
+<li><a href=#architecture-overview>Architecture Overview</a></li>
+<li><a href=#prerequisites>Prerequisites</a></li>
+<li><a href=#quickstart>Quickstart</a></li>
+<li><a href=#configuration>Configuration</a>
+<ul>
+<li><a href=#keycloak>Keyclock</a></li>
+<li><a href=#gravitino>Gravitino</a></li>
+<li><a href=#hive>Hive</a></li>
+</ul>
+</li>
+<li><a href=#networking-notes>Networking Notes</a></li>
+</ul>
+</li>
+<li><a href=#hive--polaris>Hive + Polaris</a>
+<ul>
+<li><a href=#architecture-overview-1>Architecture Overview</a></li>
+<li><a href=#prerequisites-1>Prerequisites</a></li>
+<li><a href=#quickstart-1>Quickstart</a></li>
+<li><a href=#configuration-1>Configuration</a>
+<ul>
+<li><a href=#polaris>Polaris</a></li>
+<li><a href=#hive-1>Hive</a></li>
+</ul>
+</li>
+<li><a href=#networking-notes-1>Networking Notes</a></li>
+</ul>
+</li>
+</ul>
+<h2 id=hive--gravitino--keycloak>Hive + Gravitino + Keycloak</h2>
+<ul>
+<li>The code for this setup is located in the Hive repository in
<code>packaging/src/docker/thirdparties/gravitino</code> folder.</li>
+<li>It contains a docker-compose-based setup integrating Apache Hive,
Gravitino Iceberg REST server, and Keycloak for OAuth2 authentication. It
allows Hive to use an Iceberg REST catalog secured via Keycloak.</li>
+</ul>
+<h3 id=architecture-overview>Architecture Overview</h3>
+<p>This diagram illustrates the key docker-compose components and their
interactions in this setup:</p>
+<pre tabindex=0><code> oAuth2 (REST API)
+ +-------------------------------------------------------------------+
+ | |
+ | v
++--------+----------+ +-------------------+
+-----------------+
+| | RESTCatalog | | oauth2 |
|
+| Hive | (REST API) | Gravitino | (REST API) |
Keycloak |
+| (HiveServer2) +-------------->| Iceberg REST +----------->|
OAuth2 Auth |
+| | | Server | |
Server |
++--------+----------+ +---------+---------+
+-----------------+
+ | |
+ data | metadata files |
+ files +------------------------------------+
+ |
+ v
++-------------------+ +-------------------+
+| | creates dir | |
+| /warehouse |<--------------+ init |
+| (Docker volume) | sets | container |
+| | permissions | |
++-------------------+ +-------------------+
+</code></pre><ul>
+<li>Hive:
+<ul>
+<li>Runs HiveServer2, connects to Gravitino via Iceberg REST catalog.</li>
+<li>Write Iceberg data files to the shared warehouse volume.</li>
+</ul>
+</li>
+<li>Gravitino:
+<ul>
+<li>Exposes REST API for Iceberg catalog.</li>
+<li>Writes Iceberg metadata files to shared warehouse volume
(.metadata.json).</li>
+<li>Doesn’t supports serving as oauth2 provider, so this example uses an
external OAuth2 provider (Keyclock).</li>
+</ul>
+</li>
+<li>Keycloak:
+<ul>
+<li>OAuth2 server providing authentication and token issuance for
Hive/Gravitino.</li>
+</ul>
+</li>
+<li>/warehouse:
+<ul>
+<li>Shared Docker volume for Iceberg table data and metadata.</li>
+</ul>
+</li>
+<li>Init container:
+<ul>
+<li>Creates shared /warehouse folder and sets filesystem permissions as a one
time initialization step.</li>
+</ul>
+</li>
+</ul>
+<h3 id=prerequisites>Prerequisites</h3>
+<ul>
+<li>Hive version 4.2.0+</li>
+<li>Docker & Docker Compose</li>
+<li>Java (for local Hive beeline client)</li>
+<li><code>$HIVE_HOME</code> environment variable pointing to Hive installation
(for connecting to Beeline)</li>
+</ul>
+<h3 id=quickstart>Quickstart</h3>
+<h4 id=step-1-export-the-hive-version>STEP 1: Export the Hive version</h4>
+<div class=highlight><pre tabindex=0
style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
class=language-shell data-lang=shell>export HIVE_VERSION<span
style=color:#f92672>=</span>4.2.0
+</code></pre></div><h4 id=step-2-start-services>STEP 2: Start services</h4>
+<div class=highlight><pre tabindex=0
style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
class=language-shell data-lang=shell>docker-compose up -d
+</code></pre></div><h4 id=step-3-connect-to-beeline>STEP 3: Connect to
beeline</h4>
+<div class=highlight><pre tabindex=0
style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
class=language-shell data-lang=shell><span
style=color:#e6db74>"</span><span
style=color:#e6db74>${</span>HIVE_HOME<span style=color:#e6db74>}</span><span
style=color:#e6db74>/bin/beeline"</span> -u <span
style=color:#e6db74>"jdbc:hive2://localhost:10001/default"</span> -n
hive -p hive
+</code></pre></div><h4 id=step-4-stop-services>STEP 4: Stop services:</h4>
+<div class=highlight><pre tabindex=0
style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
class=language-shell data-lang=shell>docker-compose down -v
+</code></pre></div><h3 id=configuration>Configuration</h3>
+<h4 id=keycloak>Keycloak</h4>
+<ul>
+<li>Realm: hive</li>
+<li>Client: iceberg-client
+<ul>
+<li>Secret: iceberg-client-secret</li>
+<li>Protocol: OpenID Connect</li>
+<li>Audience: hive-iceberg</li>
+</ul>
+</li>
+<li>Imported via <code>realm-export.json</code> in Keycloak container.</li>
+<li>Port: 8080</li>
+</ul>
+<h4 id=gravitino>Gravitino</h4>
+<ul>
+<li>HTTP port: 9001</li>
+<li>Catalog backend: JDBC H2 (/tmp/gravitino_h2_db)</li>
+<li>Warehouse: /warehouse (shared with Hive)</li>
+<li>Iceberg REST Catalog Backend config:
+<pre tabindex=0><code># Backend type for the catalog. Here we use JDBC (H2
database) as the metadata store.
+gravitino.iceberg-rest.catalog-backend = jdbc
+
+# JDBC connection URI for the H2 database storing catalog metadata.
+gravitino.iceberg-rest.uri = jdbc:h2:file:/tmp/gravitino_h2_db;AUTO_SERVER=TRUE
+
+# JDBC driver class used to connect to the metadata database.
+gravitino.iceberg-rest.jdbc-driver = org.h2.Driver
+
+# Database username for connecting to the metadata store.
+gravitino.iceberg-rest.jdbc-user = sa
+
+# Database password for connecting to the metadata store (empty here).
+gravitino.iceberg-rest.jdbc-password = ""
+
+# Whether to initialize the catalog schema on startup.
+gravitino.iceberg-rest.jdbc-initialize = true
+
+# --- Warehouse Location (shared folder) ---
+
+# Path to the Iceberg warehouse directory shared with Hive.
+gravitino.iceberg-rest.warehouse = file:///warehouse
+</code></pre></li>
+<li>OAuth2 config pointing to Keycloak:
+<pre tabindex=0><code># Enables OAuth2 as the authentication mechanism for
Gravitino.
+gravitino.authenticators = oauth
+
+# URL of the Keycloak realm to request tokens from.
+gravitino.authenticator.oauth.serverUri = http://keycloak:8080/realms/hive
+
+# Path to the OAuth2 token endpoint on Keycloak.
+gravitino.authenticator.oauth.tokenPath = /protocol/openid-connect/token
+
+# OAuth2 scopes requested when obtaining a token. Includes "openid"
and the custom "catalog" scope.
+gravitino.authenticator.oauth.scope = openid catalog
+
+# OAuth2 client ID registered in Keycloak.
+gravitino.authenticator.oauth.clientId = iceberg-client
+
+# OAuth2 client secret associated with the client ID.
+gravitino.authenticator.oauth.clientSecret = iceberg-client-secret
+
+# Java class used to validate incoming JWT tokens using the JWKS endpoint.
+gravitino.authenticator.oauth.tokenValidatorClass =
org.apache.gravitino.server.authentication.JwksTokenValidator
+
+# URL to fetch JSON Web Key Set (JWKS) for verifying token signatures.
+gravitino.authenticator.oauth.jwksUri =
http://keycloak:8080/realms/hive/protocol/openid-connect/certs
+
+# Identifier for the OAuth2 provider configuration in Gravitino.
+gravitino.authenticator.oauth.provider = default
+
+# JWT claim field(s) to extract as the principal/username (here, 'sub' claim).
+gravitino.authenticator.oauth.principalFields = sub
+
+# Acceptable clock skew (in seconds) when validating token expiration times.
+gravitino.authenticator.oauth.allowSkewSecs = 60
+
+# Expected audience claim in the token to ensure it is intended for this
service.
+gravitino.authenticator.oauth.serviceAudience = hive-iceberg
+</code></pre></li>
+</ul>
+<h4 id=hive>Hive</h4>
+<ul>
+<li>Uses <code>HiveRESTCatalogClient</code> for connecting to Iceberg REST
catalog (Gravitino).</li>
+<li>Catalog configuration in <code>hive-site.xml</code>:
+<pre tabindex=0><code><property>
+ <name>metastore.catalog.default</name>
+ <value>ice01</value>
+ <description>Sets the default Iceberg catalog for Hive. Here,
"ice01" is used.</description>
+</property>
+
+<property>
+ <name>metastore.client.impl</name>
+
<value>org.apache.iceberg.hive.client.HiveRESTCatalogClient</value>
+ <description>Specifies the client implementation to use for accessing
Iceberg via REST.</description>
+</property>
+
+<property>
+ <name>iceberg.catalog.ice01.uri</name>
+ <value>http://gravitino:9001/iceberg</value>
+ <description>URI of the Iceberg REST server (Gravitino). Hive will
send catalog requests here.</description>
+</property>
+
+<property>
+ <name>iceberg.catalog.ice01.type</name>
+ <value>rest</value>
+ <description>Defines the catalog type as "rest", indicating
it uses a REST API backend.</description>
+</property>
+
+<!-- Iceberg REST Catalog: OAuth2 authentication -->
+
+<property>
+ <name>iceberg.catalog.ice01.rest.auth.type</name>
+ <value>oauth2</value>
+ <description>Configures Hive to use OAuth2 for authenticating requests
to the REST catalog.</description>
+</property>
+
+<property>
+ <name>iceberg.catalog.ice01.oauth2-server-uri</name>
+
<value>http://keycloak:8080/realms/hive/protocol/openid-connect/token</value>
+ <description>URL of the Keycloak OAuth2 token endpoint used to request
access tokens.</description>
+</property>
+
+<property>
+ <name>iceberg.catalog.ice01.credential</name>
+ <value>iceberg-client:iceberg-client-secret</value>
+ <description>Client credentials (ID and secret) used to authenticate
with Keycloak.</description>
+</property>
+</code></pre></li>
+<li>HiveServer2 port: 10000 (mapped to 10001 in Docker Compose)</li>
+</ul>
+<h3 id=networking-notes>Networking Notes</h3>
+<ul>
+<li>All containers share a custom bridge network <code>hive-net</code>.</li>
+<li>Services communicate via container names: hive, gravitino, keycloak.</li>
+<li>Ports mapped for host access:
+<ul>
+<li>Keycloak → 8080</li>
+<li>Gravitino → 9001</li>
+<li>HiveServer2 → 10001</li>
+</ul>
+</li>
+</ul>
+<h2 id=hive--polaris>Hive + Polaris</h2>
+<ul>
+<li>The code for this setup is located in the Hive repository in
<code>packaging/src/docker/thirdparties/polaris</code> folder.</li>
+<li>It contains contains a docker-compose-based setup integrating Apache Hive
and Polaris.</li>
+<li>It allows Hive to use an Iceberg REST catalog secured with oAuth2 provided
by Polaris.</li>
+</ul>
+<h3 id=architecture-overview-1>Architecture Overview</h3>
+<p>This diagram illustrates the key docker-compose components and their
interactions in this setup:</p>
+<pre tabindex=0><code>+-------------------+ +-------------------+
+| | RESTCatalog | |
+| Hive | (REST API) | Polaris |<-------+
+| (HiveServer2) +-------------->| Server | |
+| | oAuth2 | | |
++--------+----------+ (REST API) +---------+---------+ | creates:
+ | | | catalog,
+ data | metadata files | |
principal,
+ files +------------------------------------+ | roles,
+ | | grants
(REST API)
+ v |
++-------------------+ +-------------------+ |
+| | creates dir | | |
+| /warehouse |<--------------+ Polaris-init +--------+
+| (Docker volume) | syncs | container |
+| | permissions | |
++-------------------+ +-------------------+
+</code></pre><ul>
+<li>Hive:
+<ul>
+<li>Runs HiveServer2, connects to Polaris via Iceberg REST catalog.</li>
+<li>Write Iceberg data files to shared warehouse volume.</li>
+</ul>
+</li>
+<li>Polaris:
+<ul>
+<li>Exposes REST API for Iceberg catalog and provides oauth2 for
authentication.</li>
+<li>Supports serving as oauth2 provider, so this example doesn’t need an
external OAuth2 component.</li>
+<li>Writes Iceberg metadata files to shared warehouse volume
(.metadata.json).</li>
+</ul>
+</li>
+<li>/warehouse:
+<ul>
+<li>Shared Docker volume for Iceberg table data and metadata.</li>
+</ul>
+</li>
+<li>Polaris-init
+<ul>
+<li>Bootstraps Polaris for Hive-Iceberg.</li>
+<li>Creates and configures Polaris resources via REST API.</li>
+<li>Continuously synchronizes filesystem permissions for the shared
/warehouse/* folders.
+<ul>
+<li>required because Polaris and Hive run as different users in their
respective containers.</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<h3 id=prerequisites-1>Prerequisites</h3>
+<ul>
+<li>Hive version 4.2.0+</li>
+<li>Docker & Docker Compose</li>
+<li>Java (for local Hive beeline client)</li>
+<li><code>$HIVE_HOME</code> environment variable pointing to Hive installation
(for connecting to Beeline)</li>
+</ul>
+<h3 id=quickstart-1>Quickstart</h3>
+<h4 id=step-1-export-the-hive-version-1>STEP 1: Export the Hive version</h4>
+<div class=highlight><pre tabindex=0
style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
class=language-shell data-lang=shell>export HIVE_VERSION<span
style=color:#f92672>=</span>4.2.0
+</code></pre></div><h4 id=step-2-start-services-1>STEP 2: Start services</h4>
+<div class=highlight><pre tabindex=0
style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
class=language-shell data-lang=shell>docker-compose up -d
+</code></pre></div><h4 id=step-3-connect-to-beeline-1>STEP 3: Connect to
beeline</h4>
+<div class=highlight><pre tabindex=0
style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
class=language-shell data-lang=shell><span
style=color:#e6db74>"</span><span
style=color:#e6db74>${</span>HIVE_HOME<span style=color:#e6db74>}</span><span
style=color:#e6db74>/bin/beeline"</span> -u <span
style=color:#e6db74>"jdbc:hive2://localhost:10001/default"</span> -n
hive -p hive
+</code></pre></div><h4 id=step-4-stop-services-1>STEP 4: Stop services:</h4>
+<div class=highlight><pre tabindex=0
style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
class=language-shell data-lang=shell>docker-compose down -v
+</code></pre></div><h3 id=configuration-1>Configuration</h3>
+<h4 id=polaris>Polaris</h4>
+<ul>
+<li>HTTP port: 8181</li>
+<li>Warehouse: /warehouse (shared with Hive)</li>
+<li>Key Polaris configs (defined via env variables in docker-compose.yml) :
+<pre tabindex=0><code> # A realm provides logical isolation for different
Polaris environments.
+ polaris.realm-context.realms: POLARIS
+
+ # Initial bootstrap credentials for the Polaris server.
+ # The format is: <realm-name>,<client-id>,<client-secret>
+ POLARIS_BOOTSTRAP_CREDENTIALS: POLARIS,iceberg-client,iceberg-client-secret`
+</code></pre></li>
+</ul>
+<h4 id=hive-1>Hive</h4>
+<ul>
+<li>Uses <code>HiveRESTCatalogClient</code> for connecting to Iceberg REST
catalog (Polaris).</li>
+<li>Catalog configuration in <code>hive-site.xml</code>:
+<pre tabindex=0><code><property>
+ <name>metastore.catalog.default</name>
+ <value>ice01</value>
+ <description>Sets the default Iceberg catalog for Hive. Here,
"ice01" is used.</description>
+</property>
+
+<property>
+ <name>metastore.client.impl</name>
+
<value>org.apache.iceberg.hive.client.HiveRESTCatalogClient</value>
+ <description>Specifies the client implementation to use for accessing
Iceberg via REST.</description>
+</property>
+
+<property>
+ <name>iceberg.catalog.ice01.uri</name>
+ <value>http://polaris:8181/api/catalog</value>
+ <description>URI of the Iceberg REST server (Polaris). Hive will send
catalog requests here.</description>
+</property>
+
+<property>
+ <name>iceberg.catalog.ice01.type</name>
+ <value>rest</value>
+ <description>Defines the catalog type as "rest", indicating
it uses a REST API backend.</description>
+</property>
+
+<property>
+ <name>hive.metastore.warehouse.dir</name>
+ <value>file:///warehouse</value>
+ <description>Defines the warehouse location, required for
Polaris</description>
+</property>
+
+<!-- Iceberg REST Catalog: OAuth2 authentication -->
+
+<property>
+ <name>iceberg.catalog.ice01.rest.auth.type</name>
+ <value>oauth2</value>
+ <description>Configures Hive to use OAuth2 for authenticating requests
to the REST catalog.</description>
+</property>
+
+<property>
+ <name>iceberg.catalog.ice01.oauth2-server-uri</name>
+ <value>http://polaris:8181/api/catalog/v1/oauth/tokens</value>
+ <description>URL of the Polaris OAuth2 token endpoint used to request
access tokens.</description>
+</property>
+
+<property>
+ <name>iceberg.catalog.ice01.credential</name>
+ <value>iceberg-client:iceberg-client-secret</value>
+ <description>Client credentials (ID and secret) used to authenticate
with Keycloak.</description>
+</property>
+
+<property>
+ <name>iceberg.catalog.ice01.scope</name>
+ <value>PRINCIPAL_ROLE:ALL</value>
+ <description>oAuth2 scope tied to the principal role defined in
Polaris</description>
+</property>
+</code></pre></li>
+<li>HiveServer2 port: 10000 (mapped to 10001 in Docker Compose)</li>
+</ul>
+<h3 id=networking-notes-1>Networking Notes</h3>
+<ul>
+<li>All containers share a custom bridge network <code>hive-net</code>.</li>
+<li>Services communicate via container names: hive and polaris</li>
+<li>Ports mapped for host access:
+<ul>
+<li>Polaris → 8181</li>
+<li>HiveServer2 → 10001</li>
+</ul>
+</li>
+</ul>
+</div>
+<footer class=docs-footer>
+<div class=docs-feedback>
+<h4><i class="fas fa-comment"></i> Feedback</h4>
+<p>Was this page helpful? Let us know how we can improve.</p>
+<div class=docs-feedback-buttons>
+<button class="btn btn-feedback btn-positive">
+<i class="fas fa-thumbs-up"></i> Yes
+</button>
+<button class="btn btn-feedback btn-negative">
+<i class="fas fa-thumbs-down"></i> No
+</button>
+</div>
+</div>
+<div class=docs-edit>
+<a
href=https://github.com/apache/hive-site/edit/main/content/docs/latest/quickstart-rest-catalog.md
class="btn btn-outline">
+<i class="fab fa-github"></i> Edit this page on GitHub
+</a>
+</div>
+</footer>
+</article>
+<aside class=docs-toc-sidebar>
+<div class=docs-toc-sticky>
+<h4><i class="fas fa-list"></i> On this page</h4>
+<nav id=TableOfContents>
+<ul>
+<li><a href=#rest-catalog-integration>REST Catalog Integration</a>
+<ul>
+<li><a href=#table-of-contents>Table of Contents</a></li>
+<li><a href=#hive--gravitino--keycloak>Hive + Gravitino + Keycloak</a>
+<ul>
+<li><a href=#architecture-overview>Architecture Overview</a></li>
+<li><a href=#prerequisites>Prerequisites</a></li>
+<li><a href=#quickstart>Quickstart</a></li>
+<li><a href=#configuration>Configuration</a></li>
+<li><a href=#networking-notes>Networking Notes</a></li>
+</ul>
+</li>
+<li><a href=#hive--polaris>Hive + Polaris</a>
+<ul>
+<li><a href=#architecture-overview-1>Architecture Overview</a></li>
+<li><a href=#prerequisites-1>Prerequisites</a></li>
+<li><a href=#quickstart-1>Quickstart</a></li>
+<li><a href=#configuration-1>Configuration</a></li>
+<li><a href=#networking-notes-1>Networking Notes</a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</nav>
+</div>
+</aside>
+</main>
+</div>
+</div>
+<footer class="black-background static-bottom" style=padding:30px>
+<div class=row>
+<div class=col-3>
+<a href=https://www.apache.org/>
+<img src=https://hive.apache.org/images/asf_logo.png width=270 height=100
alt="Apache Software Foundation"></a>
+</a>
+</div>
+<div class=col-9>
+<p class=footer-text>Apache is a non-profit organization helping open-source
+software projects released under the Apache
+<a href=https://www.apache.org/licenses/>license</a>
+and managed with
+<a href=https://www.apache.org/foundation/how-it-works.html>
+open governance</a> and
+<a href=https://privacy.apache.org/policies/privacy-policy-public.html>
+privacy policy</a>. See upcoming
+<a href=https://www.apache.org/events/current-event>Apache Events</a>.
+If you discover any
+<a href=https://www.apache.org/security/>security</a> vulnerabilities, please
+report them privately. Finally,
+<a href=https://www.apache.org/foundation/sponsorship.html>thanks
+</a> to the sponsors who
+<a href=https://www.apache.org/foundation/contributing.html>
+donate</a> to the Apache Foundation.
+</p>
+</div>
+</div>
+<div class="copyright row">
+<a href=https://hive.apache.org style=color:grey>
+The contents of this website are © 2023 Apache Software Foundation under the
terms of the Apache License v2. Apache Hive and its logo are trademarks of the
Apache Software Foundation.
+</a>
+</div>
+</footer>
+<script src=https://hive.apache.org/js/bootstrap.bundle.min.js></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/index.json b/index.json
index 66c47bf..7df07e1 100644
--- a/index.json
+++ b/index.json
@@ -1 +1 @@
-[{"categories":null,"contents":"Apache Hive : Hive Schema Tool Apache Hive :
Hive Schema Tool About Metastore Schema Verification The Hive Schema Tool The
schematool Command Usage Examples About Schema tool helps to initialise
and upgrade metastore database and hive sys schema.\nMetastore Schema
Verification Introduced in Hive 0.12.0. See HIVE-3764.\nHive records the schema
version in the metastore database and verifies that the metastore schema
version is compatible with Hive [...]
\ No newline at end of file
+[{"categories":null,"contents":"REST Catalog Integration Table of Contents
Hive + Gravitino + Keycloak Architecture Overview Prerequisites Quickstart
Configuration Keyclock Gravitino Hive Networking Notes Hive + Polaris
Architecture Overview Prerequisites Quickstart Configuration Polaris Hive
Networking Notes Hive + Gravitino + Keycloak The code for this setup is
located in the Hive repository in packaging/src/docker/thirdparties/gravitino
folder. It contains a docker-comp [...]
\ No newline at end of file
diff --git a/index.xml b/index.xml
index 5ddfbc2..960b730 100644
--- a/index.xml
+++ b/index.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0"
xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Apache Hive on Hive
Site</title><link>https://hive.apache.org/</link><description>Recent content in
Apache Hive on Hive Site</description><generator>Hugo --
gohugo.io</generator><language>en-us</language><lastBuildDate>Fri, 27 Jan 2023
19:16:15 +0530</lastBuildDate><atom:link
href="https://hive.apache.org/index.xml" rel="self"
type="application/rss+xml"/><ite [...]
+<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0"
xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Apache Hive on Hive
Site</title><link>https://hive.apache.org/</link><description>Recent content in
Apache Hive on Hive Site</description><generator>Hugo --
gohugo.io</generator><language>en-us</language><lastBuildDate>Fri, 27 Jan 2023
19:16:15 +0530</lastBuildDate><atom:link
href="https://hive.apache.org/index.xml" rel="self"
type="application/rss+xml"/><ite [...]
Metastore Schema Verification Introduced in Hive 0.12.0. See HIVE-3764.
Hive records the schema version in the metastore database and verifies that
the metastore schema version is compatible with Hive binaries that are going to
access the metastore.</description></item><item><title>Apache Hive : Setting Up
OAuth 2 with
Keycloak</title><link>https://hive.apache.org/docs/latest/admin/oauth2/keycloak/</link><pubDate>Tue,
30 Sep 2025 00:00:00
+0000</pubDate><guid>https://hive.apache.org/docs/latest/admin/oauth2/keycloak/</guid><description>Apache
Hive : Setting [...]
2. Define the &ldquo;catalog&rdquo; scope Iceberg REST Catalog uses
&ldquo;catalog&rdquo; as the default scope
name.</description></item><item><title>Capture Lineage Information In Hive
Hooks</title><link>https://hive.apache.org/docs/latest/user/capture-lineage-info/</link><pubDate>Tue,
29 Jul 2025 00:00:00
+0000</pubDate><guid>https://hive.apache.org/docs/latest/user/capture-lineage-info/</guid><description>Background
In Hive, lineage information is captured in the form [...]
diff --git a/sitemap.xml b/sitemap.xml
index b7954c2..fb8588f 100644
--- a/sitemap.xml
+++ b/sitemap.xml
@@ -1 +1 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?><urlset
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xhtml="http://www.w3.org/1999/xhtml"><url><loc>https://hive.apache.org/docs/latest/admin/hive-schema-tool/</loc><lastmod>2025-10-14T00:00:00+00:00</lastmod></url><url><loc>https://hive.apache.org/docs/</loc><lastmod>2025-10-14T00:00:00+00:00</lastmod></url><url><loc>https://hive.apache.org/docs/latest/admin/oauth2/</loc><lastmod>2025-09-30T00:00:00+00:00</lastmod></url
[...]
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8" standalone="yes"?><urlset
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xhtml="http://www.w3.org/1999/xhtml"><url><loc>https://hive.apache.org/docs/</loc><lastmod>2025-10-31T00:00:00+00:00</lastmod></url><url><loc>https://hive.apache.org/docs/latest/quickstart-rest-catalog/</loc><lastmod>2025-10-31T00:00:00+00:00</lastmod></url><url><loc>https://hive.apache.org/docs/latest/admin/hive-schema-tool/</loc><lastmod>2025-10-14T00:00:00+00:00</la
[...]
\ No newline at end of file