This is an automated email from the ASF dual-hosted git repository.
zabetak 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 eec8aabf HIVE-29489: Update the Hive version in the quick start guide
(#102)
eec8aabf is described below
commit eec8aabf46963144f7500955ae33621b6f93f6cd
Author: Shohei Okumiya <[email protected]>
AuthorDate: Thu Aug 20 18:58:11 2026 +0900
HIVE-29489: Update the Hive version in the quick start guide (#102)
---
config.toml | 3 +
content/Development/quickStart.md | 150 ++++++++++++++++------------
content/community/resources/howtorelease.md | 13 +--
layouts/shortcodes/hive-version.html | 1 +
4 files changed, 97 insertions(+), 70 deletions(-)
diff --git a/config.toml b/config.toml
index 2fcb27ef..789192d5 100644
--- a/config.toml
+++ b/config.toml
@@ -11,6 +11,9 @@ theme = 'hive'
apacheURL = 'https://www.apache.org'
javaDocUrl =
'https://svn.apache.org/repos/infra/websites/production/hive/content/javadocs'
+[params.release]
+ version = "4.2.0"
+
[params.banner]
github = "https://github.com/apache/hive"
docker = "https://hub.docker.com/r/apache/hive"
diff --git a/content/Development/quickStart.md
b/content/Development/quickStart.md
index 19a4720f..91df01f4 100644
--- a/content/Development/quickStart.md
+++ b/content/Development/quickStart.md
@@ -18,148 +18,170 @@ Run Apache Hive inside docker container in
pseudo-distributed mode, inorder to p
##### **STEP 1: Pull the image**
-- Pull the image from DockerHub: https://hub.docker.com/r/apache/hive/tags.
Here are the latest images:
- - 4.0.0
- - 3.1.3
+Pull the image from DockerHub: https://hub.docker.com/r/apache/hive/tags. The
latest image tag is `{{< hive-version >}}`.
+
```shell
-docker pull apache/hive:4.0.0
+docker pull apache/hive:{{< hive-version >}}
```
-` `
+
##### **STEP 2: Export the Hive version**
+
```shell
-export HIVE_VERSION=4.0.0
+export HIVE_VERSION={{< hive-version >}}
```
-` `
+
##### **STEP 3: Launch the HiveServer2 with an embedded Metastore.**
This is lightweight and for a quick setup, it uses Derby as metastore db.
+
```shell
docker run -d -p 10000:10000 -p 10002:10002 --env SERVICE_NAME=hiveserver2
--name hive4 apache/hive:${HIVE_VERSION}
```
-` `
+
##### **STEP 4: Connect to beeline**
```shell
docker exec -it hiveserver2 beeline -u 'jdbc:hive2://hiveserver2:10000/'
```
-` `
+
##### Note: Launch Standalone Metastore To use standalone Metastore with Derby,
```shell
docker run -d -p 9083:9083 --env SERVICE_NAME=metastore --name
metastore-standalone apache/hive:${HIVE_VERSION}
```
-` `
+
## Detailed Setup
---
##### - Build image
Apache Hive relies on Hadoop, Tez and some others to facilitate reading,
writing, and managing large datasets.
-The [/packaging/src/docker/build.sh] provides ways to build the image against
specified version of the dependent, as well as build from source.
+The
[/packaging/src/docker/build.sh](https://github.com/apache/hive/blob/master/packaging/src/docker/build.sh)
provides ways to build the image against specified version of the dependent,
as well as build from source.
##### - Build from source
+
```shell
mvn clean package -pl packaging -DskipTests -Pdocker
```
-` `
+
##### - Build with specified version
There are some arguments to specify the component version:
+
```shell
-hadoop <hadoop version>
-tez <tez version>
-hive <hive version>
```
+
If the version is not provided, it will read the version from current
`pom.xml`:
`project.version`, `hadoop.version` and `tez.version` for Hive, Hadoop and Tez
respectively.
-For example, the following command uses Hive 4.0.0, Hadoop `hadoop.version`
and Tez `tez.version` to build the image,
+For example, the following command uses Hive {{< hive-version >}}, Hadoop
`hadoop.version` and Tez `tez.version` to build the image,
+
```shell
-./build.sh -hive 4.0.0
+./build.sh -hive {{< hive-version >}}
```
-If the command does not specify the Hive version, it will use the local
`apache-hive-${project.version}-bin.tar.gz`(will trigger a build if it doesn't
exist),
-together with Hadoop 3.3.6 and Tez 0.10.3 to build the image,
+
+If the command does not specify the Hive version, it will use the local
`apache-hive-${project.version}-bin.tar.gz`(will trigger a build if it doesn't
exist), together with Hadoop 3.3.6 and Tez 0.10.3 to build the image,
+
```shell
./build.sh -hadoop 3.3.6 -tez 0.10.3
```
+
After building successfully, we can get a Docker image named `apache/hive` by
default, the image is tagged by the provided Hive version.
### Run services
---
Before going further, we should define the environment variable `HIVE_VERSION`
first.
-For example, if `-hive 4.0.0` is specified to build the image,
+For example, if `-hive {{< hive-version >}}` is specified to build the image,
+
```shell
-export HIVE_VERSION=4.0.0
+export HIVE_VERSION={{< hive-version >}}
```
+
or assuming that you're relying on current `project.version` from pom.xml,
+
```shell
export HIVE_VERSION=$(mvn -f pom.xml -q help:evaluate
-Dexpression=project.version -DforceStdout)
```
-` `
+
##### **- Metastore**
For a quick start, launch the Metastore with Derby,
- ```shell
- docker run -d -p 9083:9083 --env SERVICE_NAME=metastore --name
metastore-standalone apache/hive:${HIVE_VERSION}
- ```
+
+```shell
+docker run -d -p 9083:9083 --env SERVICE_NAME=metastore --name
metastore-standalone apache/hive:${HIVE_VERSION}
+```
+
Everything would be lost when the service is down. In order to save the Hive
table's schema and data, start the container with an external Postgres and
Volume to keep them,
- ```shell
- docker run -d -p 9083:9083 --env SERVICE_NAME=metastore --env
DB_DRIVER=postgres \
- --env
SERVICE_OPTS="-Djavax.jdo.option.ConnectionDriverName=org.postgresql.Driver
-Djavax.jdo.option.ConnectionURL=jdbc:postgresql://postgres:5432/metastore_db
-Djavax.jdo.option.ConnectionUserName=hive
-Djavax.jdo.option.ConnectionPassword=password" \
- --mount source=warehouse,target=/opt/hive/data/warehouse \
- --mount type=bind,source=`mvn help:evaluate
-Dexpression=settings.localRepository -q
-DforceStdout`/org/postgresql/postgresql/42.5.1/postgresql-42.5.1.jar,target=/opt/hive/lib/postgres.jar
\
- --name metastore-standalone apache/hive:${HIVE_VERSION}
- ```
+```shell
+docker run -d -p 9083:9083 --env SERVICE_NAME=metastore --env
DB_DRIVER=postgres \
+ --env
SERVICE_OPTS="-Djavax.jdo.option.ConnectionDriverName=org.postgresql.Driver
-Djavax.jdo.option.ConnectionURL=jdbc:postgresql://postgres:5432/metastore_db
-Djavax.jdo.option.ConnectionUserName=hive
-Djavax.jdo.option.ConnectionPassword=password" \
+ --mount source=warehouse,target=/opt/hive/data/warehouse \
+ --mount type=bind,source=`mvn help:evaluate
-Dexpression=settings.localRepository -q
-DforceStdout`/org/postgresql/postgresql/42.5.1/postgresql-42.5.1.jar,target=/opt/hive/lib/postgres.jar
\
+ --name metastore-standalone apache/hive:${HIVE_VERSION}
+```
+
If you want to use your own `hdfs-site.xml` or `yarn-site.xml` for the
service, you can provide the environment variable `HIVE_CUSTOM_CONF_DIR` for
the command. For instance, put the custom configuration file under the
directory `/opt/hive/conf`, then,
- ```shell
- docker run -d -p 9083:9083 --env SERVICE_NAME=metastore --env
DB_DRIVER=postgres \
- -v /opt/hive/conf:/hive_custom_conf --env
HIVE_CUSTOM_CONF_DIR=/hive_custom_conf \
- --mount type=bind,source=`mvn help:evaluate
-Dexpression=settings.localRepository -q
-DforceStdout`/org/postgresql/postgresql/42.5.1/postgresql-42.5.1.jar,target=/opt/hive/lib/postgres.jar
\
- --name metastore apache/hive:${HIVE_VERSION}
- ```
-For Hive releases before 4.0, if you want to upgrade the existing external
Metastore schema to the target version, then add `--env
SCHEMA_COMMAND=upgradeSchema` to the command.
+```shell
+docker run -d -p 9083:9083 --env SERVICE_NAME=metastore --env
DB_DRIVER=postgres \
+ -v /opt/hive/conf:/hive_custom_conf --env
HIVE_CUSTOM_CONF_DIR=/hive_custom_conf \
+ --mount type=bind,source=`mvn help:evaluate
-Dexpression=settings.localRepository -q
-DforceStdout`/org/postgresql/postgresql/42.5.1/postgresql-42.5.1.jar,target=/opt/hive/lib/postgres.jar
\
+ --name metastore apache/hive:${HIVE_VERSION}
+```
+
+For Hive releases before 4.2, if you want to upgrade the existing external
Metastore schema to the target version, then add `--env
SCHEMA_COMMAND=upgradeSchema` to the command.
To skip schematool initialisation or upgrade for metastore use `--env
IS_RESUME="true"`, for verbose logging set `--env VERBOSE="true"`.
-` `
##### **- HiveServer2**
Launch the HiveServer2 with an embedded Metastore,
- ```shell
- docker run -d -p 10000:10000 -p 10002:10002 --env SERVICE_NAME=hiveserver2
--name hiveserver2-standalone apache/hive:${HIVE_VERSION}
- ```
+
+```shell
+ docker run -d -p 10000:10000 -p 10002:10002 --env SERVICE_NAME=hiveserver2
--name hiveserver2-standalone apache/hive:${HIVE_VERSION}
+```
+
or specify a remote Metastore if it's available,
- ```shell
- docker run -d -p 10000:10000 -p 10002:10002 --env SERVICE_NAME=hiveserver2
\
- --env SERVICE_OPTS="-Dhive.metastore.uris=thrift://metastore:9083" \
- --env IS_RESUME="true" \
- --name hiveserver2-standalone apache/hive:${HIVE_VERSION}
- ```
+
+```shell
+docker run -d -p 10000:10000 -p 10002:10002 --env SERVICE_NAME=hiveserver2 \
+ --env SERVICE_OPTS="-Dhive.metastore.uris=thrift://metastore:9083" \
+ --env IS_RESUME="true" \
+ --name hiveserver2-standalone apache/hive:${HIVE_VERSION}
+```
+
To save the data between container restarts, you can start the HiveServer2
with a Volume,
- ```shell
- docker run -d -p 10000:10000 -p 10002:10002 --env SERVICE_NAME=hiveserver2 \
- --env SERVICE_OPTS="-Dhive.metastore.uris=thrift://metastore:9083" \
- --mount source=warehouse,target=/opt/hive/data/warehouse \
- --env IS_RESUME="true" \
- --name hiveserver2 apache/hive:${HIVE_VERSION}
- ```
-` `
+
+```shell
+docker run -d -p 10000:10000 -p 10002:10002 --env SERVICE_NAME=hiveserver2 \
+ --env SERVICE_OPTS="-Dhive.metastore.uris=thrift://metastore:9083" \
+ --mount source=warehouse,target=/opt/hive/data/warehouse \
+ --env IS_RESUME="true" \
+ --name hiveserver2 apache/hive:${HIVE_VERSION}
+```
+
##### **- HiveServer2, Metastore**
-To get a quick overview of both HiveServer2 and Metastore, there is a
`docker-compose.yml` placed under `packaging/src/docker` for this purpose,
-specify the `POSTGRES_LOCAL_PATH` first:
+To get a quick overview of both HiveServer2 and Metastore, there is a
`docker-compose.yml` placed under `packaging/src/docker` for this purpose,
specify the `POSTGRES_LOCAL_PATH` first:
+
```shell
export POSTGRES_LOCAL_PATH=your_local_path_to_postgres_driver
```
+
Example:
+
```shell
mvn dependency:copy -Dartifact="org.postgresql:postgresql:42.5.1" && \
export POSTGRES_LOCAL_PATH=`mvn help:evaluate
-Dexpression=settings.localRepository -q
-DforceStdout`/org/postgresql/postgresql/42.5.1/postgresql-42.5.1.jar
```
-If you don't install maven or have problem in resolving the postgres driver,
you can always download this jar yourself,
-change the `POSTGRES_LOCAL_PATH` to the path of the downloaded jar. Then,
+
+If you don't install maven or have problem in resolving the postgres driver,
you can always download this jar yourself, change the `POSTGRES_LOCAL_PATH` to
the path of the downloaded jar. Then,
+
```shell
docker compose up -d
```
+
HiveServer2, Metastore and Postgres services will be started as a consequence.
Volumes are used to persist data generated by Hive inside Postgres and
HiveServer2 containers:
- hive_db
- The volume persists the metadata of Hive tables inside Postgres container.
@@ -167,6 +189,7 @@ HiveServer2, Metastore and Postgres services will be
started as a consequence. V
- The volume stores tables' files inside HiveServer2 container.
To stop/remove them all,
+
```shell
docker compose down
```
@@ -176,7 +199,7 @@ docker compose down
---
- HiveServer2 web
- - Accessed on browser at http://localhost:10002/
+ - Accessed on browser at http://localhost:10002/
- Beeline:
```shell
docker exec -it hiveserver2 beeline -u 'jdbc:hive2://hiveserver2:10000/'
@@ -198,8 +221,7 @@ docker compose down
`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.
+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
@@ -214,7 +236,7 @@ services:
environment:
POSTGRES_PASSWORD: "example"
hiveserver2-standalone:
- image: apache/hive:4.0.1
+ image: apache/hive:{{< hive-version >}}
depends_on:
- some-postgres
environment:
@@ -251,7 +273,7 @@ services:
environment:
POSTGRES_PASSWORD: "example"
metastore-standalone:
- image: apache/hive:4.0.1
+ image: apache/hive:{{< hive-version >}}
depends_on:
- some-postgres
environment:
@@ -265,7 +287,7 @@ services:
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
+ image: apache/hive:{{< hive-version >}}
depends_on:
- metastore-standalone
environment:
diff --git a/content/community/resources/howtorelease.md
b/content/community/resources/howtorelease.md
index 5123da63..d260ec52 100644
--- a/content/community/resources/howtorelease.md
+++ b/content/community/resources/howtorelease.md
@@ -467,14 +467,15 @@ If this is a bugfix release, svn rm the obsoleted
version. (For eg., when commit
```
git clone https://github.com/apache/hive-site.git
```
-8. Edit files content/downloads.mdtext and javadoc.mdtext to appropriately add
entries for the new release in the appropriate location. For example, for
1.2.0, the entries made were as follows:
+8. Edit some files to appropriately add entries for the new release in the
appropriate location. For example, for 1.2.0, the entries made were as follows:
```
-./downloads.md:### 18 May 2015 : release 1.2.0 available
-./downloads.md:You can look at the complete [JIRA change log for this
release][HIVE_1_2_0_CL].
-./downloads.md:[HIVE_1_2_0_CL]:
https://issues.apache.org/jira/secure/ReleaseNote.jspa?version=12329345&styleName=Text&projectId=12310843
-./javadoc.md: * [Hive 1.2.0 Javadocs][r1.2.0]
-./javadoc.md:[r1.2.0]: /javadocs/r1.2.0/api/index.html
+./content/general/downloads.md:### 18 May 2015 : release 1.2.0 available
+./content/general/downloads.md:You can look at the complete [JIRA change log
for this release][HIVE_1_2_0_CL].
+./content/general/downloads.md:[HIVE_1_2_0_CL]:
https://issues.apache.org/jira/secure/ReleaseNote.jspa?version=12329345&styleName=Text&projectId=12310843
+./content/docs/javadocs.md: * [Hive 1.2.0 Javadocs][r1.2.0]
+./content/docs/javadocs.md:[r1.2.0]: /javadocs/r1.2.0/api/index.html
+./config.toml: version = "1.2.0" (under [params.release])
```
As you can see, you will need a release note link for this release as created
previously for this section.
diff --git a/layouts/shortcodes/hive-version.html
b/layouts/shortcodes/hive-version.html
new file mode 100644
index 00000000..1b408b81
--- /dev/null
+++ b/layouts/shortcodes/hive-version.html
@@ -0,0 +1 @@
+{{- .Site.Params.release.version -}}