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
-
下载flink安装包,下载地址:https://flink.apache.org/downloads.html
-
上传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
3、 提交Flink任务
第①步:获取案例jar包,启动nc
获取案例jar包到本地:
在指定的节点上先启动一个socket端口服务,这里可以使用nc,如果没有可以使用 yum install -y nc 安装,我这里是在172.17.28.86节点上启动的;
nc -lk 8888
-
第一种方式:通过web页面提交
第②步:方法jobManager所在节点的8081端口,点击Submint New Job
第③步:点击Add New 上传Jar包,这个示例jar包在官方给的example目录下
第④步:设置参数并点击Submit提交
此时在nc窗口中输入一些内容:
然后去页面中看计算结果:
测试完成,此时去停掉任务:
在Running Jobs中点击具体的任务,然后点Cancel Job(选OK)
此时资源已释放:
-
第二种方式:使用命令行提交
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上提交,提交完以后这个窗口可以关掉,因为任务已经提交到集群运行了:
出现了一个CliFrontend进程:
第⑤步:查看执行信息
第⑥步:在启动nc服务的节点上输入一下测试数据
第⑦步:查看执行结果
在点击Stdout查看打印的结果
转自:https://www.cnblogs.com/weiyiming007/p/15831203.html