You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dolphinscheduler.apache.org by ga...@apache.org on 2025/03/07 12:13:54 UTC
(dolphinscheduler) branch dev updated: [Fix-17036] Fix kerberos will not refresh in HdfsStorageOperator (#17039)
This is an automated email from the ASF dual-hosted git repository.
gallardot pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler.git
The following commit(s) were added to refs/heads/dev by this push:
new 1c361bbac4 [Fix-17036] Fix kerberos will not refresh in HdfsStorageOperator (#17039)
1c361bbac4 is described below
commit 1c361bbac4643f0510a34f492d6d684949a1b0c2
Author: Wenjun Ruan <we...@apache.org>
AuthorDate: Fri Mar 7 20:13:48 2025 +0800
[Fix-17036] Fix kerberos will not refresh in HdfsStorageOperator (#17039)
---
.../plugin/storage/hdfs/HdfsStorageOperator.java | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/dolphinscheduler-storage-plugin/dolphinscheduler-storage-hdfs/src/main/java/org/apache/dolphinscheduler/plugin/storage/hdfs/HdfsStorageOperator.java b/dolphinscheduler-storage-plugin/dolphinscheduler-storage-hdfs/src/main/java/org/apache/dolphinscheduler/plugin/storage/hdfs/HdfsStorageOperator.java
index 3a1092077b..cf6bb78557 100644
--- a/dolphinscheduler-storage-plugin/dolphinscheduler-storage-hdfs/src/main/java/org/apache/dolphinscheduler/plugin/storage/hdfs/HdfsStorageOperator.java
+++ b/dolphinscheduler-storage-plugin/dolphinscheduler-storage-hdfs/src/main/java/org/apache/dolphinscheduler/plugin/storage/hdfs/HdfsStorageOperator.java
@@ -17,7 +17,10 @@
package org.apache.dolphinscheduler.plugin.storage.hdfs;
+import org.apache.dolphinscheduler.common.thread.ThreadUtils;
import org.apache.dolphinscheduler.common.utils.FileUtils;
+import org.apache.dolphinscheduler.common.utils.PropertyUtils;
+import org.apache.dolphinscheduler.plugin.datasource.api.constants.DataSourceConstants;
import org.apache.dolphinscheduler.plugin.datasource.api.utils.CommonUtils;
import org.apache.dolphinscheduler.plugin.storage.api.AbstractStorageOperator;
import org.apache.dolphinscheduler.plugin.storage.api.ResourceMetadata;
@@ -51,6 +54,7 @@ import java.util.Collections;
import java.util.Date;
import java.util.LinkedList;
import java.util.List;
+import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
import lombok.SneakyThrows;
@@ -102,6 +106,18 @@ public class HdfsStorageOperator extends AbstractStorageOperator implements Clos
if (CommonUtils.getKerberosStartupState()) {
CommonUtils.loadKerberosConf(configuration);
+ final Long kerberosExpireTimeInHour = PropertyUtils.getLong(DataSourceConstants.KERBEROS_EXPIRE_TIME, -1L);
+ if (kerberosExpireTimeInHour > 0) {
+ ThreadUtils.newDaemonScheduledExecutorService("ds-hdfs-kerberos-refresh-%s", 1)
+ .scheduleWithFixedDelay(() -> {
+ try {
+ UserGroupInformation.getLoginUser().checkTGTAndReloginFromKeytab();
+ log.info("checkTGTAndReloginFromKeytab finished");
+ } catch (Exception e) {
+ log.error("checkTGTAndReloginFromKeytab Error", e);
+ }
+ }, kerberosExpireTimeInHour, kerberosExpireTimeInHour, TimeUnit.MINUTES);
+ }
fs = FileSystem.get(configuration);
log.info("Initialize HdfsStorageOperator with kerberos");
return;