一、服务搭建
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部分:
5.修改文件/flink/conf/masters
masters文件中存放的是JobManager的主节点信息。Standalone模式无需修改,当前节点就是master节点。
localhost:8081 |
6.启动服务
进入/flink/bin目录,执行启动脚本start-cluster.sh。停止脚本:stop-cluster.sh。
通过命令jps可以查看已启动的flink服务。
启动成功,则可以通过访问服务器的8081端口查看节点详情及配置信息。
二、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端口的输入统计单词),并设置入口类和相关参数等,提交执行即可。
提交成功,会进入任务的实时监控页面。
通过Task Managers的Stdout页,可以看到实时的结果输出。
在Overview页面可以看到正在运行的任务。
如果要停止任务,则通过Running Jobs找到要停止的任务,进入任务详情页,点击cancle按钮即可。