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]

Reply via email to