开发者社区 问答 正文

Hudi 和 Flink 的融合过程是什么?

Hudi 和 Flink 的融合过程是什么?

展开
收起
芯在这 2021-12-12 11:39:54 310 分享 版权
1 条回答
写回答
取消 提交回答
  • Hudi 原本只支持 Spark 引擎,所以第一步是将 Hudi 与 Spark 解耦之后再去集成我们想要的引擎。

    解耦的难点在于 Hudi 最初没有考虑多引擎的支持,所以从数据源读取数据到最终将数据写出到 Hudi 表,RDD 无处不在。连普通的工具类都会使用 RDD 作为基本的操作单元。与 Spark 解耦,我们评估到他的改动非常的大。其次是 Flink 与 Spark 核心抽象上的差异。Spark 认为数据是有限的数据集,而 Flink 认为数据是无界的,是一种数据流。这种抽象上的差异导致我们很难统一出一个通用的抽象。

    这次改动对于 Hudi 来说是伤筋动骨的,因此我们决定要优先保证原版 Hudi 的功能和性能,当然也牺牲了部分 Flink Stream API。让 Flink 来操作 list,而用Spark 操作 RDD。这样就可以抽取一个泛型出来形成一个统一的抽象层。

    2021-12-12 11:40:33
    赞同 展开评论