flink源码-编译

flink源码-编译

编译准备

下载 Flink 代码到本地。

1
git clone https://github.com/apache/flink.git

国内下载慢的话可以使用gitee的镜像仓库:`https://gitee.com/mirrors/flink.git

maven配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<mirrors>
<mirror>
<id>confluent</id>
<mirrorOf>confluent</mirrorOf>
<name>confluent</name>
<url>http://packages.confluent.io/maven</url>
</mirror>
<mirror>
<id>mapr-public</id>
<mirrorOf>mapr-releases</mirrorOf>
<name>mapr-releases</name>
<url>https://maven.aliyun.com/repository/mapr-public</url>
</mirror>
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>*,!jeecg,!jeecg-snapshots,!mapr-releases,!icm</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
</mirrors>

源码切换到1.8分支

1
git checkout release-1.8

编译源码:

1
2
3
4
5
mvn clean install \
-DskipTests \ # 跳过测试部分
-Dfast \ # 跳过doc检查等
-T 4 \ # 支持多处理器或者处理器核数参数,加快构建速度,推荐Maven3.3及以上
-Dmaven.compile.fork=true #允许多线程编译,推荐maven在3.3及以上

编译结果在flink/flink-dist/target/下。

unsafe 类找不到

1
2
符号: 方法 defineClass(java.lang.String,byte[],int,int,java.lang.ClassLoader,java.security.ProtectionDomain)
位置: 类 sun.misc.Unsafe
  1. 设置环境变量JAVA_HOME
  2. 设置环境变量CLASSPATH,加上unsafe类所在jar包路径。

找不到jar包

1
[ERROR] Failed to execute goal on project flink-avro-confluent-registry: Could not resolve dependencies for project org.apache.flink:flink-avro-confluent-registry:jar:1.8-SNAPSHOT: Could not find artifact io.confluent:kafka-schema-registry-client:jar:3.3.1 in nexus-aliyun (http://maven.aliyun.com/nexus/content/groups/public) -> [Help 1]
  1. 可以在settings.xml中加上如下配置:
1
2
3
4
5
6
<mirror>
<id>confluent</id>
<mirrorOf>confluent</mirrorOf>
<name>confluent</name>
<url>http://packages.confluent.io/maven</url>
</mirror>
  1. 也可以手动下载kafka-schema-registry-client-3.3.1.jar.将下载的kafka-schema-registry-client-3.3.1.jar安装到本地仓库:
1
mvn install:install-file -DgroupId=io.confluent -DartifactId=kafka-schema-registry-client -Dversion=3.3.1 -Dpackaging=jar  -Dfile=/home/hadoop/downloads/kafka-schema-registry-client-3.3.1.jar

编译卡在 Running ‘npm ci –cache-max=0 –no-save’

flink 编译中需要安装node 包,在flink-runtime-web/pom.xml 中。

将npm install 部分的argumentsci --cache-max=0 --no-save 修改为 install -registry=https://registry.npm.taobao.org --cache-max=0 --no-save

ng: command not found

环境没有ng命令,使用npm install @angular/cli -registry=https://registry.npm.taobao.org

注意指定使用 flink/flink-runtime-web/web-dashboard 目录下的npm


参考资料:

  • 从源码构建 Flink
-------------本文结束感谢您的阅读-------------
坚持分享,您的支持将鼓励我继续创作!
0%