文章目录
前言
通过idea编写flink工程,并且导出可执行jar,上传到flink执行的过程,请大家参考。
提示:以下是本篇文章正文内容,下面案例可供参考
一、flink下载安装
1.1、flink下载
笔者使用当前稳定版本中最新的版本1.12.0。1.12.0下载地址.
如果需要下载其他版本请到官方下载地址。
[root@localhost tools]# ls
flink-1.12.0-bin-scala_2.12.tgz
通过tar zxvf flink-1.12.0-bin-scala_2.12.tgz
命令进行解压。
查看flink目录信息
[root@localhost flink]# cd flink-1.12.0/
[root@localhost flink-1.12.0]# ls
bin conf examples lib LICENSE licenses log NOTICE opt plugins README.txt
- bin flink的各种指令
- examples flink提供的一些例子
- lib默认依赖的包
1.2、flink启动
flink启动需要有java支持。需提前安装好 Java 8 或者 Java 11。通过java -version
查看。
启动本地集群
$ ./bin/start-cluster.sh
Starting cluster.
Starting standalonesession daemon on host.
Starting taskexecutor daemon on host.
执行作业
./bin/flink run examples/streaming/WordCount.jar
停止集群
./bin/stop-cluster.sh
二、idea导出jar
2.1普通工程导出
2.2 maven导出可执行jar
随着外部jar越来越多,使用maven打包可执行的jar。pom文件中添加如下,只需要配置主程序入口即可。
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.1.1</version>
<configuration>
<appendAssemblyId>false</appendAssemblyId>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<!-- 主程序入口类 -->
<mainClass>com.test.WordCount</mainClass>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
通过mvn install
即可打包。
打包时有的jar在集群中是自带的,不需要加入jar,可以通过修改scope为provided。
例如:
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-streaming-java_2.12</artifactId>
<version>1.10.1</version>
<scope>provided</scope>
</dependency>
三、 上传
3.1 管理页面上传
首先启动flink,启动成功之后能成功进入flink管理页面,可通过管理页面更加简便的上传。管理页面默认端口8081
。
3.2、命令启动
通过flink命令也可以启动jar。例如:./bin/flink run examples/streaming/WordCount.jar
。
-c
指定入口类-p
指定并行度
启动成功即可通过 ./bin/flink list
查看当前运行的任务。
[root@localhost flink-1.12.0]# ./bin/flink list
Waiting for response...
------------------ Running/Restarting Jobs -------------------
19.11.2020 03:32:40 : c0ddce86f7d95d9a3bc83ba91b51b024 : Flink Streaming Job (RUNNING)
通过 ./bin/flink cancel {jobId}
关闭任务,jobId是列表中那一串乱码c0ddce86f7d95d9a3bc83ba91b51b024。