Apache Flink的开发环境

对于Flink的开发,在Linux mac 以及Windows上都可以进行,但是Unix类型的系统往往具有最丰富的工具支持

而无论什么环境,Flink代码都需要JDK的支持,在开发的时候,最好也准备好Maven来进行架构管理

以及一个趁手的IDE

我们尝试导入一个项目进入IDE中

git clone https://github.com/streaming-with-flink/examples-scala

并在IDE中,选择File -> New -> Project from Existing Source

然后勾选上 Import project from external model 以及 Maven

然后运行的时候,直接选择main方法启动即可

而这个时候, main方法会将Dataflow组装好,然后在StreamExecutionEnviroment.execute()方法被调用的时候提交到远程的JobMananger上

JobManager会将执行的任务分配给一个或者多个TaskManager上

当然在本地运行的时候,JVM会以独立线程的方式启动JobManager和TaskManager,至于TaskManager的Slot 则是等于CPU的线程数,这样做到本地测试Flink应用.

而在本地测试Flink的时候需要注意几点

除非手动制定了并行度,那么任务线程数可能和你的CPU个数一样多

把Flink程序发给JobManager执行相比,本地执行可能出现类加载的问题

虽然是本地JVM,但是还是存在跨线程通信问题.记录还是要被序列化.

至于如何创建Flink Maven项目,则可以打开终端输入如下命令进行创建一个Flink项目

mvn archetype:generate -DarchetypeGroupld=org.apache.flink -DarchetypeArtifactld=flink-test  -DarchetypeVersion=l.7.1 -Dgroupld=flink.quickstart -Dartifactld=flink-scala-project -Dversion=0.1   -Dpackage=org.apache.flink.quickstart

这样就会创建一个包含BatchJob和StreamingJob的项目

发表评论

邮箱地址不会被公开。 必填项已用*标注