This is an automated email from the ASF dual-hosted git repository.
zhangbutao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hive.git
The following commit(s) were added to refs/heads/master by this push:
new 4ada92871a0 HIVE-28983: Log HS2 and HMS PID and update hive-env.sh
template (#5884)
4ada92871a0 is described below
commit 4ada92871a09f4d14f349105eb9e166ae0c7c0e7
Author: Raghav Aggarwal <[email protected]>
AuthorDate: Mon Jul 7 20:14:10 2025 +0530
HIVE-28983: Log HS2 and HMS PID and update hive-env.sh template (#5884)
---
conf/hive-env.sh.template | 57 ++++++++++++++--------
.../apache/hive/service/server/HiveServer2.java | 2 +-
.../hadoop/hive/metastore/HiveMetaStore.java | 6 ++-
3 files changed, 43 insertions(+), 22 deletions(-)
diff --git a/conf/hive-env.sh.template b/conf/hive-env.sh.template
index 72e78d52bdd..c2d86e65893 100644
--- a/conf/hive-env.sh.template
+++ b/conf/hive-env.sh.template
@@ -1,3 +1,5 @@
+#!/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
@@ -18,20 +20,31 @@
# to control the execution of Hive. It should be used by admins to configure
# the Hive installation (so that users do not have to set environment variables
# or set command line parameters to get correct behavior).
-#
-# The hive service being invoked (CLI etc.) is available via the environment
-# variable SERVICE
+# Set HADOOP_HOME to point to a specific hadoop install directory
+# HADOOP_HOME=${bin}/../../hadoop
+
+# Hive Configuration Directory can be controlled by:
+# export HIVE_CONF_DIR=
+
+# Folder containing extra libraries required for hive compilation/execution
can be controlled by:
+# export HIVE_AUX_JARS_PATH=
+
+# HIVE Log Directory can be controlled by the following and ensure it exists
on the filesystem:
+# export HIVE_LOG_DIR=
+
+# The hive service being invoked (beeline etc.) is available via the
environment
+# variable SERVICE
# Hive Client memory usage can be an issue if a large number of clients
-# are running at the same time. The flags below have been useful in
+# are running at the same time. The flags below have been useful in
# reducing memory usage:
-#
-# if [ "$SERVICE" = "cli" ]; then
+
+# if [ "$SERVICE" = "beeline" ]; then
# if [ -z "$DEBUG" ]; then
-# export HADOOP_OPTS="$HADOOP_OPTS -XX:NewRatio=12 -Xms10m
-XX:MaxHeapFreeRatio=40 -XX:MinHeapFreeRatio=15 -XX:+UseParNewGC
-XX:-UseGCOverheadLimit"
+# export HADOOP_CLIENT_OPTS="$HADOOP_CLIENT_OPTS -Xms10m
-XX:MaxHeapFreeRatio=40 -XX:MinHeapFreeRatio=15 -XX:+UseG1GC
-XX:-UseGCOverheadLimit"
# else
-# export HADOOP_OPTS="$HADOOP_OPTS -XX:NewRatio=12 -Xms10m
-XX:MaxHeapFreeRatio=40 -XX:MinHeapFreeRatio=15 -XX:-UseGCOverheadLimit"
+# export HADOOP_CLIENT_OPTS="$HADOOP_CLIENT_OPTS -Xms10m
-XX:MaxHeapFreeRatio=40 -XX:MinHeapFreeRatio=15 -XX:-UseGCOverheadLimit"
# fi
# fi
@@ -39,16 +52,22 @@
#
# export HADOOP_HEAPSIZE=1024
#
-# Larger heap size may be required when running queries over large number of
files or partitions.
-# By default hive shell scripts use a heap size of 256 (MB). Larger heap size
would also be
+# Larger heap size may be required when running queries over large number of
files or partitions.
+# By default hive shell scripts use a heap size of 256 (MB). Larger heap size
would also be
# appropriate for hive server.
-
-# Set HADOOP_HOME to point to a specific hadoop install directory
-# HADOOP_HOME=${bin}/../../hadoop
-
-# Hive Configuration Directory can be controlled by:
-# export HIVE_CONF_DIR=
-
-# Folder containing extra libraries required for hive compilation/execution
can be controlled by:
-# export HIVE_AUX_JARS_PATH=
+# if [ "$SERVICE" = "metastore" ]; then
+# export HADOOP_HEAPSIZE=1024
+# export HADOOP_CLIENT_OPTS="$HADOOP_CLIENT_OPTS
-Dhive.log.dir=$HIVE_LOG_DIR -Dhive.log.file=hive$SERVICE.log \
+# -Dlog4j.configurationFile=$HIVE_CONF_DIR/hive-log4j2.properties
-XX:+UseG1GC \
+# -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=$HIVE_LOG_DIR \
+#
-Xlog:gc*=info:file=$HIVE_LOG_DIR/gc-${SERVICE}-%p-%t.log:time,uptime,level,tags:filecount=5,filesize=16M"
+# fi
+#
+# if [ "$SERVICE" = "hiveserver2" ]; then
+# export HADOOP_HEAPSIZE=1024
+# export HADOOP_CLIENT_OPTS="$HADOOP_CLIENT_OPTS
-Dhive.log.dir=$HIVE_LOG_DIR \
+# -Dhive.log.file=$SERVICE.log
-Dlog4j.configurationFile=$HIVE_CONF_DIR/hive-log4j2.properties \
+# -XX:+UseG1GC -XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=$HIVE_LOG_DIR \
+#
-Xlog:gc*=info:file=$HIVE_LOG_DIR/gc-${SERVICE}-%p-%t.log:time,uptime,level,tags:filecount=5,filesize=16M"
+# fi
diff --git a/service/src/java/org/apache/hive/service/server/HiveServer2.java
b/service/src/java/org/apache/hive/service/server/HiveServer2.java
index db4fda9ee07..990beadc88f 100644
--- a/service/src/java/org/apache/hive/service/server/HiveServer2.java
+++ b/service/src/java/org/apache/hive/service/server/HiveServer2.java
@@ -1207,7 +1207,7 @@ public void startPrivilegeSynchronizer(HiveConf hiveConf)
throws Exception {
private static void startHiveServer2() throws Throwable {
long attempts = 0, maxAttempts = 1;
while (true) {
- LOG.info("Starting HiveServer2");
+ LOG.info("Starting HiveServer2. PID is: {}",
ProcessHandle.current().pid());
HiveConf hiveConf = new HiveConf();
maxAttempts =
hiveConf.getLongVar(HiveConf.ConfVars.HIVE_SERVER2_MAX_START_ATTEMPTS);
long retrySleepIntervalMs = hiveConf
diff --git
a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/HiveMetaStore.java
b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/HiveMetaStore.java
index 5c51a84f378..23cc6e8420c 100644
---
a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/HiveMetaStore.java
+++
b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/HiveMetaStore.java
@@ -252,9 +252,11 @@ public static void main(String[] args) throws Throwable {
startupShutdownMessage(HiveMetaStore.class, args, LOG);
try {
- String msg = "Starting hive metastore on port " + cli.getPort();
+ String msg =
+ "Starting hive metastore on port %d. PID is %d"
+ .formatted(cli.getPort(), ProcessHandle.current().pid());
LOG.info(msg);
- if (cli.isVerbose()) {
+ if (isCliVerbose) {
System.err.println(msg);
}