This is an automated email from the ASF dual-hosted git repository.

forwardxu pushed a commit to branch release-0.12.1
in repository https://gitbox.apache.org/repos/asf/hudi.git

commit f7fe437faf8f0d7ec358076973aec49a0d9e29ff
Author: superche <super...@tencent.com>
AuthorDate: Wed Nov 23 16:43:27 2022 +0800

    Fix tauth issue (merge request !102)
    
    Squash merge branch 'fix_tauth_issue' into 'release-0.12.1'
    <img width="" src="/uploads/96CCBC0A860C477FBA33C4AAE4965D3B/图片" alt="图片" />
    
    原因:`UserGroupInformation`在`presto work`节点中的用户信息改变为默认的`root`,导致Tauth认证失败;
    
    
解决:在获取`fileSystem`之前,都进行`UserGroupInformation.setConfiguration(hadoopConf.get());`
---
 hudi-common/src/main/java/org/apache/hudi/common/fs/FSUtils.java        | 2 ++
 .../java/org/apache/hudi/metadata/FileSystemBackedTableMetadata.java    | 2 ++
 2 files changed, 4 insertions(+)

diff --git a/hudi-common/src/main/java/org/apache/hudi/common/fs/FSUtils.java 
b/hudi-common/src/main/java/org/apache/hudi/common/fs/FSUtils.java
index 1350108a11..15a729a812 100644
--- a/hudi-common/src/main/java/org/apache/hudi/common/fs/FSUtils.java
+++ b/hudi-common/src/main/java/org/apache/hudi/common/fs/FSUtils.java
@@ -18,6 +18,7 @@
 
 package org.apache.hudi.common.fs;
 
+import org.apache.hadoop.security.UserGroupInformation;
 import org.apache.hudi.common.config.HoodieMetadataConfig;
 import org.apache.hudi.common.config.SerializableConfiguration;
 import org.apache.hudi.common.engine.HoodieEngineContext;
@@ -107,6 +108,7 @@ public class FSUtils {
     FileSystem fs;
     prepareHadoopConf(conf);
     try {
+      UserGroupInformation.setConfiguration(conf);
       fs = path.getFileSystem(conf);
     } catch (IOException e) {
       throw new HoodieIOException("Failed to get instance of " + 
FileSystem.class.getName(), e);
diff --git 
a/hudi-common/src/main/java/org/apache/hudi/metadata/FileSystemBackedTableMetadata.java
 
b/hudi-common/src/main/java/org/apache/hudi/metadata/FileSystemBackedTableMetadata.java
index bcfd891711..db1eeaed7e 100644
--- 
a/hudi-common/src/main/java/org/apache/hudi/metadata/FileSystemBackedTableMetadata.java
+++ 
b/hudi-common/src/main/java/org/apache/hudi/metadata/FileSystemBackedTableMetadata.java
@@ -18,6 +18,7 @@
 
 package org.apache.hudi.metadata;
 
+import org.apache.hadoop.security.UserGroupInformation;
 import org.apache.hudi.avro.model.HoodieMetadataColumnStats;
 import org.apache.hudi.common.bloom.BloomFilter;
 import org.apache.hudi.common.config.SerializableConfiguration;
@@ -96,6 +97,7 @@ public class FileSystemBackedTableMetadata implements 
HoodieTableMetadata {
         // result below holds a list of pair. first entry in the pair 
optionally holds the deduced list of partitions.
         // and second entry holds optionally a directory path to be processed 
further.
         List<Pair<Option<String>, Option<Path>>> result = 
engineContext.map(dirToFileListing, fileStatus -> {
+          UserGroupInformation.setConfiguration(hadoopConf.get());
           FileSystem fileSystem = 
fileStatus.getPath().getFileSystem(hadoopConf.get());
           if (fileStatus.isDirectory()) {
             if (HoodiePartitionMetadata.hasPartitionMetadata(fileSystem, 
fileStatus.getPath())) {

Reply via email to