背景
最近开始抽空学习flink,这是一个实时流计算的框架
项目打包
先把任务项目打成jar包,在pom.xml文件里加入如下代码,添加打包插件
<plugin>
<groupId>net.alchim31.maven</groupId>
<artifactId>scala-maven-plugin</artifactId>
<version>3.4.6</version>
<executions>
<execution>
<goals>
<goal>testCompile</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.0.0</version>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
然后点击idea右面maven选项里项目名->Lifecycle下的package选项,进行打包,如下图所示。
完成后,在下面的控制台输出里,会有生成jar包的路径信息,如下图所示 其实就是工程目录下的target子目录,我们要用的就是带依赖(with-dependencies)的jar包,如下图所示
任务提交运行
先添加环境变量FLINK_CONF_DIR,指向flink的配置文件所在目录
然后打开cmd,运行以下命令启动集群
start-cluster
然后提交运行作业,给出入口类、并行度(可选)、jar包路径和运行参数,命令如下
flink run -c com.szc.WordCountStreaming -p 2 D:\develop\ideaWorkspace\flinkDemo\target\flinkDemo-1.0-jar-with-dependencies.jar --host 192.168.57.133
其中,-c表示入口类,-p表示并行度,后面的路径为jar包路径,路径后面是运行参数。
按下回车后,任务就在运行了。
任务取消
上面提交任务后,按Ctr-C是不能取消任务的。
我们需要先得到任务id,命令如下
flink list
在下面的输出中,3b....ec是任务id,可以用来取消任务。
再运行命令flink cancel jobId即可取消任务
flink cancel 3b049790665bf989f7dd6041a403fdec
运行完后,再执行flink list命令,就看不到在执行的任务了
结语
其实学习flink最好在类Linux环境下运行,因为flink在windows里可执行的文件就三个:flink.cmd、start-cluster.cmd和pyflink.bat。关闭集群只能把start-cluster弹出来的两个jar窗口关掉,而对应的sh文件在Cygwin下又不太好使。
但是我的windows已经配置了很多可能要用的环境, 我又嫌麻烦,所以就将就着吧,先学下来再说。