This is an automated email from the ASF dual-hosted git repository.

dengzh pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/hive-site.git


The following commit(s) were added to refs/heads/main by this push:
     new e7e3686  HIVE-28437: Add documentation for initializing the system 
schemas for HiveServer2 for `Quickstart with Docker` (#40)
e7e3686 is described below

commit e7e368678a84d29ac707bf89ead9794624722e53
Author: Ling Hengqian <[email protected]>
AuthorDate: Tue Feb 11 08:59:18 2025 +0800

    HIVE-28437: Add documentation for initializing the system schemas for 
HiveServer2 for `Quickstart with Docker` (#40)
---
 content/Development/quickStart.md | 98 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 98 insertions(+)

diff --git a/content/Development/quickStart.md 
b/content/Development/quickStart.md
index 7428296..a15b5f5 100644
--- a/content/Development/quickStart.md
+++ b/content/Development/quickStart.md
@@ -190,5 +190,103 @@ docker compose down
     select count(distinct a) from hive_example;
     select sum(b) from hive_example;
   ```
+
+#### `sys` Schema and `information_schema` Schema
+
+`Hive Schema Tool` is located in the Docker Image at 
`/opt/hive/bin/schematool`.
+
+By default, system schemas such as `information_schema` for HiveServer2 are 
not created.
+To create system schemas for a HiveServer2 instance,
+users need to configure the Hive Metastore Server used by HiveServer2 to use a 
database other than the embedded Derby.
+The following text discusses how to configure HiveServer2 when the Hive 
Metastore Server is in different locations.
+
+##### HiveServer2 with embedded Hive Metastore Server
+
+Assuming `Maven` and `Docker CE` are installed, a possible use case is as 
follows.
+Create a `compose.yaml` file in the current directory,
+
+```yaml
+services:
+  some-postgres:
+    image: postgres:17.2-bookworm
+    environment:
+      POSTGRES_PASSWORD: "example"
+  hiveserver2-standalone:
+    image: apache/hive:4.0.1
+    depends_on:
+      - some-postgres
+    environment:
+      SERVICE_NAME: hiveserver2
+      DB_DRIVER: postgres
+      SERVICE_OPTS: >-
+        -Djavax.jdo.option.ConnectionDriverName=org.postgresql.Driver
+        
-Djavax.jdo.option.ConnectionURL=jdbc:postgresql://some-postgres:5432/postgres
+        -Djavax.jdo.option.ConnectionUserName=postgres
+        -Djavax.jdo.option.ConnectionPassword=example
+    volumes:
+      - 
~/.m2/repository/org/postgresql/postgresql/42.7.5/postgresql-42.7.5.jar:/opt/hive/lib/postgres.jar
+```
+
+Then execute the shell command as follows to initialize the system schemas in 
HiveServer2.
+
+```shell
+mvn dependency:get -Dartifact=org.postgresql:postgresql:42.7.5
+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
+```
+
+##### HiveServer2 using a remote Hive Metastore Server
+
+Assuming `Maven` and `Docker CE` are installed, a possible use case is as 
follows.
+Create a `compose.yaml` file in the current directory,
+
+```yaml
+services:
+  some-postgres:
+    image: postgres:17.2-bookworm
+    environment:
+      POSTGRES_PASSWORD: "example"
+  metastore-standalone:
+    image: apache/hive:4.0.1
+    depends_on:
+      - some-postgres
+    environment:
+      SERVICE_NAME: metastore
+      DB_DRIVER: postgres
+      SERVICE_OPTS: >-
+        -Djavax.jdo.option.ConnectionDriverName=org.postgresql.Driver
+        
-Djavax.jdo.option.ConnectionURL=jdbc:postgresql://some-postgres:5432/postgres
+        -Djavax.jdo.option.ConnectionUserName=postgres
+        -Djavax.jdo.option.ConnectionPassword=example
+    volumes:
+      - 
~/.m2/repository/org/postgresql/postgresql/42.7.5/postgresql-42.7.5.jar:/opt/hive/lib/postgres.jar
+  hiveserver2-standalone:
+    image: apache/hive:4.0.1
+    depends_on:
+      - metastore-standalone
+    environment:
+      SERVICE_NAME: hiveserver2
+      IS_RESUME: true
+      SERVICE_OPTS: >-
+        -Djavax.jdo.option.ConnectionDriverName=org.postgresql.Driver
+        
-Djavax.jdo.option.ConnectionURL=jdbc:postgresql://some-postgres:5432/postgres
+        -Djavax.jdo.option.ConnectionUserName=postgres
+        -Djavax.jdo.option.ConnectionPassword=example
+        -Dhive.metastore.uris=thrift://metastore-standalone:9083
+    volumes:
+      - 
~/.m2/repository/org/postgresql/postgresql/42.7.5/postgresql-42.7.5.jar:/opt/hive/lib/postgres.jar
+```
+
+Then execute the shell command as follows to initialize the system schemas in 
HiveServer2.
+
+```shell
+mvn dependency:get -Dartifact=org.postgresql:postgresql:42.7.5
+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
+```
   
 [/packaging/src/docker/build.sh]: 
https://github.com/apache/hive/blob/master/packaging/src/docker/build.sh
\ No newline at end of file

Reply via email to