当前位置:网站首页>flink 12 源码编译及使用idea运行、debug

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

2022-08-10 02:15:00 学到的心态

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级别的

在这里插入图片描述

原网站

版权声明
本文为[学到的心态]所创,转载请带上原文链接,感谢
https://blog.csdn.net/hiliang521/article/details/126180969