1、standalone模式搭建

standalone模式是Flink自带的分布式集群模式,不依赖其他的资源调度框架;

这里使用三台主机搭建,86可以免密登录到88、89:

172.17.28.86   cs-28-86
172.17.28.88   cs-28-88
172.17.28.89   cs-28-89

image.png

  • 上传flink安装包到Linux服务器上

  • 解压flink安装包

[root@cs-28-86 ~]# cd /data/wym
[root@cs-28-86 ~]# tar zxf flink-1.12.0-bin-scala_2.12.tgz

  • 修改conf目录下的flink-conf.yaml配置文件

#指定jobmanager的地址
jobmanager.rpc.address: cs-28-86

#指定taskmanager的可用槽位的数量,一般配为逻辑cpu核数或核数的2倍
taskmanager.numberOfTaskSlots: 2

  • 修改conf目录下的workers配置文件,指定taskmanager的所在节点,这里86没有使用:

[root@cs-28-86 flink-1.12.0]# cat conf/workers
cs-28-88
cs-28-89

  • 将配置好的Flink拷贝到其他节点的相同目录下

scp -r flink-1.12.0 cs-28-88:/data/wym/
scp -r flink-1.12.0 cs-28-89:/data/wym/

2、 启动flink集群和检测

  • 执行启动脚本

[root@cs-28-86 flink-1.12.0]# ./bin/start-cluster.sh
  • 执行jps命令查看Java进程

复制代码

[root@cs-28-86 flink-1.12.0]# jps |grep StandaloneSessionClusterEntrypoint
15908 StandaloneSessionClusterEntrypoint

[root@cs-28-88 ~]# jps |grep TaskManagerRunner
32151 TaskManagerRunner

[root@cs-28-89 ~]# jps |grep TaskManagerRunner
14770 TaskManagerRunner

复制代码

在172.17.28.86上可用看见StandaloneSessionClusterEntrypoint进程即JobManager,在其他的节点上可用看见到TaskManagerRunner 即TaskManager

  • 访问JobManager的web管理界面,端口8081

172.17.28.86:8081

image.png

3、 提交Flink任务

第①步:获取案例jar包,启动nc

获取案例jar包到本地:

image.png

在指定的节点上先启动一个socket端口服务,这里可以使用nc,如果没有可以使用 yum install -y nc 安装,我这里是在172.17.28.86节点上启动的;

nc -lk 8888

image.png

  • 第一种方式:通过web页面提交

第②步:方法jobManager所在节点的8081端口,点击Submint New Job

image.png

第③步:点击Add New 上传Jar包,这个示例jar包在官方给的example目录下

image.png

第④步:设置参数并点击Submit提交

image.png

image.png

此时在nc窗口中输入一些内容:

image.png

然后去页面中看计算结果:

image.png

测试完成,此时去停掉任务:

在Running Jobs中点击具体的任务,然后点Cancel Job(选OK)

image.png

此时资源已释放:

image.png

  • 第二种方式:使用命令行提交

bin/flink run -m cs-28-86:8081 -p 4 -c org.apache.flink.streaming.examples.socket.SocketWindowWordCount jar包 --hostname cs-28-86 --port 8888

参数说明:

-m 指定主机名后面的端口为JobManager的REST的端口,而不是RPC的端口,RPC通信端口是6123

-p  指定是并行度(Slots)

-c  指定main方法的全类名

在88上提交,提交完以后这个窗口可以关掉,因为任务已经提交到集群运行了:

image.png

出现了一个CliFrontend进程:

image.png

第⑤步:查看执行信息

image.png

第⑥步:在启动nc服务的节点上输入一下测试数据

image.png

第⑦步:查看执行结果

image.png

在点击Stdout查看打印的结果

image.png

转自:https://www.cnblogs.com/weiyiming007/p/15831203.html