This is an automated email from the ASF dual-hosted git repository.
dkuzmenko 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 01cc7ca6723 HIVE-29078: RuntimeException: Null when starting
standalone HMS (#5956)
01cc7ca6723 is described below
commit 01cc7ca672320447b20bc9883e2598d9fb34fc10
Author: dengzh <[email protected]>
AuthorDate: Sat Jul 12 02:18:24 2025 +0800
HIVE-29078: RuntimeException: Null when starting standalone HMS (#5956)
---
.../java/org/apache/hadoop/hive/conf/HiveConf.java | 34 ++++++++++++++++------
.../{hivemetastore-site.xml => metastore-site.xml} | 0
.../{hivemetastore-site.xml => metastore-site.xml} | 6 ++--
.../{hivemetastore-site.xml => metastore-site.xml} | 4 +--
.../hive/metastore/TestServerSpecificConfig.java | 8 ++---
.../org/apache/hive/jdbc/TestRestrictedList.java | 6 ++--
.../apache/hive/testutils/HiveTestEnvSetup.java | 2 +-
.../hadoop/hive/metastore/HiveMetaStore.java | 1 +
.../hive/metastore/PersistenceManagerProvider.java | 1 -
.../hive/metastore/conf/TestMetastoreConf.java | 4 +--
10 files changed, 41 insertions(+), 25 deletions(-)
diff --git a/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
b/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
index 71ae2b0222d..b99302893fc 100644
--- a/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
+++ b/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
@@ -92,7 +92,8 @@ public class HiveConf extends Configuration {
private static boolean loadHiveServer2Config = false;
private static URL hiveDefaultURL = null;
private static URL hiveSiteURL = null;
- private static URL hivemetastoreSiteUrl = null;
+ private static URL hiveMetastoreSiteUrl = null;
+ private static URL metastoreSiteUrl = null;
private static URL hiveServer2SiteUrl = null;
private static byte[] confVarByteArray = null;
@@ -198,8 +199,9 @@ public static class EncoderDecoderFactory {
// Look for hive-site.xml on the CLASSPATH and log its location if found.
hiveSiteURL = findConfigFile(classLoader, "hive-site.xml", true);
- hivemetastoreSiteUrl = findConfigFile(classLoader,
"hivemetastore-site.xml", false);
- hiveServer2SiteUrl = findConfigFile(classLoader, "hiveserver2-site.xml",
false);
+ hiveMetastoreSiteUrl = findConfigFile(classLoader,
"hivemetastore-site.xml", true);
+ hiveServer2SiteUrl = findConfigFile(classLoader, "hiveserver2-site.xml",
true);
+ metastoreSiteUrl = findConfigFile(classLoader, "metastore-site.xml", true);
for (ConfVars confVar : ConfVars.values()) {
vars.put(confVar.varname, confVar);
@@ -6617,15 +6619,20 @@ private void initialize(Class<?> cls) {
setLoadMetastoreConfig(true);
}
- // load hivemetastore-site.xml if this is metastore and file exists
- if (isLoadMetastoreConfig() && hivemetastoreSiteUrl != null) {
- addResource(hivemetastoreSiteUrl);
+ // load the legacy hivemetastore-site.xml and metastore-site.xml if this
is metastore and file exists
+ if (isLoadMetastoreConfig()) {
+ if (hiveMetastoreSiteUrl != null) {
+ addResource(hiveMetastoreSiteUrl);
+ }
+ if (metastoreSiteUrl != null) {
+ addResource(metastoreSiteUrl);
+ }
}
// load hiveserver2-site.xml if this is hiveserver2 and file exists
// metastore can be embedded within hiveserver2, in such cases
// the conf params in hiveserver2-site.xml will override whats defined
- // in hivemetastore-site.xml
+ // in hivemetastore-site.xml/metastore-site.xml
if (isLoadHiveServer2Config()) {
// set the hardcoded value first, so anything in hiveserver2-site.xml
can override it
set(ConfVars.METASTORE_CLIENT_CAPABILITIES.varname,
"EXTWRITE,EXTREAD,HIVEBUCKET2,HIVEFULLACIDREAD,"
@@ -7025,16 +7032,25 @@ public static void setHiveSiteLocation(URL location) {
hiveSiteURL = location;
}
+ /**
+ * @deprecated use setMetastoreSiteLocation(URL location)
+ * @param location the Metastore property source
+ */
+ @Deprecated
public static void setHivemetastoreSiteUrl(URL location) {
- hivemetastoreSiteUrl = location;
+ setMetastoreSiteLocation(location);
}
public static URL getHiveSiteLocation() {
return hiveSiteURL;
}
+ public static void setMetastoreSiteLocation(URL location) {
+ metastoreSiteUrl = location;
+ }
+
public static URL getMetastoreSiteLocation() {
- return hivemetastoreSiteUrl;
+ return metastoreSiteUrl;
}
public static URL getHiveServer2SiteLocation() {
diff --git a/data/conf/llap/hivemetastore-site.xml
b/data/conf/llap/metastore-site.xml
similarity index 100%
rename from data/conf/llap/hivemetastore-site.xml
rename to data/conf/llap/metastore-site.xml
diff --git a/data/conf/hivemetastore-site.xml b/data/conf/metastore-site.xml
similarity index 92%
rename from data/conf/hivemetastore-site.xml
rename to data/conf/metastore-site.xml
index e64fddf264f..d314d299bf0 100644
--- a/data/conf/hivemetastore-site.xml
+++ b/data/conf/metastore-site.xml
@@ -22,19 +22,19 @@
<property>
<name>hive.dummyparam.test.server.specific.config.override</name>
- <value>from.hivemetastore-site.xml</value>
+ <value>from.metastore-site.xml</value>
<description>Using dummy param to test server specific
configuration</description>
</property>
<property>
<name>hive.dummyparam.test.server.specific.config.metastoresite</name>
- <value>from.hivemetastore-site.xml</value>
+ <value>from.metastore-site.xml</value>
<description>Using dummy param to test server specific
configuration</description>
</property>
<property>
<name>hive.conf.restricted.list</name>
- <value>from.hivemetastore-site.xml</value>
+ <value>from.metastore-site.xml</value>
<description>Using property defined in HiveConf.ConfVars to test System
property overriding</description>
</property>
diff --git a/data/conf/rlist/hivemetastore-site.xml
b/data/conf/rlist/metastore-site.xml
similarity index 93%
rename from data/conf/rlist/hivemetastore-site.xml
rename to data/conf/rlist/metastore-site.xml
index 8fdddff1a17..fb9887e4192 100644
--- a/data/conf/rlist/hivemetastore-site.xml
+++ b/data/conf/rlist/metastore-site.xml
@@ -22,13 +22,13 @@
<property>
<name>hive.dummyparam.test.server.specific.config.override</name>
- <value>from.hivemetastore-site.xml</value>
+ <value>from.metastore-site.xml</value>
<description>Using dummy param to test server specific
configuration</description>
</property>
<property>
<name>hive.dummyparam.test.server.specific.config.metastoresite</name>
- <value>from.hivemetastore-site.xml</value>
+ <value>from.metastore-site.xml</value>
<description>Using dummy param to test server specific
configuration</description>
</property>
diff --git
a/itests/hive-unit/src/test/java/org/apache/hadoop/hive/metastore/TestServerSpecificConfig.java
b/itests/hive-unit/src/test/java/org/apache/hadoop/hive/metastore/TestServerSpecificConfig.java
index e2fbf045027..5690e7322b7 100644
---
a/itests/hive-unit/src/test/java/org/apache/hadoop/hive/metastore/TestServerSpecificConfig.java
+++
b/itests/hive-unit/src/test/java/org/apache/hadoop/hive/metastore/TestServerSpecificConfig.java
@@ -56,10 +56,10 @@ public void testServerConfigsEmbeddedMetastore() throws
IOException, Throwable {
// check config properties expected with embedded metastore client
assertTrue(HiveConf.isLoadMetastoreConfig());
- assertEquals("from.hivemetastore-site.xml",
+ assertEquals("from.metastore-site.xml",
conf.get("hive.dummyparam.test.server.specific.config.override"));
- assertEquals("from.hivemetastore-site.xml",
+ assertEquals("from.metastore-site.xml",
conf.get("hive.dummyparam.test.server.specific.config.metastoresite"));
assertEquals("from.hive-site.xml",
@@ -74,7 +74,7 @@ public void testServerConfigsEmbeddedMetastore() throws
IOException, Throwable {
conf = new HiveConf();
verifyHS2ConfParams(conf);
- assertEquals("from.hivemetastore-site.xml",
+ assertEquals("from.metastore-site.xml",
conf.get("hive.dummyparam.test.server.specific.config.metastoresite"));
}
@@ -131,7 +131,7 @@ public void resetDefaults() throws SecurityException,
IllegalArgumentException,
}
/**
- * Test to ensure that HiveConf does not try to load hivemetastore-site.xml,
+ * Test to ensure that HiveConf does not try to load metastore-site.xml,
* when remote metastore is used.
*
* @throws IOException
diff --git
a/itests/hive-unit/src/test/java/org/apache/hive/jdbc/TestRestrictedList.java
b/itests/hive-unit/src/test/java/org/apache/hive/jdbc/TestRestrictedList.java
index b4b80d6f8cf..0eca3a4f3c0 100644
---
a/itests/hive-unit/src/test/java/org/apache/hive/jdbc/TestRestrictedList.java
+++
b/itests/hive-unit/src/test/java/org/apache/hive/jdbc/TestRestrictedList.java
@@ -54,8 +54,8 @@ public static void startServices() throws Exception {
HiveConf.setHiveSiteLocation(
new URL("file://" + new File(confDir).toURI().getPath() +
"/hive-site.xml"));
System.out.println("Setting hive-site: " + HiveConf.getHiveSiteLocation());
- HiveConf.setHivemetastoreSiteUrl(
- new URL("file://" + new File(confDir).toURI().getPath() +
"/hivemetastore-site.xml"));
+ HiveConf.setMetastoreSiteLocation(
+ new URL("file://" + new File(confDir).toURI().getPath() +
"/metastore-site.xml"));
System.out.println("Setting hive-site: " + HiveConf.getHiveSiteLocation());
hiveConf = new HiveConf();
@@ -121,7 +121,7 @@ public static void stopServices() throws Exception {
if (miniHS2 != null && miniHS2.isStarted()) {
miniHS2.stop();
}
- HiveConf.setHivemetastoreSiteUrl(oldHiveMetastoreSiteURL);
+ HiveConf.setMetastoreSiteLocation(oldHiveMetastoreSiteURL);
HiveConf.setHiveSiteLocation(oldHiveSiteURL);
}
diff --git a/ql/src/test/org/apache/hive/testutils/HiveTestEnvSetup.java
b/ql/src/test/org/apache/hive/testutils/HiveTestEnvSetup.java
index 8c5a92416af..1db11599fe0 100644
--- a/ql/src/test/org/apache/hive/testutils/HiveTestEnvSetup.java
+++ b/ql/src/test/org/apache/hive/testutils/HiveTestEnvSetup.java
@@ -150,7 +150,7 @@ public void beforeClass(HiveTestEnvContext ctx) throws
Exception {
FileUtils.copyDirectory(new File(DATA_DIR + "/conf/tez"), confFolder);
HiveConf.setHiveSiteLocation(new File(confFolder,
"hive-site.xml").toURI().toURL());
- HiveConf.setHivemetastoreSiteUrl(new File(confFolder,
"hivemetastore-site.xml").toURI().toURL());
+ HiveConf.setMetastoreSiteLocation(new File(confFolder,
"metastore-site.xml").toURI().toURL());
// FIXME: hiveServer2SiteUrl is not settable?
ctx.hiveConf = new HiveConf(IDriver.class);
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 23cc6e8420c..35b76e1e967 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
@@ -267,6 +267,7 @@ public static void main(String[] args) throws Throwable {
//for metastore process, all metastore call should be embedded metastore
call.
conf.set(ConfVars.THRIFT_URIS.getHiveName(), "");
+ conf.set(ConfVars.THRIFT_URIS.getVarname(), "");
// Add shutdown hook.
shutdownHookMgr.addShutdownHook(() -> {
diff --git
a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/PersistenceManagerProvider.java
b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/PersistenceManagerProvider.java
index daaed16d947..bf99745cc7d 100644
---
a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/PersistenceManagerProvider.java
+++
b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/PersistenceManagerProvider.java
@@ -653,7 +653,6 @@ private static <T> T retry(Supplier<T> s) {
LOG.warn("Exception retry limit reached, not retrying any
longer.", e);
} else {
LOG.debug("Non-retriable exception.", e);
- break;
}
ex = e;
}
diff --git
a/standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/conf/TestMetastoreConf.java
b/standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/conf/TestMetastoreConf.java
index 1bed2c00de5..24af86f4061 100644
---
a/standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/conf/TestMetastoreConf.java
+++
b/standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/conf/TestMetastoreConf.java
@@ -219,7 +219,7 @@ public void readHiveSiteWithHiveHomeDir() throws
IOException {
@Test
public void readHiveMetastoreSiteWithHiveConfDir() throws IOException {
- createConfFile("hivemetastore-site.xml", false, "HIVE_CONF_DIR", instaMap(
+ createConfFile("metastore-site.xml", false, "HIVE_CONF_DIR", instaMap(
"test.double", "1.8"
));
conf = MetastoreConf.newMetastoreConf();
@@ -229,7 +229,7 @@ public void readHiveMetastoreSiteWithHiveConfDir() throws
IOException {
@Test
public void readHiveMetastoreSiteWithHiveHomeDir() throws IOException {
- createConfFile("hivemetastore-site.xml", true, "HIVE_HOME", instaMap(
+ createConfFile("metastore-site.xml", true, "HIVE_HOME", instaMap(
"test.bool", "false"
));
conf = MetastoreConf.newMetastoreConf();