【源码|编译】flink 12 源码编译及使用idea运行、debug

0. 环境

maven 3.6.3
java 1.8

1. 编译

maven命令

mvn clean install -DskipTests -Dscala-2.11 -Dmaven.javadoc.skip=true -Dcheckstyle.skip=true -Drat.skip=true

maven 编译的时候跳过测试代码、javadoc 和代码风格检查,这样可以减少不少时间。

发现在终端使用命令行的方式,基本只需要编译一次即可,不过一般时间比较长,半个小时左右。

对于不是必需地、使用场景不多的module,以及编译时某些module打包出错的问题,可以先在pom中注掉,加快编译。

在这里插入图片描述
 

2. 运行

2.1. JobManager运行

配置:
在这里插入图片描述

1. Main class

在Main class配置栏中指定StandaloneSessionClusterEntrypoint

2. VM options

配置log4j 便于日志打印
配置classpath用于进程运行

-Dlog4j.configuration=file:/Users/lianggao/MyWorkSpace/001project/flink/build-target/conf/log4j-console.properties
-classpath
:/Users/lianggao/MyWorkSpace/001project/flink/build-target/lib/flink-csv-1.12.3.jar:/Users/lianggao/MyWorkSpace/001project/flink/build-target/lib/flink-dist_2.11-1.12.3.jar:/Users/lianggao/MyWorkSpace/001project/flink/build-target/lib/flink-json-1.12.3.jar:/Users/lianggao/MyWorkSpace/001project/flink/build-target/lib/flink-shaded-zookeeper-3.4.14.jar:/Users/lianggao/MyWorkSpace/001project/flink/build-target/lib/flink-table-blink_2.11-1.12.3.jar:/Users/lianggao/MyWorkSpace/001project/flink/build-target/lib/flink-table_2.11-1.12.3.jar:/Users/lianggao/MyWorkSpace/001project/flink/build-target/lib/log4j-1.2-api-2.12.1.jar:/Users/lianggao/MyWorkSpace/001project/flink/build-target/lib/log4j-api-2.12.1.jar:/Users/lianggao/MyWorkSpace/001project/flink/build-target/lib/log4j-core-2.12.1.jar:/Users/lianggao/MyWorkSpace/001project/flink/build-target/lib/log4j-slf4j-impl-2.12.1.jar
3. Program arguments

用于指定flink-conf.yaml配置文件。同样在源码编译生成的build-target/conf路径中找到配置文件,当然也可以指定文件路径获取配置文件。

在flink-conf.yaml文件中,原则上不需要对参数做任何调整,如果JobManager和TaskManager不在同一台机器上,则需要修改flink-conf.yaml中的参数信息。

这里我们使用build-target/conf路径的默认配置

-c
/Users/lianggao/MyWorkSpace/001project/flink/build-target/conf
4. Use classpath of module

选择flink-runtime_2.11模块。

 

5. 运行

点击运行,并访问:http://localhost:8081/#/overview
在这里插入图片描述
 
 

2.2. TaskManager

TaskManager和JobManager的启动方式基本一致,唯一的区别是启动类不同,TaskManager实例的启动类为org.apache.flink.runtime.taskexecutor.TaskManagerRunner。

但是似乎只运行几秒即直接挂掉。
不过没关系,现在我们可以debug了!!!

通过debug发现,taskmanager的动态参数没有配置,在Program arguments 继续添加以下参数,点击运行,此时发现可以了。

-D
taskmanager.memory.framework.off-heap.size=134217728b
-D
taskmanager.memory.network.max=134217730b
-D
taskmanager.memory.network.min=134217730b
-D
taskmanager.memory.framework.heap.size=134217728b
-D
taskmanager.memory.managed.size=536870920b
-D
taskmanager.cpu.cores=1.0
-D
taskmanager.memory.task.heap.size=402653174b
-D
taskmanager.memory.task.off-heap.size=0b
-D
taskmanager.memory.jvm-metaspace.size=268435456b
-D
taskmanager.memory.jvm-overhead.max=201326592b
-D
taskmanager.memory.jvm-overhead.min=201326592b

在这里插入图片描述

以上就是在IDEA中搭建分布式集群调试环境的过程,通过客户端命令行可以向Flink集群提交作业并运行,在各个模块中设定代码调试断点。

3. 其他待解决的

日志只能打印error级别的

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

roman_日积跬步-终至千里

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值