diff --git a/dev/docker/hive/Dockerfile b/dev/docker/hive/Dockerfile
index 92a14092912..eb4def10560 100644
--- a/dev/docker/hive/Dockerfile
+++ b/dev/docker/hive/Dockerfile
@@ -155,7 +155,11 @@ RUN rm -rf /tmp/packages
################################################################################
# expose port
+<<<<<<< Updated upstream
EXPOSE 22 3306 8088 9000 9083 10000 10002 50070 50075
+=======
+EXPOSE 22 8088 9000 9083 10000 10002 50070 50075 50010
+>>>>>>> Stashed changes
################################################################################
# create startup script and set ENTRYPOINT
diff --git a/dev/docker/hive/README.md b/dev/docker/hive/README.md
index fc46023eb01..3157b5670bd 100644
--- a/dev/docker/hive/README.md
+++ b/dev/docker/hive/README.md
@@ -13,7 +13,7 @@ It includes Hadoop-2.x and Hive-2.x, you can use this Docker image to test the G
## Run container
```
-docker run --rm -d -p 8022:22 -p 8088:8088 -p 9000:9000 -p 9083:9083 -p 10000:10000 -p 10002:10002 -p 50070:50070 -p 50075:50075 datastrato/graviton-ci-hive
+docker run --rm -d -p 8022:22 -p 8088:8088 -p 9000:9000 -p 9083:9083 -p 10000:10000 -p 10002:10002 -p 50070:50070 -p 50075:50075 -p 50010:50010 datastrato/graviton-ci-hive
```
## Login Docker container
@@ -33,7 +33,8 @@ ssh -p 8022 datastrato@localhost (password: ds123, this is a sudo user)
- `22` SSH
- `9000` HDFS defaultFS
- `50070` HDFS NameNode
- - `50075` HDFS DataNode
+ - `50075` HDFS DataNode http server
+ - `50010` HDFS DataNode data transfer
- `8088` YARN Service
- `9083` Hive Metastore
- `10000` HiveServer2
diff --git a/dev/docker/hive/build-docker.sh b/dev/docker/hive/build-docker.sh
index 38577d329fc..b466004938e 100755
--- a/dev/docker/hive/build-docker.sh
+++ b/dev/docker/hive/build-docker.sh
@@ -83,8 +83,12 @@ if [[ "${platform_type}" == "all" ]]; then
if [[ "${tag_name}" == "" ]]; then
docker buildx build --platform=linux/amd64,linux/arm64 --build-arg HADOOP_PACKAGE_NAME=${HADOOP_PACKAGE_NAME} --build-arg HIVE_PACKAGE_NAME=${HIVE_PACKAGE_NAME} --push --progress plain -f Dockerfile -t ${image_name} .
else
- docker buildx build --platform=linux/amd64,linux/arm64 --build-arg HADOOP_PACKAGE_NAME=${HADOOP_PACKAGE_NAME} --build-arg HIVE_PACKAGE_NAME=${HIVE_PACKAGE_NAME} --push --tag ${tag_name} --progress plain -f Dockerfile -t ${image_name} .
+ docker buildx build --platform=linux/amd64,linux/arm64 --build-arg HADOOP_PACKAGE_NAME=${HADOOP_PACKAGE_NAME} --build-arg HIVE_PACKAGE_NAME=${HIVE_PACKAGE_NAME} --push --progress plain -f Dockerfile -t ${image_name}:${tag_name} .
fi
else
- docker buildx build --platform=${platform_type} --build-arg HADOOP_PACKAGE_NAME=${HADOOP_PACKAGE_NAME} --build-arg HIVE_PACKAGE_NAME=${HIVE_PACKAGE_NAME} --output type=docker --progress plain -f Dockerfile -t ${image_name} .
+ if [[ "${tag_name}" == "" ]]; then
+ docker buildx build --platform=${platform_type} --build-arg HADOOP_PACKAGE_NAME=${HADOOP_PACKAGE_NAME} --build-arg HIVE_PACKAGE_NAME=${HIVE_PACKAGE_NAME} --output type=docker --progress plain -f Dockerfile -t ${image_name} .
+ else
+ docker buildx build --platform=${platform_type} --build-arg HADOOP_PACKAGE_NAME=${HADOOP_PACKAGE_NAME} --build-arg HIVE_PACKAGE_NAME=${HIVE_PACKAGE_NAME} --output type=docker --progress plain -f Dockerfile -t ${image_name}:${tag_name} .
+ fi
fi
\ No newline at end of file
diff --git a/dev/docker/hive/hdfs-site.xml b/dev/docker/hive/hdfs-site.xml
index 34c603fd0e6..0fcae90b05d 100644
--- a/dev/docker/hive/hdfs-site.xml
+++ b/dev/docker/hive/hdfs-site.xml
@@ -8,4 +8,9 @@
dfs.webhdfs.enabled
true
+
+
+ dfs.datanode.address
+ 0.0.0.0:50010
+
diff --git a/dev/docker/hive/start.sh b/dev/docker/hive/start.sh
index 8f9357c478a..a73d906b19f 100644
--- a/dev/docker/hive/start.sh
+++ b/dev/docker/hive/start.sh
@@ -9,6 +9,12 @@ service ssh start
ssh-keyscan localhost > /root/.ssh/known_hosts
ssh-keyscan 0.0.0.0 >> /root/.ssh/known_hosts
+# Map the hostname to 127.0.0.1 for external access datanode
+hostname=$(cat /etc/hostname)
+new_content=$(cat /etc/hosts | sed "/$hostname/s/^/# /")
+new_content="${new_content}\n127.0.0.1 ${hostname}"
+echo -e "$new_content" > /etc/hosts
+
# start hadoop
${HADOOP_HOME}/sbin/start-all.sh