欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

flink集群的搭建

程序员文章站 2024-02-23 16:01:04
...

今天我们来说一下flink,大家可能对flink还不是特别的熟悉,其实它是一个很早的项目,只是在2016年的时候才被大家所注意到,现在已经被很多公司所使用,作为一个后起之秀,或者说流计算的新贵,为什么它能得到大家的认可呢,Flink把批处理当作流处理中的一种特殊情况.在Flink中,所有的数据都看作流.这是一个很好的抽象.再加上它完善的checkpoint机制,使得它对状态的管理非常的细致.所以能够脱颖而出,相信在阿里这个巨人的肩膀上,它会很快火起来的.那我们今天就来玩一下flink,先从最基本的搭建flink集群开始吧.

1.Flink独立集群模式安装(Cluster Standalone)

(1),JDK的配置和各个机器之间的免密我就不说了,网上随便一搜一大堆.

(2),解压包:  tar -zxvf flink-1.6.0-bin-hadoop28-scala_2.11.tgz 

(3),配置conf/flink-conf.yaml文件,如下所示:

#Jobmanager的IP地址,即master地址。
jobmanager.rpc.address: master  

#每一个TaskManager的堆大小(单位是MB),由于每个taskmanager要运行operator的各种函数(Map、Reduce、CoGroup等,包含sorting、hashing、caching),因此这个值应该尽可能的大。如果集群仅仅跑Flink的程序,建议此值等于机器的内存大小减去1、2G,剩余的1、2GB用于操作系统。如果是Yarn模式,这个值通过指定tm参数来分配给container,同样要减去操作系统可以容忍的大小(1、2GB)。
taskmanager.heap.size: 1024

#每个TaskManager的并行度。一个slot对应一个core,默认值是1.一个并行度对应一个线程。总的内存大小要且分给不同的线程使用。
#taskmanager.numberOfTaskSlots: 4

#每个operator的默认并行度。默认是1.如果程序中对operator设置了setParallelism,或者提交程序时指定了-p参数,则会覆盖此参数。如果只有一个Job运行时,此值可以设置为taskManager的数量 * 每个taskManager的slots数量。即NumTaskManagers  * NumSlotsPerTaskManager 。
#parallelism.default: 8

#临时目录
taskmanager.tmp.dirs: /tmp

#JobManager的堆大小(单位是MB)。当长时间运行operator非常多的程序时,需要增加此值。具体设置多少只能通过测试不断调整。	
jobmanager.heap.size: 1024

#jobmanager.web.port: 8081

#JobMamanger的端口,默认是6123。
jobmanager.rpc.port: 6123

#HA的配置
#recovery.mode: zookeeper
#recovery.zookeeper.quorum: master:2181,storm1:2181,storm2:2181
classloader.resolve-order: parent-first

配置这些就可以了(注意: 后面一定要用空格分开)

(4),配置slaves,把子节点的ip地址或者hostname写上:

slave1

slave2

(5),把在master上配置好的,文件夹发送到各个worker节点上.

scp -r flink aaa@qq.com:/home/jason/bigdata/

(6),Flink集群搭建完成,可以启动了,直接在bin下./start-cluster.sh, 在master节点上运行下面的脚本,那么这台机器上将会启动一个JobManager,并通过SSH连接列在slaves文件中的所有节点以便在每个节点上启动TaskManager

(7),停止flink集群,直接在master节点运行bin/stop-cluster.sh

(8),web界面输入:master:8081就可以看到了,如下图所以:

flink集群的搭建

到这里flink的Standalone模式集群就搭建好了,看惯了spark的ui,看flink的还有点不太习惯.先介绍到这儿,后面会有代码demo.请大家接着看.

如果有写的不对的地方,欢迎大家指正,如果有什么疑问,可以加QQ群:340297350,谢谢