一、服务搭建

1. 下载安装包flink-1.8.0-bin-scala_2.12.tgz,本文选择的是1.8.0版本。下载地址:http://flink.apache.org/downloads.html

2.上传安装包至服务器的/usr/local/目录下,并使用以下命令解压至flink目录下:

tar zxvf flink-1.8.0-bin-scala_2.12.tgz

3.设置环境变量

export FLINK_HOME=/usr/local/flink

export PATH=PATH:FLINK_HOME/bin

可将以上两句添加至/etc/profile 中设置全局环境变量,并通过命令source /etc/profile使其生效

4.进入/flink/conf/目录,调优配置文件flink-conf.yaml:

以下是Standalone模式的参数调整:

#java_home

env.java.home:/usr/local/jdk1.8.0_172

 

#JobManager的地址

jobmanager.rpc.address: localhost

 

# JobManager JVM 堆大小

jobmanager.heap.size: 1024m

 

# TaskManager JVM 堆大小

taskmanager.heap.size: 1024m

 

# TaskManager 节点个数

taskmanager.numberOfTaskSlots: 2

如果是HA模式,则需要继续修改flink-conf.yaml中的High Availability部分:

flink架构角色 flink平台搭建_flink架构角色

5.修改文件/flink/conf/masters

masters文件中存放的是JobManager的主节点信息。Standalone模式无需修改,当前节点就是master节点。

localhost:8081

6.启动服务

进入/flink/bin目录,执行启动脚本start-cluster.sh。停止脚本:stop-cluster.sh。

flink架构角色 flink平台搭建_flink_02

通过命令jps可以查看已启动的flink服务。

启动成功,则可以通过访问服务器的8081端口查看节点详情及配置信息。

flink架构角色 flink平台搭建_上传_03

 

flink架构角色 flink平台搭建_jar包_04

 

二、Flink上传并运行作业

flink的作业都是通过jar包来执行的,在上传至flink之前,需要将自己的业务代码打包成jar包,且jar包中必须至少有1个入口类(包含main方法),如果一个jar包中有多个入口类,则运行时需要指定入口类。

运行作业的方式有两种:

(1)手动上传jar包至服务器,并通过flink run命令来运行;

#不指定入口类的启动方式,程序会自动寻址main方法,port为main方法中接收的参数

flink run SocketWindowWordCount.jar --port 9000

 

#指定入口类的启动方式,其中类名要带包路径,否则会报错找不到类,port为main方法中接收的参数

flink run -c com.flink.SocketWindowWordCount Flink-Sample-1.0.0.jar --port 9000

 

#以上示例是指监听TCP 9000端口作为输入,运行之前必须打开9000端口的TCP连接,否则启动失败

nc -l 9000 //开启端口为9000的TCP连接

(2)页面上传并执行。

进入菜单“Submit new Job”,上传要运行的jar包(此处上传的jar包是通过监听TCP 9000端口的输入统计单词),并设置入口类和相关参数等,提交执行即可。

flink架构角色 flink平台搭建_大数据_05

 

flink架构角色 flink平台搭建_flink架构角色_06

提交成功,会进入任务的实时监控页面。

flink架构角色 flink平台搭建_jar包_07

 

通过Task Managers的Stdout页,可以看到实时的结果输出。

flink架构角色 flink平台搭建_flink_08

 

在Overview页面可以看到正在运行的任务。

flink架构角色 flink平台搭建_jar包_09

 

如果要停止任务,则通过Running Jobs找到要停止的任务,进入任务详情页,点击cancle按钮即可。

flink架构角色 flink平台搭建_大数据_10