1、环境准备

JDK:建议使用 java_8u51 以上的java8 JDK,以避免使用 PowerMock Runner 的单元测试失败

maven:小白建议用3.2.5版本(Maven 3.3.x 可以构建 Flink,但是不能正确地屏蔽掉指定的依赖。Maven 3.2.5 可以正确地构建库文件) 安装方法这篇文章讲的很全。 

IDE:我用的idea 2021.2

安装后记得在IDEA上修改maven配置,修改为与你的实际设置一样,我的配置如下图

flink的java开发的相关依赖_flink的java开发的相关依赖

2、源码下载 

因为只有windows系统的电脑,安装虚拟机又比较慢,release-1.8版本支持windows启动,所以最终用了1.8版本,1.10、1.14版本在编译、运行中都碰到了非常多的问题,可能是因为太新,这个部分困扰了我四天。如果你也是在windows下使用,建议用1.8。

下载地址 https://github.com/apache/flink.git 记得下载完切换到release-1.8分支

3、导入IDEA(和4的顺序可以颠倒)

3.1 安装Scala

  • 转到 IntelliJ Settings → Plugins 并选择 “Marketplace”。
  • 选择并安装 “Scala” 插件。
  • 如果出现提示,请重启 IntelliJ。

3.2 导入Flink

  • 启动 IntelliJ IDEA 并选择 New → Project from Existing Sources。
  • 选择已克隆的 Flink 存储库的根文件夹。
  • 选择 “Import project from external model”,然后选择 “Maven”。
  • 保留默认选项,然后依次单击 “Next”,直到到达 SDK 部分。
  • 如果未列出 SDK,请使用左上角的 “+” 号创建一个。选择 “JDK”,选择 JDK 主目录,然后单击 “OK”。选择最合适的 JDK 版本。注意:此处应该是1.8版本。
  • 单击 “Next” 继续,直到完成导入。
  • 右键单击已导入的 Flink 项目 → Maven → Generate Sources and Update Folders。

4、编译源码

在IDEA terminal中使用如下命令, -DskipTests 用来跳过test,-Dfast用来加速

mvn clean install -DskipTests -Dfast

如果不幸出现了部分jar包无法下载,可能需要手动处理一下,详细见本文,文章里作者缺的是kafka-schema-registry-client-5.5.2.jar,你缺的jar包不一定在他给的地址里,可以在这里下载你需要的包,不是很好找,但是这网站里肯定有。

经过漫长的Build过程,如果出现 BUILD SUCESS 那么恭喜,编译成功。

编译出来的文件在 flink-dist

5、测试启动集群(standalone)

5.1 使用start-cluster.bat

找到 ~\flink-dist\src\main\flink-bin\bin\start-cluster.bat 双击即可启动job managertask manager,成功的话会出现两个java窗口,在浏览器测试一下 localhost:8081 如果WEB UI正常显示,那么恭喜,启动成功。

5.2 在IDEA中调试

5.2.1启动JobManager

JobManager的入口类在orgapache.flink.runtime.entrypoint.StandaloneSessionClusterEntrypoint ,main( )方法就在其中。点击Edit Configuration进行配置。

flink的java开发的相关依赖_大数据_02

flink的java开发的相关依赖_flink的java开发的相关依赖_03

添加Application 

flink的java开发的相关依赖_big data_04

 对上面几个地方进行设置,尤其是vm options和program arguments

我的vm potions设置如下
-Dlog4j.configuration=E:\github\flink\flink-dist\target\flink-1.8-SNAPSHOT-bin\flink-1.8-SNAPSHOT\conf\log4j-console.properties
-classpath
 E:\github\flink\flink-dist\target\flink-1.8-SNAPSHOT-bin\flink-1.8-SNAPSHOT\lib\*

我的 program arguments设置如下
--configDir
 E:\github\flink\flink-dist\target\flink-1.8-SNAPSHOT-bin\flink-1.8-SNAPSHOT\conf
 >
 E:\github\flink\flink-dist\src\main\flink-bin\log\task-log.out
 2>&1

照葫芦画瓢设置一下,把路径替换成你的路径


flink的java开发的相关依赖_flink_05

 点击绿色三角试一下,如果没有报错,WEB UI也能打开,那么就成功了

5.2.1启动TaskManager

Task Manager 的入口类在org.apache.flink.runtime.taskexecutor.TaskManagerRunner


flink的java开发的相关依赖_flink的java开发的相关依赖_06

和job manager进行一样的设置标题

完事也是按绿色三角跑一下,在WEB UI看看能不能连上task manager,记得一定要先启动job manager 再启动 task manager。