上QQ阅读APP看书,第一时间看更新
1.4 准备工作
本书不仅会对Flink各方面的内容进行概念性的介绍,还会更多地就源码的逻辑、设计思想等进行分析,读者可以在阅读本书的同时用调试源码的方式增强理解,也可以基于自己的理解对源码进行修改。因此,我强烈建议读者用IntelliJ IDEA来调试代码,并用Git进行版本控制,甚至可以在自己的代码仓库中不断地对Flink进行定制化开发。
通过git命令从代码仓库把Flink源码工程下载到本地后,切换到release-1.10.2,执行mvn clean install-DskipTests命令进行构建。构建完成后,在Flink-examples模块下分别找到Flink-examples- streaming、Flink-examples-batch、Flink-examples-table中的WordCount程序,如果程序能够运行成功,则可以开始后面的学习。
考虑到Flink是分布式计算引擎,在学习过程中很可能需要将作业部署到集群环境中执行,因此可以通过远程调试对各个进程中的代码进行追踪。Flink的远程调试主要指对JobManager和TaskManager进行调试,可以在Flink-conf.yaml文件中进行如下配置:
env.java.opts.jobmanager: "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005"
env.java.opts.taskmanager: "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5006"
在IntelliJ IDEA中,可以通过相应的IP地址和端口号进行调试。