This is an automated email from the ASF dual-hosted git repository.
yiguolei pushed a commit to branch branch-4.0
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-4.0 by this push:
new 51a2e2a1731 branch-4.0: [opt](config) support dynamically change hms
timeout #59051 (#59242)
51a2e2a1731 is described below
commit 51a2e2a1731fe9ce0472eb0d4bcac0050a56323c
Author: github-actions[bot]
<41898282+github-actions[bot]@users.noreply.github.com>
AuthorDate: Tue Dec 23 12:51:40 2025 +0800
branch-4.0: [opt](config) support dynamically change hms timeout #59051
(#59242)
Cherry-picked from #59051
Co-authored-by: camby <[email protected]>
---
.../src/main/java/org/apache/doris/common/Config.java | 2 +-
.../doris/datasource/hive/ThriftHMSCachedClient.java | 5 -----
.../datasource/property/metastore/HMSBaseProperties.java | 8 ++++++--
.../datasource/property/metastore/HMSPropertiesTest.java | 15 +++++++++++++++
4 files changed, 22 insertions(+), 8 deletions(-)
diff --git a/fe/fe-common/src/main/java/org/apache/doris/common/Config.java
b/fe/fe-common/src/main/java/org/apache/doris/common/Config.java
index eb33df5003c..5e59f74fde8 100644
--- a/fe/fe-common/src/main/java/org/apache/doris/common/Config.java
+++ b/fe/fe-common/src/main/java/org/apache/doris/common/Config.java
@@ -2240,7 +2240,7 @@ public class Config extends ConfigBase {
* The default connection timeout for hive metastore.
* hive.metastore.client.socket.timeout
*/
- @ConfField(mutable = true, masterOnly = false)
+ @ConfField(mutable = false, masterOnly = false)
public static long hive_metastore_client_timeout_second = 10;
/**
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/datasource/hive/ThriftHMSCachedClient.java
b/fe/fe-core/src/main/java/org/apache/doris/datasource/hive/ThriftHMSCachedClient.java
index 4cc527a5288..78888dec048 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/datasource/hive/ThriftHMSCachedClient.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/datasource/hive/ThriftHMSCachedClient.java
@@ -37,7 +37,6 @@ import org.apache.hadoop.hive.common.ValidTxnList;
import org.apache.hadoop.hive.common.ValidTxnWriteIdList;
import org.apache.hadoop.hive.common.ValidWriteIdList;
import org.apache.hadoop.hive.conf.HiveConf;
-import org.apache.hadoop.hive.conf.HiveConf.ConfVars;
import org.apache.hadoop.hive.metastore.HiveMetaHookLoader;
import org.apache.hadoop.hive.metastore.HiveMetaStoreClient;
import org.apache.hadoop.hive.metastore.IMetaStoreClient;
@@ -98,10 +97,6 @@ public class ThriftHMSCachedClient implements
HMSCachedClient {
public ThriftHMSCachedClient(HiveConf hiveConf, int poolSize,
ExecutionAuthenticator executionAuthenticator) {
Preconditions.checkArgument(poolSize > 0, poolSize);
- if (hiveConf != null) {
- HiveConf.setVar(hiveConf, ConfVars.METASTORE_CLIENT_SOCKET_TIMEOUT,
-
String.valueOf(Config.hive_metastore_client_timeout_second));
- }
this.hiveConf = hiveConf;
this.poolSize = poolSize;
this.isClosed = false;
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/datasource/property/metastore/HMSBaseProperties.java
b/fe/fe-core/src/main/java/org/apache/doris/datasource/property/metastore/HMSBaseProperties.java
index 9121d2148e6..9056aae6ee7 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/datasource/property/metastore/HMSBaseProperties.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/datasource/property/metastore/HMSBaseProperties.java
@@ -30,6 +30,7 @@ import com.google.common.base.Strings;
import lombok.Getter;
import org.apache.commons.lang3.StringUtils;
import org.apache.hadoop.hive.conf.HiveConf;
+import org.apache.hadoop.hive.conf.HiveConf.ConfVars;
import java.util.HashMap;
import java.util.Map;
@@ -198,8 +199,11 @@ public class HMSBaseProperties {
if (StringUtils.isNotBlank(hmsUserName)) {
hiveConf.set(AuthenticationConfig.HADOOP_USER_NAME, hmsUserName);
}
- HiveConf.setVar(hiveConf,
HiveConf.ConfVars.METASTORE_CLIENT_SOCKET_TIMEOUT,
- String.valueOf(Config.hive_metastore_client_timeout_second));
+ if
(!userOverriddenHiveConfig.containsKey(ConfVars.METASTORE_CLIENT_SOCKET_TIMEOUT.toString()))
{
+ // use Config.hive_metastore_client_timeout_second as default
timeout
+ HiveConf.setVar(hiveConf,
HiveConf.ConfVars.METASTORE_CLIENT_SOCKET_TIMEOUT,
+
String.valueOf(Config.hive_metastore_client_timeout_second));
+ }
initHadoopAuthenticator();
}
diff --git
a/fe/fe-core/src/test/java/org/apache/doris/datasource/property/metastore/HMSPropertiesTest.java
b/fe/fe-core/src/test/java/org/apache/doris/datasource/property/metastore/HMSPropertiesTest.java
index 88ca5fa7c95..6d240f65729 100644
---
a/fe/fe-core/src/test/java/org/apache/doris/datasource/property/metastore/HMSPropertiesTest.java
+++
b/fe/fe-core/src/test/java/org/apache/doris/datasource/property/metastore/HMSPropertiesTest.java
@@ -134,4 +134,19 @@ public class HMSPropertiesTest {
HiveHMSProperties hmsProperties = getHMSProperties(params);
Assertions.assertNotNull(hmsProperties);
}
+
+ @Test
+ public void testHmsTimeoutParams() throws UserException {
+ Map<String, String> params = createBaseParams();
+ // case1: normal case, use Config.hive_metastore_client_timeout_second
as default
+ HiveHMSProperties hmsProperties = getHMSProperties(params);
+ HiveConf hiveConf = hmsProperties.getHiveConf();
+
Assertions.assertEquals(String.valueOf(Config.hive_metastore_client_timeout_second),
+ hiveConf.get("hive.metastore.client.socket.timeout", null));
+
+ params.put("hive.metastore.client.socket.timeout", "123");
+ hmsProperties = getHMSProperties(params);
+ hiveConf = hmsProperties.getHiveConf();
+ Assertions.assertEquals("123",
hiveConf.get("hive.metastore.client.socket.timeout", null));
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]