Skip to content

Commit e52c4c0

Browse files
committed
add fileSystem catalog for paimon,issue: datavane/tis#490
1 parent 0a1d2db commit e52c4c0

10 files changed

Lines changed: 787 additions & 8 deletions

File tree

tis-aliyun-fs-plugin/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
<relativePath>../pom.xml</relativePath>
2828
</parent>
2929

30-
<groupId>com.qlangtech.tis.plugins</groupId>
30+
3131
<artifactId>tis-aliyun-fs-plugin</artifactId>
3232
<packaging>tpi</packaging>
3333

tis-datax/tis-datax-hdfs-plugin/pom.xml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,11 @@
4040

4141

4242
<dependencies>
43-
43+
<dependency>
44+
<groupId>org.apache.hadoop</groupId>
45+
<artifactId>hadoop-aws</artifactId>
46+
<version>${hadoop-version}</version>
47+
</dependency>
4448
<dependency>
4549
<groupId>log4j</groupId>
4650
<artifactId>log4j</artifactId>

tis-datax/tis-datax-hdfs-plugin/src/main/java/com/qlangtech/tis/hdfs/impl/HdfsFileSystemFactory.java

Lines changed: 24 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,11 @@
2121
import com.qlangtech.tis.annotation.Public;
2222
import com.qlangtech.tis.config.ParamsConfig;
2323
import com.qlangtech.tis.config.Utils;
24-
import com.qlangtech.tis.config.authtoken.*;
24+
import com.qlangtech.tis.config.authtoken.IKerberosUserToken;
25+
import com.qlangtech.tis.config.authtoken.IOffUserToken;
26+
import com.qlangtech.tis.config.authtoken.IUserNamePasswordUserToken;
27+
import com.qlangtech.tis.config.authtoken.IUserTokenVisitor;
28+
import com.qlangtech.tis.config.authtoken.UserToken;
2529
import com.qlangtech.tis.config.kerberos.IKerberos;
2630
import com.qlangtech.tis.extension.Descriptor;
2731
import com.qlangtech.tis.extension.TISExtension;
@@ -32,6 +36,7 @@
3236
import com.qlangtech.tis.lang.TisException;
3337
import com.qlangtech.tis.manage.common.TisUTF8;
3438
import com.qlangtech.tis.offline.FileSystemFactory;
39+
import com.qlangtech.tis.plugin.IEndTypeGetter;
3540
import com.qlangtech.tis.plugin.annotation.FormField;
3641
import com.qlangtech.tis.plugin.annotation.FormFieldType;
3742
import com.qlangtech.tis.plugin.annotation.Validator;
@@ -41,7 +46,11 @@
4146
import org.apache.commons.collections.CollectionUtils;
4247
import org.apache.commons.lang.StringUtils;
4348
import org.apache.hadoop.conf.Configuration;
44-
import org.apache.hadoop.fs.*;
49+
import org.apache.hadoop.fs.CommonConfigurationKeysPublic;
50+
import org.apache.hadoop.fs.FSDataOutputStream;
51+
import org.apache.hadoop.fs.FileSystem;
52+
import org.apache.hadoop.fs.FilterFileSystem;
53+
import org.apache.hadoop.fs.Path;
4554
import org.apache.hadoop.fs.permission.FsPermission;
4655
import org.apache.hadoop.hdfs.DFSConfigKeys;
4756
import org.apache.hadoop.security.SecurityInfo;
@@ -55,7 +64,12 @@
5564
import java.io.File;
5665
import java.io.IOException;
5766
import java.io.InputStream;
58-
import java.util.*;
67+
import java.util.ArrayList;
68+
import java.util.HashMap;
69+
import java.util.List;
70+
import java.util.Map;
71+
import java.util.Objects;
72+
import java.util.ServiceLoader;
5973
import java.util.function.Consumer;
6074
import java.util.function.Supplier;
6175
import java.util.stream.Collectors;
@@ -94,7 +108,7 @@ public class HdfsFileSystemFactory extends FileSystemFactory implements ITISFile
94108
@FormField(ordinal = 10, type = FormFieldType.TEXTAREA, validate = {Validator.require})
95109
public String hdfsSiteContent;
96110

97-
private ITISFileSystem fileSystem;
111+
private transient ITISFileSystem fileSystem;
98112

99113
@Override
100114
public String identityValue() {
@@ -161,7 +175,7 @@ public ITISFileSystem visit(IKerberosUserToken token) {
161175
}
162176
SecurityUtil.setSecurityInfoProviders(sinfos.toArray(new SecurityInfo[sinfos.size()]));
163177
cfg.set(DFSConfigKeys.DFS_NAMENODE_KERBEROS_PRINCIPAL_KEY, token.getKerberosCfg().getPrincipal());
164-
return setConfiguration(token.getKerberosCfg(), fsFactory.getClass(), cfg, () -> create());
178+
return setConfiguration(token.getKerberosCfg(), fsFactory.getClass(), cfg, this::create);
165179
}
166180

167181
private final ITISFileSystem create() {
@@ -398,7 +412,7 @@ public void close() throws IOException {
398412

399413

400414
@TISExtension(ordinal = 0)
401-
public static class DefaultDescriptor extends Descriptor<FileSystemFactory> {
415+
public static class DefaultDescriptor extends Descriptor<FileSystemFactory> implements IEndTypeGetter {
402416
public DefaultDescriptor() {
403417
super();
404418
this.registerSelectOptions(IKerberos.IDENTITY, () -> ParamsConfig.getItems(IKerberos.IDENTITY));
@@ -409,6 +423,10 @@ public String getDisplayName() {
409423
return "HDFS";
410424
}
411425

426+
@Override
427+
public EndType getEndType() {
428+
return EndType.HDFS;
429+
}
412430

413431
public boolean validateHdfsSiteContent(IFieldErrorHandler msgHandler
414432
, Context context, String fieldName, String value) {

0 commit comments

Comments
 (0)