flink部署(flink部署模式区别)
本篇文章给大家谈谈flink部署,以及flink部署模式区别对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、flink实战教程-集群的部署
- 2、Flink1.8 集群搭建完全指南(1):Hadoop伪分布式
- 3、Flink集群部署模式
- 4、Flink的local模式部署安装
- 5、Flink提交任务部署的两种方式
flink实战教程-集群的部署
这种模式我们一般是在用IDE调试程序的时候用到,当我们在本地用IDE开发程序的时候,执行main方法,flink会在本地启动一个包含jobmanager和taskmanager的进程的minicluster,程序运行完成之后,这个cluster进程退出。
这种模式就是直接在物理机上启动flink集群。我们可以通过 {FLINK_HOME}/conf/flink-conf.yaml.
此外,我们可以用 ${FLINK_HOME}/bin/taskmanager.sh start 再启动一个taskmanager。
这时我们通过jps命令查看一下启动的进程
我们看到这时候启动了两个taskmanager
这种部署模式对flink集群的资源管理是flink自己维护的,在生产环境下用的不多,所以我们也不做过多描述.
启动集群的命令如下:
这个命令有很多的参数,可以在后面加 -h 看下,我这里着重介绍一下 -d参数。
加上知昌腔-d之后,指的是隔离模式,也就是启动之后和客户端就断了联系,如果要停止集群,需要通过yarn application -kill {applicationId} 来停止集群.
提交成功之后,我们会在yarn的管理页面看到一个类似的任务
这个启动命令也有很多的参数,我就不一一讲解了,我用大白话讲讲我认为最核心的几个参数。
第二,通过命令行来停止:
这个时候需要指定迅团yarn applicationId和flink job id
第三,通过程序来停止
如果我们做了一个实时平台这样的系搭衫统,就不能手工通过命令行来停止了,可以调用相应的api来停止任务.
这种模式是在flink 1.11 版本中提供的,flink的yarn per job模式启动的时候会把本地的flink的jar和用户的jar都上传到hdfs,这个过程非常的消耗网络的带宽,如果同时有多个人提交任务的话,那么对网络的影响就更大,此外,每次提交任务的时候flink的jar包是一样的,也不用每次都拷来拷去的,所以flink提供了一种新的application模式,可以把flink的jar和用户的jar都预先放到hdfs上,这样就能省去yarn per job模式提交任务的jar包拷贝工作,节省了带宽,加快了提交任务的速度.
具体的命令如下:
-yD yarn.provided.lib.dirs :用来指定存放flink jar的目录
最后一个参数是用户的jar在hdfs上的路径.
说一下题外话,其实我们当时在做实时平台的时候,这个提交慢的问题我也发现了,当时我的想法是先启动一个flink集群,然后再把程序的JobGraph提交到这个yarn集群,不过后来嘛,由于 * %%$$# ^ 的原因,也没弄.
对于把服务容器化,也越来越成为一种趋势,所以k8s部署也越来越受大家的重视。 对于k8s部署flink这块说实话我研究的不是很深,也就不多说了。
我们还可以将程序部署到mesos或者使用docker,这个我没有去实际调研过,但是从flink的邮件列表大家沟通的问题或者是网上查到的资料看,这种模式部署应该不多,所以这里就不详细描述了。
[img]Flink1.8 集群搭建完全指南(1):Hadoop伪分布式
Flink是目前在国内非常流行的大数据的计算框架,其设计理念可以完美的实现数据的批流计算一体化。Flink的集群,如果要使用到JobManager的HA,以及Yarn的资源调度的话,整体的部署过程还是比较复杂的。本系列文章将完整介绍Hadoop,Kerberos,SASL,Yarn,以及Flink集群的搭建过程,一步步完成整个系统环境的部署。
Hadoop的HDFS在Flink中用作JobManager的HA,Yarn可以用于Flink任务的资源调度,因此是必不可少的。下面我们先搭建好一个Hadoop的集群。
对于一些不熟悉Hadoop集群的搭建的同学,我们先来看下伪分布式集群的搭建,可以快速的熟悉简化的配置过程衫锋,以及Hadoop的各配置文件等。
以下是我用于部署锋纳该服务的机器:
在伪分布式集群中,所有的服务都在同一节点启动,但它们之间也同样通过ssh的方式访问,所以需要配置ssh免密码登录,配置的方式如下:
测试以下命令,成功跳转即可:
在集群搭建完成后,可以运行Hadoop的示例任务,检查集群是否能够正常工作,命令如下:
该程序会打印PI的值,则执行成功。在Yarn的Web页面,可以看到有一个成功的Application。
下一节我们会介绍Hadoop的分布式集群,银塌没Kerberos和SASL等的部署。
Flink集群部署模式
根据集群的生命周期、资源隔离方式和应用程序的main()方法执行位置(client或者JobManager)可以将集群部署模式分为:Flink Session Cluster(session mode)、Flink Job Cluster(per-job mode) 和Flink Application Cluster(application mode)三类。
Flink Session Cluster集群部署模式也称为session mode。该模式集群会预先启动、长时间运行,并且能够接收多个job提交运巧稿行。也就是提交到集群的job共享一套flink runtime cluster(JobManager和TaskManager)。
该模式特点如下:
Flink Job Cluster集群部署模式又称为per-job mode。该模式与Job绑定,集群管理器会为每个Job启动一个flink runtime cluster(JobManager和TaskManager)。Client会首先向集群管理器请求资源来启动JobManager,并将job提交给其内部的Dispatcher,TaskManager根据job的资源请求延迟分配差宽余启动的。
该模式特点如下:
NOTE: Flink Job Cluster模式不支持部署在Kubernetes上。
Flink Application Cluster集群部署模式又称为Application mode。该模式集群属于专属集群模式,只会执行一个Flink Application中的job,集群管理器为虚滚每个Flink Application启动一个flink runtime cluster(JobManager和TaskManager)。并且应用程序的main方法是运行在Cluster中,而不是client上。
该模式可以看做是对per-job模式和session模式的优化部署模式。集群执行job粒度上,相较前两者找到了更好的一个隔离点,并且减轻了Client的负载。
该模式特点如下:
Flink的local模式部署安装
在local模式下,不需要启动任何的进程,仅仅是使用本地线程来模拟flink的进程,适用于测试开发调试等,这种模式下,不用更改任何配置,只需要保证jdk8安装正举高常即可
将我们编译之后的压缩包,上传到node01服务器的/kkb/soft路径下,然后进行解压
cd /kkb/soft/
tar -zxf flink-1.8.1.tar.gz -C /kkb/install/
flink在处于local模式下,不需要更改任何配置,直接解压之后启动即可
执行以下命令直接启动local模式
cd /kkb/install/flink-1.8.1
bin/start-cluster.sh
启动成功之后,执行jps就能查看到正亮尺启动了两个进程
18180 StandaloneSessionClusterEntrypoint
18614 TaskManagerRunner
启动两个进程成功之后,访问8081端口号即可访问到flink的web管理界面
node01使用linux的nc命令来向socket当中发送一些单词
sudo yum -y install nc
nc -lk 9000
node01启动flink的自带的单词统计程序,接受输入的socket数据并进行统计
cd /kkb/install/flink-1.8.1
bin/flink run examples/streaming/SocketWindowWordCount.jar --hostname localhost --port 9000
查看统计结果:
flink自带的测试用例统计结果在log文件夹下面
node01执行以下命令查看统计结果
cd /kkb/install/flink-1.8.1/log
tail -200f flink-hadoop-taskexecutor-0-node01.kaikeba.com.out
local模式运行成功之后,关闭local模式,我们接下来运行standAlone模式
cd /kkb/键备install/flink-1.8.1
bin/stop-cluster.sh
Flink提交任务部署的两种方式
把Flink的任务提交到Yarn两个部署模式,一个是 session模式,一个是per job模式。
在yarn上启动一个守护进程,用于启动多个job,即启动一个application master 用来管理族乱孝多个job
集群中的所有任务使用相陪册同的资源,如果集群挂掉得重启集群中的所有任务。
先启动一个集群
再提交任务
启动一个单独的job提交兆稿到yarn集群上,即单job单session,实现资源的完全隔离。生产一般建议使用per job模式。
每个任务启动一个flink集群,各个集群之间独立运行,互不影响,且每个集群可以设置独立的配置
提交命令
参数说明
关于flink部署和flink部署模式区别的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。