内容简介:首先复制flink的github地址接着在idea点击路径
本文主要是讲讲flink的源码编译,案例运行,flink源码调试过程。调试flink的源码及案例,需要先clone工程,编一下源码,去掉规范检查,修改工程,最后才是调试运行。
1. clone工程
首先复制flink的github地址
git@github.com:apache/flink.git
接着在idea点击路径
File--->New--->Project from Version Control--->git
弹出窗口
把刚刚复制的flink的github地址粘贴到url输入栏,点击clone按钮,然后等待构建完成,工程有点大需要点时间。
工程clone完成之后,可以在idea 的右下角切换到自己所用的分支,我的分支是1.6.
切换完成之后,分支显示为:
2. 编译源码
源码编译可以直接用idea的maven插件。
报错如下:
修改一下根目录下的pom.xml文件
去掉代码风格检查,注释掉这个的主要原因是我们要改源码,不注释掉无法编译通过。
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-checkstyle-plugin</artifactId> <version>2.17</version> <dependencies> <dependency> <groupId>com.puppycrawl.tools</groupId> <artifactId>checkstyle</artifactId> <!-- Note: match version with docs/internals/ide_setup.md --> <version>8.4</version> </dependency> </dependencies> <executions> <execution> <id>validate</id> <phase>validate</phase> <goals> <goal>check</goal> </goals> </execution> </executions> <configuration> <suppressionsLocation>/tools/maven/suppressions.xml</suppressionsLocation> <includeTestSourceDirectory>true</includeTestSourceDirectory> <configLocation>/tools/maven/checkstyle.xml</configLocation> <logViolationsToConsole>true</logViolationsToConsole> <failOnViolation>true</failOnViolation> </configuration> </plugin>
再次编译,即可。
3. 运行kafka案例
点开工程栏,找到flink-examples模块,然后找到kafka案例,如下:
将kafka的example修改为可运行的案例,官方demo是通过打包提交到集群的方式运行,需要传参的,而我们直接在idea中运行,不需要穿参数。代码修改如下:
Properties props = new Properties(); props.put("bootstrap.servers", "mt-mdh.local:9093"); props.put("zookeeper.connect","localhost:2181"); props.put("group.id","test"); props.put("metadata.fetch.timeout.ms","10000"); props.put("metadata.max.age.ms","30000"); StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment(); env.getConfig().disableSysoutLogging(); env.getConfig().setRestartStrategy(RestartStrategies.fixedDelayRestart(4, 10000)); env.enableCheckpointing(5000); // create a checkpoint every 5 seconds env.setStreamTimeCharacteristic(TimeCharacteristic.EventTime); DataStream<KafkaEvent> input = env .addSource( new FlinkKafkaConsumer010<>( "", new KafkaEventSchema(), props) .assignTimestampsAndWatermarks(new CustomWatermarkExtractor())) .keyBy("word") .map(new RollingAdditionMapper()); input.addSink( new FlinkKafkaProducer010<>( "bar", new KafkaEventSchema(), props)); env.execute("Kafka 0.10 Example");
然后,右键,run。发现,并不能顺心如意的运行,还是报了一堆错误。。。
实际上,只需要改一些run的运行配置即可避免该错误。
在导航栏,run---> Edit Configurations
修改为
再运行,就ok了。
关于debug,只要run运行成功之后,直接可以debug的。。。
flink的源码调试debug及阅读经验,敬请期待后续,文章,也可以点击原文阅读加入浪尖知识星球。
推荐阅读:
点赞,然后分享给小伙伴吧~
以上所述就是小编给大家介绍的《调试 Flink 源码》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- Golang源码探索(一) 编译和调试源码
- 使用gdb调试工具上手调试php和swoole源码
- JVM源码分析-JVM源码编译与调试
- Node.js 源码调试
- 如何断点调试Tomcat源码
- Skywalking流程简析及源码调试
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。