文章目录
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集群提交作业并运行,在各个模块中设定代码调试断点。