SeaTunnel HdfsFile 连接器完全指南:HDFS 文件读写、增量同步与多表能力深度解析
SeaTunnel HdfsFile 连接器完全指南HDFS 文件读写、增量同步与多表能力深度解析【免费下载链接】seatunnelSeaTunnel is a multimodal, high-performance, distributed, massive data integration tool.项目地址: https://gitcode.com/GitHub_Trending/se/seatunnelHdfsFile 是 SeaTunnel 中面向 HDFS 文件系统的 Source/Sink 连接器支持 text、csv、parquet、orc、json、excel、xml、binary、markdown、pdf 等多种文件格式的读取与写入。本文以该连接器的官方中文文档为主线结合仓库内源码实现系统讲解其参数体系、数据同步模式、Kerberos/HA 集群接入、多表读写等核心能力帮助读者在 Spark、Flink 与 SeaTunnel Zeta 引擎上快速落地 HDFS 数据集成任务。一、连接器概览与能力边界1.1 支持的引擎与数据源版本HdfsFile 连接器同时提供 Source数据源与 Sink数据接收器两类角色官方文档 与 Sink 文档 声明其支持以下运行时SparkFlinkSeaTunnel Zeta数据源侧兼容 hadoop 2.x 与 3.x。在源码层面HdfsFileSource.java 继承自BaseMultipleTableFileSourceHdfsFileSink.java 继承自BaseMultipleTableFileSink两者通过getPluginName()返回FileSystemType.HDFS对应的插件名即 HOCON 配置块中的HdfsFile标识。提示若使用 Spark/Flink需确保运行集群已集成 hadoop官方文档指出测试过的版本为 2.x若使用 SeaTunnel EngineZetahadoop jar 会在安装时自动集成可通过检查${SEATUNNEL_HOME}/lib下的 jar 包确认。1.2 Source 能力矩阵多模态Multimodal以二进制文件格式读取/写入任意格式文件视频、图片等批处理支持流处理不支持精确一次支持在pollNext调用中读取分片内所有数据读取的分片保存在快照中列投影、并行度支持用户自定义分片不支持多表读取支持文件格式textcsvparquetorcjsonexcelxmlbinarymarkdownpdf1.3 Sink 能力矩阵多模态支持精确一次支持默认使用 2PC 提交保证精确一次多表写入支持文件格式textcsvparquetorcjsonexcelcanal_jsondebezium_jsonmaxwell_json压缩编解码器支持lzo定时刷新不支持二、HdfsFile Source从 HDFS 读取数据的完整参数体系2.1 核心必选参数名称类型是否必须默认值描述pathstring是-源文件路径tables_configslist否-在一个 Source 块中配置多张 HDFS 源表每一项使用与单表相同的参数可通过schema.table设置传递给下游的表名file_format_typestring是-textcsvparquetorcjsonexcelxmlbinarymarkdownpdf。最终文件名以文件格式后缀结尾文本文件后缀为txtfs.defaultFSstring是-以hdfs://开头的 hadoop 集群地址例如hdfs://hadoopcluster这四个参数在源码中由 HdfsFileHadoopConfig.java 的buildWithConfig()方法强制校验FILE_PATH、FILE_FORMAT_TYPE、DEFAULT_FS三者任一缺失都会抛出CONFIG_VALIDATION_FAILED的FileConnectorException。同时从 HdfsFileSourceFactory.java 的optionRule()可以看到tables_configs与path是互斥配置项exclusive二者只能选其一。2.2 文件读取与解析相关参数名称类型默认值描述delimiter / field_delimiterstring\001字段分隔符用于分割文本文件字段默认与 Hive 默认分隔符一致delimiter在 2.3.5 后弃用请用field_delimiterrow_delimiterstring\n行分隔符仅 text 格式需要默认\nread_columnslist-读取列列表实现字段投影支持 text/json/csv/orc/parquet/excel/xmltext/json/csv 需同时配置 schemaskip_header_row_numberlong0跳过前几行仅适用于 txt 和 csvcsv_use_header_linebooleanfalse是否使用标题行解析文件仅 file_formatcsv 且文件含 RFC 4180 标题行时使用quote_charstring包裹 CSV 字段的单字符保证含逗号/换行符/引号的字段被正确解析escape_charstring-在 CSV 字段内转义引号或其他特殊字符parse_partition_from_pathbooleantrue从文件路径解析分区键和值如nametyrantlucifer/age26路径会为记录追加name、age字段不要在 schema 中定义分区字段date_formatstringyyyy-MM-dd日期转换格式yyyy-MM-ddyyyy.MM.ddyyyy/MM/dddatetime_formatstringyyyy-MM-dd HH:mm:ss日期时间转换格式yyyy-MM-dd HH:mm:ssyyyy.MM.dd HH:mm:ssyyyy/MM/dd HH:mm:ssyyyyMMddHHmmsstime_formatstringHH:mm:ss时间转换格式HH:mm:ssHH:mm:ss.SSSnull_formatstring-仅 text 格式使用定义可表示为 null 的字符串如\NencodingstringUTF-8文件编码由Charset.forName(encoding)解析仅 json/text/csv/xml 使用sheet_namestring-Excel 工作表名excel_enginestringPOIExcel 引擎支持POI和EasyExcel大 Excel 文件建议EasyExcel流式读取poi_excel_max_file_sizelong52428800POI 引擎允许读取的最大 Excel 大小默认 50 MB超限提前失败并提示使用 EasyExcelxml_row_tagstring-XML 数据行标签名xml_use_attr_formatboolean-是否使用标签属性格式处理数据binary_chunk_sizeint1024binary 格式读取块大小字节较大值提升大文件性能但占用更多内存binary_complete_file_modebooleanfalsebinary 格式是否整文件单块读取整文件载入内存recursive_file_scanbooleantrue是否递归扫描子目录sort_files_by_modification_timebooleanfalse按修改时间降序排序文件schema 演化场景下保证推断使用最新文件file_filter_patternstring-正则过滤文件filename_extensionstring-按扩展名过滤示例csv.txtjson.xmlfile_filter_modified_start / file_filter_modified_endstring-按最后修改时间过滤格式yyyy-MM-dd HH:mm:ssenable_file_splitbooleanfalse大文件拆分提升并行度仅 text/csv/json/parquet 且非压缩格式file_split_sizelong134217728拆分字节数默认 128 MBtext/csv/json 对齐到下一个 row_delimiterparquet 以 RowGroup 为单位不切开schemaconfig-上游 schema详见 Schema 特性无法从元数据读取 schema 的格式text/json/excel/xml/csv需配置关于enable_file_split官方文档给出明确调优建议适合读取少量大文件并以更高并行度提升吞吐不建议用于大量小文件或低并行度场景拆分有额外枚举/调度开销。经验公式为file_split_size ≈ file_size / 期望并行度。压缩/归档文件compress_codec或archive_compress_codec非 none不支持拆分会自动回退。2.3 文件过滤file_filter_pattern示例file_filter_pattern遵循标准正则表达式。若只按文件名过滤直接写正则若同时按目录过滤表达式以path起始。假设path为/data/seatunnel目录结构如下/data/seatunnel/20241001/report.txt /data/seatunnel/20241007/abch202410.csv /data/seatunnel/20241002/abcg202410.csv /data/seatunnel/20241005/old_data.csv /data/seatunnel/20241012/logo.png匹配意图正则命中结果匹配所有 .txt 文件.*.txt/data/seatunnel/20241001/report.txt匹配所有以 abc 开头的文件abc.*abch202410.csv、abcg202410.csv匹配 20241007 目录下 abc 开头且第四个字符为 h 或 g 的文件/data/seatunnel/20241007/abc[h,g].*abch202410.csv匹配以 202410 开头的第三级目录且 .csv 结尾/data/seatunnel/202410\d*/.*.csv三个 csv 文件2.4 HDFS 集群与安全相关参数名称类型默认值描述hdfs_site_pathstring-hdfs-site.xml路径用于加载 namenodes 的 HA 配置remote_userstring-连接 hadoop 的登录用户用于 RPC 远程用户krb5_pathstring/etc/krb5.confKerberos 的 krb5 路径kerberos_principalstring-Kerberos 主体kerberos_keytab_pathstring-Kerberos keytab 路径metalake_typestringgravitinoMetalake 服务类型目前支持gravitino从源码可见HdfsFileHadoopConfig.java 会把hdfs_site_path、remote_user、krb5_path、kerberos_principal、kerberos_keytab_path逐项注入HadoopConf再交给底层 Hadoop FileSystem 客户端使用。2.5 markdown / pdf 文档解析与 RAG 元数据当file_format_typemarkdown时SeaTunnel 解析 markdown 文件并提取结构化数据每个元素标题、段落、列表、代码块、表格等转换为一条文档元素记录schema 包含element_id元素唯一标识符element_type元素类型Heading、Paragraph、ListItem 等heading_level标题级别1-6非标题元素为 nulltext元素文本内容page_number页码默认 1position_index文档中的位置索引parent_id/child_ids父子元素 ID 关系当markdown_rag_metadata_enabledtrue该选项在 HdfsFileSourceFactory.java 的optionRule()中与file_format_typemarkdown条件绑定时会追加source_uri、document_id、chunk_id、chunk_index、content_hashtext 的 SHA-256五个 RAG 字段并在 row options 中携带SourceUri、DocumentId、DocumentHash、ChunkHash四个 Knowledge Sync 逻辑元数据值。官方文档强调启用后 source enumerator 用同一document_id哈希分配整文件 split同一文档的行落在同一 source 路由 bucketmarkdown 仅支持读取不支持写入本地路径与file:URI 沿用本地路径归一化远程 URI 的逻辑SourceUri保留 scheme/host/port/path移除 user info、query、fragment并小写 scheme 与 host下游 transform 修改文本或展开 chunk 时需在 lifecycle sink 前重新计算最终ChunkHash/ChunkId/ChunkIndex。pdf格式使用与 markdown 相同的文档元素 schema有大纲时提取 heading/paragraph/image/link 并组织父子层级无大纲时仅提取扁平化的 paragraph 与 image。注意仅支持单栏从上到下布局多栏布局可能产生不正确的文本顺序。出于 XXE 加固包含!DOCTYPE ...声明的 XML 文件现会被拒绝并抛出FILE_READ_FAILED错误且无配置可恢复旧行为。2.6 压缩与归档compress_codec文件压缩编解码器txt/json/csvlzononeorc/parquet自动识别压缩类型无需额外设置archive_compress_codec归档压缩archive_compress_codecfile_formatarchive_compress_suffixZIPtxt,json,excel,xml.zipTARtxt,json,excel,xml.tarTAR_GZtxt,json,excel,xml.tar.gzGZtxt,json,excel,xml.gzNONEall.*注意gz 压缩的 excel 文件需压缩原始文件或指定文件后缀例如e2e.xls→e2e_test.xls.gz。三、HdfsFile Sink写入 HDFS 的完整参数体系3.1 核心必选与事务参数名称类型默认值描述fs.defaultFSstring-Hadoop 集群地址支持hdfs://hadoopcluster、hdfs://namenode:9000以及 ViewFS 联邦 HDFS 的viewfs://myclusterpathstring-目标目录路径tmp_pathstring/tmp/seatunnel结果文件先写临时路径再通过mv提交到目标目录需 Hdfs 路径file_format_typestringcsvtextjsoncsvorcparquetexcelcanal_jsondebezium_jsonmaxwell_json文本文件后缀为txtis_enable_transactionbooleantrue事务提交保证数据不丢失/不重复开启时文件头部自动添加${transactionId}_目前仅支持 truebatch_sizeint1000000文件中最大行数由batch_size与checkpoint.interval共同决定single_file_modebooleanfalse每个并行度只输出一个文件开启后 batch_size 失效输出文件名无文件块后缀create_empty_file_when_no_databooleanfalse上游无数据时仍生成对应数据文件filename_extensionstring-自定义文件扩展名覆盖默认后缀如.xml、.json、dat3.2 文件名与分区参数名称类型默认值描述custom_filenamebooleanfalse是否自定义文件名file_name_expressionstring${transactionId}仅 custom_filenametrue 时使用可加${now}${uuid}变量如test_${uuid}_${now}若 is_enable_transactiontrue 会自动添加${transactionId}_前缀filename_time_formatstringyyyy.MM.dd指定${now}的时间格式have_partitionbooleanfalse是否处理分区partition_byarray-根据选定字段对数据分区partition_dir_expressionstring${k0}${v0}/${k1}${v1}/.../${kn}${vn}/分区目录生成表达式k0 为第一个分区字段v0 为其值is_partition_field_write_in_filebooleanfalse分区字段是否写入数据文件写 Hive 数据文件时应为 falsesink_columnsarray全部字段需要写入文件的列字段顺序即写入顺序3.3 文本与 CSV 输出参数名称类型默认值描述field_delimiterstring\001仅 text 格式列分隔符row_delimiterstring\n仅 text/csv/json 格式行分隔符enable_header_writebooleanfalse仅 text/csv 使用false 不写表头true 写表头csv_string_quote_modeenumMINIMALCSV 字符串引号模式ALL全加引号MINIMAL仅对含特殊字符字段加引号NONE从不加引号数据含分隔符时输出前置转义字符未设置转义字符则格式校验抛异常compress_codecstringnonetxt/json/csvlzononeorclzosnappylz4zlibnoneparquetlzosnappylz4gzipbrotlizstdnoneexcel 不支持压缩max_rows_in_memoryint-仅 excel内存可缓存的最大数据项数sheet_namestringSheet${Random number}仅 excel写入指定工作表名3.4 表管理、Schema 演化与多表参数名称类型默认值描述schema_save_modestringCREATE_SCHEMA_WHEN_NOT_EXISTRECREATE_SCHEMA存在则删除重建CREATE_SCHEMA_WHEN_NOT_EXIST存在则跳过ERROR_WHEN_SCHEMA_NOT_EXIST不存在报错IGNORE忽略表处理data_save_modestringAPPEND_DATADROP_DATA保留目录删数据文件APPEND_DATA保留目录和数据ERROR_WHEN_DATA_EXISTS有数据文件时报错schema_evolution_enabledbooleanfalse开启 Schema 演化CDC 管道下 ADD/DROP/RENAME/MODIFY 列事件无需重启作业即可应用不支持 binary 格式have_partitiontrue时不允许删除partition_by中的列关闭时若收到AlterTableEvent会抛出Received AlterTableEvent but schema_evolution_enabledfalse ...错误multi_table_sink_replicaint1多表写入时每张表的 Sink Writer 副本数单表写入压力大时可调大merge_update_eventbooleanfalse仅 canal_json/debezium_json/maxwell_jsontrue 时 UPDATE_AFTER 与 UPDATE_BEFORE 合并为 UPDATEremote_userstring-HDFS 远端用户名CDC 管道中使用示例sink 侧HdfsFile { fs.defaultFS hdfs://hadoopcluster path /tmp/seatunnel/cdc/${table_name} file_format_type parquet schema_evolution_enabled true }四、数据同步模式增量同步与持续文件发现Source 侧提供三组进阶能力用于文件级增量同步与持续监控场景。4.1 discovery_mode一次性扫描与持续发现once默认启动时枚举一次文件并结束有界continuous作业保持运行周期性扫描路径并处理新增/变更文件无界推荐job.modeSTREAMINGscan_interval默认10S仅在 continuous 模式使用取值必须大于 0推荐简写10S、30S大小写不敏感兼容 ISO-8601PT10S。start_mode支持earliest默认启动时读取已有文件与latest仅处理作业启动后修改的新文件。4.2 sync_modefull 与 updatefull默认全量读取update读取端对比源与target_path仅读取新增/变更文件目前仅支持file_format_typebinarytarget_path通常应与 sink 的path对齐update_strategy支持distcp默认与strictdistcp语义接近distcp -update目标不存在 → COPY长度不同 → COPYmtime(source) mtime(target)→ COPY否则 SKIPstrict严格一致性配合compare_mode判断compare_mode支持len_mtime默认len 与 mtime 均相同才 SKIP与checksumlen 相同且 HadoopgetFileChecksum相同才 SKIP仅在update_strategystrict生效。update_compare_parallelism默认 8有效范围 1-64控制稀疏目标元数据点查的最大并发数update_compare_bulk_threshold默认 0设置为正数后同一目标父目录候选达到阈值时切换为单次目录枚举0 表示关闭自动批量枚举。4.3 post_sync_action同步后置动作仅discovery_modecontinuous时使用支持none默认、delete、backup在discovery_modeonce下配置 delete/backup 会被显式拒绝。delete/backup 在notifyCheckpointComplete后执行失败动作会在后续 checkpoint 回调中重试。执行前会先把源文件重命名到 staging/trash 路径重新检查文件长度与修改时间act-then-verify版本不一致则恢复到原路径等待重新扫描。backup_path备份目标基础路径必须与path同文件系统scheme authority 相同不能与path相同或互为子目录retention_max_age备份保留时长支持MSSMHD后缀M始终表示分钟及 ISO-8601如PT1H30Mretention_check_interval保留清理扫描间隔默认1H单独设置不生效mtime 粒度限制act-then-verify 缩小但无法完全消除粗粒度 mtime 文件系统上的竞态窗口如 FTP MDTM 约 1 秒。同秒同长度修改可能检测不到FTP/SFTP 上建议确保 post-sync 期间无并发写入或使用backup而非delete。五、多表读写tables_configs 与多表 Sink当单个 HDFS Source 需要读取多张表或多个目录时使用tables_configs。每项可单独配置path、file_format_type、schema及 HDFS 相关参数下游 Sink 需要按表路由时设置schema.table。该能力在 HdfsFileSource.java 中通过MultipleTableHdfsFileSourceConfig承载源码路径 MultipleTableHdfsFileSourceConfig.javaSink 侧则由BaseMultipleTableFileSink提供多表写入能力变更日志中对应 Support multi table sink feature for HdfsFile 特性版本 2.3.12。多表读取配置示例env { parallelism 1 job.mode BATCH } source { HdfsFile { tables_configs [ { schema { table student } path /apps/hive/demo/student file_format_type json fs.defaultFS hdfs://namenode001 }, { schema { table teacher } path /apps/hive/demo/teacher file_format_type json fs.defaultFS hdfs://namenode001 } ] } } sink { HdfsFile { fs.defaultFS hdfs://hadoopcluster path /tmp/hive/warehouse/${table_name} file_format_type orc } }六、完整任务示例6.1 Source 读取 JSON 并写入 HDFS# 定义运行时环境 env { parallelism 1 job.mode BATCH } source { HdfsFile { schema { fields { name string age int } } path /apps/hive/demo/student file_format_type json fs.defaultFS hdfs://namenode001 } } transform { } sink { HdfsFile { fs.defaultFS hdfs://hadoopcluster path /tmp/hive/warehouse/test2 file_format_type orc } }6.2 带分区、自定义文件名与 sink_columns 的 text 写入HdfsFile { fs.defaultFS hdfs://hadoopcluster path /tmp/hive/warehouse/test2 file_format_type text field_delimiter \t row_delimiter \n have_partition true partition_by [age] partition_dir_expression ${k0}${v0} is_partition_field_write_in_file true custom_filename true file_name_expression ${transactionId}_${now} filename_time_format yyyy.MM.dd sink_columns [name,age] is_enable_transaction true }6.3 增量同步sync_modeupdate仅 binaryenv { parallelism 1 job.mode BATCH } source { HdfsFile { path /seatunnel/update/src/ file_format_type binary fs.defaultFS hdfs://namenode001 sync_mode update target_path /seatunnel/update/dst/ update_strategy distcp compare_mode len_mtime } } sink { HdfsFile { fs.defaultFS hdfs://namenode001 path /seatunnel/update/dst/ tmp_path /seatunnel/update/tmp/ file_format_type binary } }6.4 持续发现discovery_modecontinuousenv { parallelism 1 job.mode STREAMING } source { HdfsFile { path /seatunnel/watch/src/ file_format_type binary fs.defaultFS hdfs://namenode001 discovery_mode continuous scan_interval 10S start_mode latest sync_mode update target_path /seatunnel/watch/dst/ update_strategy distcp compare_mode len_mtime post_sync_action backup backup_path /seatunnel/watch/backup/ retention_max_age 7D retention_check_interval 1H } } sink { HdfsFile { fs.defaultFS hdfs://namenode001 path /seatunnel/watch/dst/ tmp_path /seatunnel/watch/tmp/ file_format_type binary } }6.5 Kerberos 认证配置HdfsFile { fs.defaultFS hdfs://hadoopcluster path /tmp/hive/warehouse/test2 hdfs_site_path /path/to/your/hdfs_site_path kerberos_principal your_principalEXAMPLE.COM kerberos_keytab_path /path/to/your/keytab/file.keytab }写入启用 Kerberos 的 HA HDFS 集群时kerberos_principal与krb5_path仅被转发给 Hadoop FileSystem 客户端连接器自身不执行kinit因此 keytab 必须能被每个 worker 节点发现通常通过KRB5CCNAME或定时kinit或经由标准 Hadoop 认证工具注入同一 JVM。遇到集群级认证问题先在 worker 日志中查找LoginException/KrbException——通常是凭据问题而非连接器 bug。6.6 文件过滤source { HdfsFile { path /apps/hive/demo/student file_format_type json fs.defaultFS hdfs://namenode001 // 文件示例 abcD2024.csv file_filter_pattern abc[DX]*.* } } sink { Console { } }七、HA 与联邦 HDFS 接入7.1 从 HANameservice集群读取HA 模式下把fs.defaultFS指向 nameservice URI而非单个 namenodenameservice ID 必须与hdfs-site.xml的dfs.nameservices一致source { HdfsFile { fs.defaultFS hdfs://mycluster path /data/orders/dt2026-08-11 file_format_type parquet hdfs_site_path /etc/hadoop/conf/hdfs-site.xml } }7.2 ViewFS联邦 HDFS写入HdfsFile { fs.defaultFS viewfs://mycluster path /data/output file_format_type parquet hdfs_site_path /path/to/core-site.xml data_save_mode DROP_DATA }在core-site.xml中配置挂载表?xml version1.0 encodingUTF-8? configuration !-- ViewFS mount table for mycluster -- property namefs.viewfs.mounttable.mycluster.link./data/name valuehdfs://namenode1:9000/data/value /property property namefs.viewfs.mounttable.mycluster.link./logs/name valuehdfs://namenode2:9000/logs/value /property property namefs.viewfs.mounttable.mycluster.link./tmp/name valuehdfs://namenode3:9000/tmp/value /property /configurationhdfs_site_path用于加载外部hdfs-site.xml/core-site.xml如/etc/hadoop/conf/使集群 HA / 联邦配置无需在作业里重复声明。八、版本演进脉络与源码阅读指引连接器经历了从独立 hdfs file connector 到复用 File Base 模块的演进connector-file-hadoop 模块 结构即证明Source/Sink 实现非常薄核心逻辑全部沉淀在 connector-file-base 与 connector-common 中关键能力里程碑如下2.2.0-beta新增 hdfs file source connector、hdfs json/parquet/orc/json 写入能力2.3.0统一 file connectors 的 option rule 与工厂类HdfsFileSourceFactory/HdfsFileSinkFactory2.3.1支持压缩、重构 option rule 与文档2.3.2新增 excel source/sink2.3.3新增file_filter_pattern文件过滤2.3.4统一 source/sink 选项与文档、LZO 压缩读取、schema 支持 column/primaryKey/constraintKey、多表 File API 下沉到 File Base 模块2.3.5XML 文件类型支持扩展至 SFTP/FTP/LocalFile/HdfsFile 等2.3.6parquet 支持 fixed/timestamp 写为 int962.3.8支持读取归档压缩文件archive compress2.3.9text 读取支持配置 null 格式2.3.10filename_extension参数、单文件模式、无数据时空文件创建、连接器通用选项重构2.3.11text sink 新增row_delimiter、file connectors 配置更新2.3.12HdfsFile 多表 sink 特性、可自定义行分隔符、maxcompute sink writer timestamp 字段类型支持devhdfs 多表 source 读取#9816、markdown 解析器#9714源码阅读路径建议参数规则与校验HdfsFileSourceFactory.java、HdfsFileSinkFactory.javaHadoop 配置装配HdfsFileHadoopConfig.java多表配置解析MultipleTableHdfsFileSourceConfig.java拆分策略测试HdfsFileAccordingToSplitSizeSplitStrategyTest.java、HdfsFileSplitStrategyFactoryTest.java工厂与 Sink 测试HdfsFileFactoryTest.java、HdfsFileSinkTest.java九、总结HdfsFile 连接器是 SeaTunnel 接入 HDFS 生态的入口Source 侧覆盖从常规文本/列式文件到 markdown/pdf 文档解析、从一次性批读到discovery_modecontinuous持续监控的完整场景Sink 侧提供事务提交、分区写入、自定义文件名、Schema 演化与多表写入能力配合 Kerberos/HA/ViewFS 配置可对接企业级安全与高可用集群。在仓库中连接器本体为薄封装参数规则与底层读写逻辑集中在 connector-file-base 与 connector-common 模块阅读源码时建议从 HdfsFileSourceFactory 的optionRule()入手即可快速建立完整参数认知。【免费下载链接】seatunnelSeaTunnel is a multimodal, high-performance, distributed, massive data integration tool.项目地址: https://gitcode.com/GitHub_Trending/se/seatunnel创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考