简介
本文介绍了如何拉取 Hudi 源代码,进行编译,最后得到hudi-flink-bundle jar 文件
拉取源码
本文以 0.10.1 的源码为例
$ git clone -b release-0.10.1 https://github.com/apache/hudi.git
Cloning into 'hudi'...
remote: Enumerating objects: 247886, done.
remote: Counting objects: 100% (29939/29939), done.
remote: Compressing objects: 100% (4148/4148), done.
remote: Total 247886 (delta 19286), reused 28107 (delta 18366), pack-reused 217947
Receiving objects: 100% (247886/247886), 159.92 MiB | 8.85 MiB/s, done.
Resolving deltas: 100% (124789/124789), done.
修改 pom.xml 的 Flink 版本
笔者环境使用的 Flink 版本是1.13.6, 而 pom.xml 的Flink 版本是 1.13.1
vi /opt/hudi/pom.xml
修改后:
<flink.version>1.13.6</flink.version>
开始编译
只编译 packaging/hudi-flink-bundle 及其依赖的模块
$ mvn clean install -DskipTests -pl packaging/hudi-flink-bundle -am
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for Hudi 0.10.1:
[INFO]
[INFO] Hudi ............................................... SUCCESS [ 1.322 s]
[INFO] hudi-common ........................................ SUCCESS [ 7.607 s]
[INFO] hudi-aws ........................................... SUCCESS [ 1.049 s]
[INFO] hudi-timeline-service .............................. SUCCESS [ 0.861 s]
[INFO] hudi-client ........................................ SUCCESS [ 0.056 s]
[INFO] hudi-client-common ................................. SUCCESS [ 4.504 s]
[INFO] hudi-hadoop-mr ..................................... SUCCESS [ 1.701 s]
[INFO] hudi-sync-common ................................... SUCCESS [ 0.475 s]
[INFO] hudi-hive-sync ..................................... SUCCESS [ 2.360 s]
[INFO] hudi-flink-client .................................. SUCCESS [ 3.795 s]
[INFO] hudi-flink_2.11 .................................... SUCCESS [ 2.308 s]
[INFO] hudi-flink-bundle_2.11 ............................. SUCCESS [ 21.383 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 47.708 s
[INFO] Finished at: 2022-03-13T11:26:01+08:00
[INFO] ------------------------------------------------------------------------
$ ls -ltr /opt/hudi/packaging/hudi-flink-bundle/target/
total 44932
drwxrwxr-x 3 ubuntu ubuntu 4096 Mar 13 11:25 maven-shared-archive-resources
drwxrwxr-x 3 ubuntu ubuntu 4096 Mar 13 11:25 maven-status
drwxrwxr-x 3 ubuntu ubuntu 4096 Mar 13 11:25 generated-sources
drwxrwxr-x 4 ubuntu ubuntu 4096 Mar 13 11:25 classes
-rw-rw-r-- 1 ubuntu ubuntu 799 Mar 13 11:25 rat.txt
drwxrwxr-x 3 ubuntu ubuntu 4096 Mar 13 11:25 test-classes
drwxrwxr-x 2 ubuntu ubuntu 4096 Mar 13 11:25 maven-archiver
-rw-rw-r-- 1 ubuntu ubuntu 14621 Mar 13 11:25 original-hudi-flink-bundle_2.11-0.10.1.jar
-rw-rw-r-- 1 ubuntu ubuntu 10295 Mar 13 11:25 original-hudi-flink-bundle_2.11-0.10.1-sources.jar
-rw-rw-r-- 1 ubuntu ubuntu 31230020 Mar 13 11:26 hudi-flink-bundle_2.11-0.10.1.jar
-rw-rw-r-- 1 ubuntu ubuntu 14699850 Mar 13 11:26 hudi-flink-bundle_2.11-0.10.1-sources.jar
-rw-rw-r-- 1 ubuntu ubuntu 18354 Mar 13 11:26 dependency-reduced-pom.xml
hudi-flink-bundle_2.11-0.10.1.jar 就是我们需要的文件