This is an automated email from the ASF dual-hosted git repository.
nextdreamblue pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/master by this push:
new f7d00d467a [fix](multicatlog) fix read hive/iceberg catalog on cosn &
fix read data via broker (#22087)
f7d00d467a is described below
commit f7d00d467a33d5e317d6dab318cd135f7bad3d73
Author: Yulei-Yang <[email protected]>
AuthorDate: Thu Aug 10 14:44:53 2023 +0800
[fix](multicatlog) fix read hive/iceberg catalog on cosn & fix read data
via broker (#22087)
* [fix](multicatlog) fix read hive/iceberg catalog on cosn & fix read data
via broker
* Update FileSystemFactory.java
---
.../main/java/org/apache/doris/common/FeConstants.java | 1 +
.../main/java/org/apache/doris/common/util/S3Util.java | 7 ++++---
.../main/java/org/apache/doris/fs/FileSystemFactory.java | 3 ++-
.../apache/doris/planner/external/FileQueryScanNode.java | 16 +++++++++++-----
4 files changed, 18 insertions(+), 9 deletions(-)
diff --git a/fe/fe-core/src/main/java/org/apache/doris/common/FeConstants.java
b/fe/fe-core/src/main/java/org/apache/doris/common/FeConstants.java
index 28241da750..59f3efa32f 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/common/FeConstants.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/common/FeConstants.java
@@ -80,6 +80,7 @@ public class FeConstants {
public static String FS_PREFIX_GCS = "gs";
public static String FS_PREFIX_BOS = "bos";
public static String FS_PREFIX_COS = "cos";
+ public static String FS_PREFIX_COSN = "cosn";
public static String FS_PREFIX_OBS = "obs";
public static String FS_PREFIX_OFS = "ofs";
public static String FS_PREFIX_GFS = "gfs";
diff --git a/fe/fe-core/src/main/java/org/apache/doris/common/util/S3Util.java
b/fe/fe-core/src/main/java/org/apache/doris/common/util/S3Util.java
index fe59dcee33..6d433d5435 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/common/util/S3Util.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/common/util/S3Util.java
@@ -53,9 +53,10 @@ public class S3Util {
public static boolean isObjStorage(String location) {
return isObjStorageUseS3Client(location)
- || location.startsWith(FeConstants.FS_PREFIX_COS)
- || location.startsWith(FeConstants.FS_PREFIX_OSS)
- || location.startsWith(FeConstants.FS_PREFIX_OBS);
+ // if treat cosn(tencent hadoop-cos) as a s3 file system, may
bring incompatible issues
+ || (location.startsWith(FeConstants.FS_PREFIX_COS) &&
!location.startsWith(FeConstants.FS_PREFIX_COSN))
+ || location.startsWith(FeConstants.FS_PREFIX_OSS)
+ || location.startsWith(FeConstants.FS_PREFIX_OBS);
}
private static boolean isObjStorageUseS3Client(String location) {
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/fs/FileSystemFactory.java
b/fe/fe-core/src/main/java/org/apache/doris/fs/FileSystemFactory.java
index 1c6217ff4a..eca8384cfa 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/fs/FileSystemFactory.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/fs/FileSystemFactory.java
@@ -66,7 +66,8 @@ public class FileSystemFactory {
fsType = FileSystemType.S3;
} else if (location.startsWith(FeConstants.FS_PREFIX_HDFS) ||
location.startsWith(FeConstants.FS_PREFIX_GFS)) {
fsType = FileSystemType.DFS;
- } else if (location.startsWith(FeConstants.FS_PREFIX_OFS)) {
+ } else if (location.startsWith(FeConstants.FS_PREFIX_OFS) ||
location.startsWith(FeConstants.FS_PREFIX_COSN)) {
+ // ofs:// and cosn:// use the same underlying file system: Tencent
Cloud HDFS, aka CHDFS)) {
fsType = FileSystemType.OFS;
} else if (location.startsWith(FeConstants.FS_PREFIX_JFS)) {
fsType = FileSystemType.JFS;
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/planner/external/FileQueryScanNode.java
b/fe/fe-core/src/main/java/org/apache/doris/planner/external/FileQueryScanNode.java
index 90f84deb94..586baa58d0 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/planner/external/FileQueryScanNode.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/planner/external/FileQueryScanNode.java
@@ -353,12 +353,16 @@ public abstract class FileQueryScanNode extends
FileScanNode {
params.setHdfsParams(tHdfsParams);
}
- if (locationType == TFileType.FILE_BROKER &&
!params.isSetBrokerAddresses()) {
- FsBroker broker =
Env.getCurrentEnv().getBrokerMgr().getAnyAliveBroker();
- if (broker == null) {
- throw new UserException("No alive broker.");
+ if (locationType == TFileType.FILE_BROKER) {
+ params.setProperties(locationProperties);
+
+ if (!params.isSetBrokerAddresses()) {
+ FsBroker broker =
Env.getCurrentEnv().getBrokerMgr().getAnyAliveBroker();
+ if (broker == null) {
+ throw new UserException("No alive broker.");
+ }
+ params.addToBrokerAddresses(new
TNetworkAddress(broker.host, broker.port));
}
- params.addToBrokerAddresses(new TNetworkAddress(broker.host,
broker.port));
}
} else if (locationType == TFileType.FILE_S3 &&
!params.isSetProperties()) {
params.setProperties(locationProperties);
@@ -450,6 +454,8 @@ public abstract class FileQueryScanNode extends
FileScanNode {
return Optional.of(TFileType.FILE_LOCAL);
} else if (location.startsWith(FeConstants.FS_PREFIX_OFS)) {
return Optional.of(TFileType.FILE_BROKER);
+ } else if (location.startsWith(FeConstants.FS_PREFIX_COSN)) {
+ return Optional.of(TFileType.FILE_BROKER);
} else if (location.startsWith(FeConstants.FS_PREFIX_GFS)) {
return Optional.of(TFileType.FILE_BROKER);
} else if (location.startsWith(FeConstants.FS_PREFIX_JFS)) {
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]