我要提问
ARTICLE DETAIL

资讯详情

前沿编程新知与开发实战干货的深度解读。

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

【源码|编译】flink 12 源码编译及使用idea运行、debug 文章目录0. 环境1. 编译2. 运行2.1. JobManager运行1. Main class2. VM options3. Program arguments4. Use classpath of module5. 运行2.2. TaskManager3. 其他待解决的日志只能打印error级别的0. 环境maven 3.6.3java 1.81. 编译maven命令mvn clean install-DskipTests-Dscala-2.11-Dmaven.javadoc.skiptrue-Dcheckstyle.skiptrue-Drat.skiptruemaven 编译的时候跳过测试代码、javadoc 和代码风格检查这样可以减少不少时间。发现在终端使用命令行的方式基本只需要编译一次即可不过一般时间比较长半个小时左右。对于不是必需地、使用场景不多的module以及编译时某些module打包出错的问题可以先在pom中注掉加快编译。2. 运行2.1. JobManager运行配置1. Main class在Main class配置栏中指定StandaloneSessionClusterEntrypoint2. VM options配置log4j 便于日志打印配置classpath用于进程运行-Dlog4j.configurationfile:/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.jar3. 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/conf4. Use classpath of module选择flink-runtime_2.11模块。5. 运行点击运行并访问http://localhost:8081/#/overview2.2. TaskManagerTaskManager和JobManager的启动方式基本一致唯一的区别是启动类不同TaskManager实例的启动类为org.apache.flink.runtime.taskexecutor.TaskManagerRunner。但是似乎只运行几秒即直接挂掉。不过没关系现在我们可以debug了通过debug发现taskmanager的动态参数没有配置在Program arguments 继续添加以下参数点击运行此时发现可以了。-D taskmanager.memory.framework.off-heap.size134217728b-D taskmanager.memory.network.max134217730b-D taskmanager.memory.network.min134217730b-D taskmanager.memory.framework.heap.size134217728b-D taskmanager.memory.managed.size536870920b-D taskmanager.cpu.cores1.0-D taskmanager.memory.task.heap.size402653174b-D taskmanager.memory.task.off-heap.size0b-D taskmanager.memory.jvm-metaspace.size268435456b-D taskmanager.memory.jvm-overhead.max201326592b-D taskmanager.memory.jvm-overhead.min201326592b以上就是在IDEA中搭建分布式集群调试环境的过程通过客户端命令行可以向Flink集群提交作业并运行在各个模块中设定代码调试断点。3. 其他待解决的日志只能打印error级别的
返回列表