This is an automated email from the ASF dual-hosted git repository.
jshao pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/gravitino.git
The following commit(s) were added to refs/heads/main by this push:
new 92bf69fbf7 [#6651] improvement(docker-image): Update docker Hive CI
image to 0.1.18 (#6652)
92bf69fbf7 is described below
commit 92bf69fbf7b0aa0882fae2c0404bcc9f7f803231
Author: Mini Yu <[email protected]>
AuthorDate: Wed Mar 12 19:24:19 2025 +0800
[#6651] improvement(docker-image): Update docker Hive CI image to 0.1.18
(#6652)
### What changes were proposed in this pull request?
- Change the docker Hive CI image from 0.1.17 to 0.1.18
- Add some change log.
### Why are the changes needed?
To support more feat. for more please see #6612
Fix: #6651
### Does this PR introduce _any_ user-facing change?
N/A.
### How was this patch tested?
Existing UTs
---
.github/workflows/docker-image.yml | 7 +++++
build.gradle.kts | 2 +-
dev/docker/hive/download-release.sh | 59 +++++++++++++++++++++++++++++++++++++
dev/docker/hive/hive-dependency.sh | 18 ++++++++---
docs/docker-image-details.md | 6 ++++
5 files changed, 87 insertions(+), 5 deletions(-)
diff --git a/.github/workflows/docker-image.yml
b/.github/workflows/docker-image.yml
index 31fb940740..03bd77946c 100644
--- a/.github/workflows/docker-image.yml
+++ b/.github/workflows/docker-image.yml
@@ -32,6 +32,11 @@ on:
description: 'Publish Docker token'
required: true
type: string
+ pat:
+ description: 'GitHub private access token'
+ required: true
+ type: string
+
publish-latest-tag:
description: 'Whether to update the latest tag. This operation is only
applicable to official releases and should not be used for Release Candidate
(RC).'
required: false
@@ -132,6 +137,8 @@ jobs:
full_tag_name="${{ github.event.inputs.version }}"
fi
+ export PRIVATE_ACCESS_TOKEN=${{ github.event.inputs.pat }}
+
if [[ "${publish_latest}" == "true" ]]; then
echo "Publish tag ${full_tag_name}, and update latest too."
./dev/docker/build-docker.sh --platform all --type ${image_type}
--image ${image_name} --tag ${full_tag_name} --latest
diff --git a/build.gradle.kts b/build.gradle.kts
index c0d27f38ee..a9254fe868 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -174,7 +174,7 @@ allprojects {
param.environment("PROJECT_VERSION", project.version)
// Gravitino CI Docker image
- param.environment("GRAVITINO_CI_HIVE_DOCKER_IMAGE",
"apache/gravitino-ci:hive-0.1.17")
+ param.environment("GRAVITINO_CI_HIVE_DOCKER_IMAGE",
"apache/gravitino-ci:hive-0.1.18")
param.environment("GRAVITINO_CI_KERBEROS_HIVE_DOCKER_IMAGE",
"apache/gravitino-ci:kerberos-hive-0.1.5")
param.environment("GRAVITINO_CI_DORIS_DOCKER_IMAGE",
"apache/gravitino-ci:doris-0.1.5")
param.environment("GRAVITINO_CI_TRINO_DOCKER_IMAGE",
"apache/gravitino-ci:trino-0.1.6")
diff --git a/dev/docker/hive/download-release.sh
b/dev/docker/hive/download-release.sh
new file mode 100755
index 0000000000..bf03d3c35b
--- /dev/null
+++ b/dev/docker/hive/download-release.sh
@@ -0,0 +1,59 @@
+#!/usr/bin/env bash
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# The first parameter is the version of the release, e.g. 2.4.0
+# The second parameter is the name of the asset file, e.g.
ranger-2.4.0-admin.tar.gz
+# The third parameter is the location and name of the output file, e.g.
/tmp/ranger-2.4.0-admin.tar.gz
+
+set -ex
+
+if [ $# -ne 3 ]; then
+ echo "Usage: $0 <version> <asset-file> <output-file>"
+ exit 1
+fi
+
+
+TOKEN=${PRIVATE_ACCESS_TOKEN}
+REPO="datastrato/ranger"
+FILE=$2 # the name of your release asset file, e.g.
build.tar.gz
+VERSION=$1 # tag name or the word "latest"
+GITHUB="https://api.github.com"
+
+alias err_echo='>&2 echo'
+
+function gh_curl() {
+ curl -H "Authorization: token $TOKEN" \
+ -H "Accept: application/vnd.github.v3.raw" \
+ $@
+}
+
+if [ "$VERSION" = "latest" ]; then
+ # Github should return the latest release first.
+ parser=".[0].assets | map(select(.name == \"$FILE\"))[0].id"
+else
+ parser=". | map(select(.tag_name == \"$VERSION\"))[0].assets |
map(select(.name == \"$FILE\"))[0].id"
+fi;
+
+asset_id=`gh_curl -s $GITHUB/repos/$REPO/releases | jq "$parser"`
+if [ "$asset_id" = "null" ]; then
+ err_echo "ERROR: version not found $VERSION"
+ exit 1
+fi;
+
+echo $2
+
+curl -sL --header "Authorization: token $TOKEN" --header 'Accept:
application/octet-stream'
https://$TOKEN:@api.github.com/repos/$REPO/releases/assets/$asset_id -o $3
diff --git a/dev/docker/hive/hive-dependency.sh
b/dev/docker/hive/hive-dependency.sh
index e93361c3c9..ff138c5171 100755
--- a/dev/docker/hive/hive-dependency.sh
+++ b/dev/docker/hive/hive-dependency.sh
@@ -54,10 +54,10 @@
ZOOKEEPER_PACKAGE_NAME="zookeeper-${ZOOKEEPER_VERSION}.tar.gz"
ZOOKEEPER_DOWNLOAD_URL="https://archive.apache.org/dist/zookeeper/zookeeper-${ZOOKEEPER_VERSION}/${ZOOKEEPER_PACKAGE_NAME}"
RANGER_HIVE_PACKAGE_NAME="ranger-${RANGER_VERSION}-hive-plugin.tar.gz"
-RANGER_HIVE_DOWNLOAD_URL=https://github.com/datastrato/apache-ranger/releases/download/release-ranger-${RANGER_VERSION}/ranger-${RANGER_VERSION}-hive-plugin.tar.gz
+RANGER_HIVE_DOWNLOAD_URL=https://github.com/datastrato/ranger/releases/download/v${RANGER_VERSION}/ranger-${RANGER_VERSION}-hive-plugin.tar.gz
RANGER_HDFS_PACKAGE_NAME="ranger-${RANGER_VERSION}-hdfs-plugin.tar.gz"
-RANGER_HDFS_DOWNLOAD_URL=https://github.com/datastrato/apache-ranger/releases/download/release-ranger-${RANGER_VERSION}/ranger-${RANGER_VERSION}-hdfs-plugin.tar.gz
+RANGER_HDFS_DOWNLOAD_URL=https://github.com/datastrato/ranger/releases/download/v${RANGER_VERSION}/ranger-${RANGER_VERSION}-hdfs-plugin.tar.gz
# Prepare download packages
if [[ ! -d "${hive_dir}/packages" ]]; then
@@ -89,11 +89,21 @@ if [ ! -f "${hive_dir}/packages/${ZOOKEEPER_PACKAGE_NAME}"
]; then
fi
if [ ! -f "${hive_dir}/packages/${RANGER_HDFS_PACKAGE_NAME}" ]; then
- curl -L -s -o "${hive_dir}/packages/${RANGER_HDFS_PACKAGE_NAME}"
${RANGER_HDFS_DOWNLOAD_URL}
+ bash ${hive_dir}/download-release.sh "v${RANGER_VERSION}"
${RANGER_HDFS_PACKAGE_NAME} "${hive_dir}/packages/${RANGER_HDFS_PACKAGE_NAME}"
+fi
+
+if [[ $? -ne 0 ]]; then
+ echo "Failed to download Ranger HDFS plugin package"
+ exit 1
fi
if [ ! -f "${hive_dir}/packages/${RANGER_HIVE_PACKAGE_NAME}" ]; then
- curl -L -s -o "${hive_dir}/packages/${RANGER_HIVE_PACKAGE_NAME}"
${RANGER_HIVE_DOWNLOAD_URL}
+ bash ${hive_dir}/download-release.sh "v${RANGER_VERSION}"
${RANGER_HIVE_PACKAGE_NAME} "${hive_dir}/packages/${RANGER_HIVE_PACKAGE_NAME}"
+fi
+
+if [[ $? -ne 0 ]]; then
+ echo "Failed to download Ranger Hive plugin package"
+ exit 1
fi
if [ ! -f "${hive_dir}/packages/${HADOOP2_GCS_PACKAGE_NAME}" ]; then
diff --git a/docs/docker-image-details.md b/docs/docker-image-details.md
index a137923a69..6540b87365 100644
--- a/docs/docker-image-details.md
+++ b/docs/docker-image-details.md
@@ -185,6 +185,12 @@ You can use this kind of image to test the catalog of
Apache Hive.
Changelog
+
+- apache/gravitino-ci:hive-0.1.18
+ - Support UTF-8 encoding for the `hive-site.xml` file and Hive Metastore.
+ For more information, please see
[PR](https://github.com/apache/gravitino/pull/6625)
+ - Change ranger-hive-plugin and ranger-hdfs-plugin download URL.
+
- apache/gravitino-ci:hive-0.1.17
- Add support for JDBC SQL standard authorization
- Add JDBC SQL standard authorization related configuration in the
`hive-site-for-sql-base-auth.xml` and `hiveserver2-site-for-sql-base-auth.xml`