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

yiguolei pushed a commit to branch branch-2.1
in repository https://gitbox.apache.org/repos/asf/doris.git

commit 2ae02efd46af993e1fa324de274fd10680a4866d
Author: GoGoWen <82132356+gogo...@users.noreply.github.com>
AuthorDate: Thu Jan 25 23:46:04 2024 +0800

    [BugFix](MutilCatalog) fix local file system unavailable in iceberg hadoop 
catalog (#26769)
    
    create catalog in local test/dev env like below:
    create catalog iceberg PROPERTIES ('type'='iceberg','iceberg.catalog.type' 
= 'hadoop', 'warehouse' = '/export/workspace/warehouse');
    
    we will get error: "Unrecognized 'warehouse' location format because name 
service is required."
---
 .../datasource/iceberg/IcebergHadoopExternalCatalog.java  | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)

diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/datasource/iceberg/IcebergHadoopExternalCatalog.java
 
b/fe/fe-core/src/main/java/org/apache/doris/datasource/iceberg/IcebergHadoopExternalCatalog.java
index 06d1a4caaa2..b60360e9022 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/datasource/iceberg/IcebergHadoopExternalCatalog.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/datasource/iceberg/IcebergHadoopExternalCatalog.java
@@ -38,13 +38,16 @@ public class IcebergHadoopExternalCatalog extends 
IcebergExternalCatalog {
         String warehouse = props.get(CatalogProperties.WAREHOUSE_LOCATION);
         Preconditions.checkArgument(StringUtils.isNotEmpty(warehouse),
                 "Cannot initialize Iceberg HadoopCatalog because 'warehouse' 
must not be null or empty");
-        String nameService = StringUtils.substringBetween(warehouse, 
HdfsResource.HDFS_FILE_PREFIX, "/");
-        if (StringUtils.isEmpty(nameService)) {
-            throw new IllegalArgumentException("Unrecognized 'warehouse' 
location format"
-                    + " because name service is required.");
-        }
+
         catalogProperty = new CatalogProperty(resource, props);
-        catalogProperty.addProperty(HdfsResource.HADOOP_FS_NAME, 
HdfsResource.HDFS_FILE_PREFIX + nameService);
+        if (StringUtils.startsWith(warehouse, HdfsResource.HDFS_PREFIX)) {
+            String nameService = StringUtils.substringBetween(warehouse, 
HdfsResource.HDFS_FILE_PREFIX, "/");
+            if (StringUtils.isEmpty(nameService)) {
+                throw new IllegalArgumentException("Unrecognized 'warehouse' 
location format"
+                        + " because name service is required.");
+            }
+            catalogProperty.addProperty(HdfsResource.HADOOP_FS_NAME, 
HdfsResource.HDFS_FILE_PREFIX + nameService);
+        }
     }
 
     @Override


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to