背景
目前hudi的与spark的集合还是基于spark datasource V1来的,这一点可以查看hudi的source实现就可以知道:
class DefaultSource extends RelationProvider
with SchemaRelationProvider
with CreatableRelationProvider
with DataSourceRegister
with StreamSinkProvider
with StreamSourceProvider
with SparkAdapterSupport
with Serializable {
后续在进一步的写入的时候也是基于DataSource V2的
闲说杂谈
继续上次的Apache Hudi初探(三)涉及的代码:
// HoodieDataSourceInternalBatchWrite 类中的方法:其所涉及的的方法调用链如下:
createBatchWriterFactory => dataWriter.write => dataWriter.commit/abort => dataWriter.close
||
\/
onDataWriterCommit
||
\/
commit/abort
HoodieDataSourceInternalBatchWrite 这些方法的调用最终都会委托到DataSourceInternalWriterHelper这个类来执行
-
createBatchWriterFactory
public DataWriterF
ApacheHudi与Spark集成的内部写入机制解析

文章详细探讨了ApacheHudi与Spark集成时的数据写入流程,特别是基于DataSourceV1和DataSourceV2的交互。Hudi在写入过程中创建*.hoodie/inflight-commit文件,使用HoodieBulkInsertDataInternalWriter进行数据写入,文件命名包含fileId、writeToken和instantTime等信息。commit和abort操作涉及SparkRDDWriteClient,用于提交或回滚写入状态。
最低0.47元/天 解锁文章
2995

被折叠的 条评论
为什么被折叠?



