Hudi 与 Flink 整合
Hudi0.8.0 版本与 Flink1.12.x 之上版本兼容,目前经过测试,Hudi0.8.0 版本开始支持 Flink,通过 Flink 写数据到 Hudi 时,必须开启 checkpoint,至少有 5 次 checkpoint 后才能看到对应 hudi 中的数据。
但是应该是有一些问题,目前问题如下:
-
在本地执行 Flink 代码向 Flink 写数据时,存在“java.lang.AbstractMethodError: Method org/apache/hudi/sink/StreamWriteOperatorCoordinator.notifyCheckpointComplete(J)V is abstract”错误信息,预计是 hudi 版本支持问题。
-
写入到 Flink 中的数据,如果使用 Flink 读取出来,会有对应的错误:“Exception in thread "main" org.apache.hudi.exception.HoodieException: Get table avro schema error”,这个错误主要是由于上一个错误导致 Hudi 中没有 commit 信息,在内部读取时,读取不到 Commit 信息导致。
一、maven pom.xml 导入如下包
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<flink.version>1.12.1</flink.version>
</properties>
<dependencies>
<!-- Flink操作Hudi需要的包-->
<dependency>
<groupId>org.apache.hudi</groupId>
<artifactId>hudi-flink-bundle_2.11</artifactId>
<version>0.8.0</version>
<