1、服务器部署
主机名配置(集群服务器,执行相同操作)
登录root用户
执行
vi /etc/hosts
将集群服务器中所有的IP地址进行配置,例如:
192.168.0.1 appserver1
192.168.0.2 appserver2
备注:部署集群时一定注意集群服务器的IP顺序一定是:
192.168.0.1 appserver1 在前
192.168.0.2 appserver2 在后
不然配置完成后,只能启动顺序正确的服务器。
执行
vi /etc.sysconfig/network
将当前主机名进行配置,例如:
当前主机名是:appserver1
HOSTNAME=appserver1
2、创建flink用户
groupadd -g 500 flink
useradd -d /home/flink -s /bin/bash -g flink -u 500 -m flink
passswd flink
创建一个用户名密码都为flink的用户。
3、将集群服务器进行SSH免密配置
登录flink用户
ssh-keygen -t rsa (回车四次)
cd ~/.ssh 查看id_rsa(私钥)和id_pub(公钥)
上述操作,在每一个flink集群服务器全部操作一遍
每一台服务器,执行:
ssh-copy-id 192.168.0.2 (集群内其他服务器的IP地址)
尝试免密登录 ssh 目标IP地址
4、部署安装包
可以在flink官网上下载
在Apache Flink: Downloadshttps://flink.apache.org/downloads.html
下载spring、ojdbc、durid、mysql-connector所需要的第三方扩展jar
将下载的flink-1.11.6-bin-scala_2.12.tar文件上传至服务器
通过FTP工具上传文件
上传至/home/flink文件夹下
解压下载的flink压缩包解压命令
tar -zxvf flink-1.11.6-bin-scala_2.12.tar
创建临时目录
登录flink用户后,创建存放JOB的临时文件目录和临时文件目录tmp
mkidr jobs
mkdir tmp
4、standlone部署
修改flink-conf.yaml
路径:/home/flink/flinkflink-1.11.6-bin-scala_2.12/conf
打开配置文件
vi flink-conf.yaml
按照下面参数进行配置:
#配置主机名(JOBMANAGER的主机名,例如:appserver1,即appserver1 为主节点)
jobmanager.rpc.address: appserver1
#RPC端口(默认不改变)
jobmanager.rpc.port: 6123
#REST端口(console控制台与微服务调用时访问的端口)
rest.port:8081
#taskmanager所能提供的slots数量,一般设置成和机器逻辑CPU核数一致
#供参考:cat /proc/cpuinfo|grep "processor"| wc -1
taskmanager.number0fTaskSlots: 16
#默认任务并行度
parallelism.default: 4
#上传jar文件所在临时目录 默认在/tmp会被系统定时清理
io.tmp.dirs: /home/flink/flinkflink-1.11.6-bin-scala_2.12/jobs
#参数调度,调度Task时均匀调度内个 TaskManager 中,这有利于使用所有的资源
cluster.evenly-spread-out-slots:true
#默认全局重试,需打开region 重试才能enable 单点的failover
jobmanager.execution.failover-strategy:region
#重试策略需要手动设置,默认是不重试的
restar-startegay:fixed-delay
#Shuffle read 使用 mmap 的方式,直接靠系统来管理内存,是比较方便的形式
taskmanager.network.blocking-shffle.type: mmap
#使用压缩,这个参数是批流复用的,强烈建议给批作业开启压缩,不然瓶颈就会在磁盘上
taskmanager.network.blocking-shffle.comression.enabled: true
#JOB管理JVM堆内存 jobmanager.heap.size: 4096m (1.11版本后已经废弃,需要删除或者注释)
jobmanager.memory.flink.size: 2048m(standlone模式启用)
#TASK管理器JVM堆内存的总大小(包括堆内内存与托管内存)flink总内存
taskmanager.memory.flink.size: 4096m(standlone模式启用)
#托管内存(批处理排序需要使用,size与fraction二选一)
taskmanager.memory.managed.size:2024m(明确托管内存大小)
taskmanager.memory.managed.fraction: 0.4(托管内存占flink总内存数量)
#Task点到点的通信需要4个Buffers,根据并发大概计算得出需要2GB
taskmanager.memory.network.max: 2000m
修改masters
配置Jobmanager服务器
如果appserver1 服务器作为flink的Jobmanager服务器,配置如下:
路径:/home/flink/flinkflink-1.11.6-bin-scala_2.12/conf
vi masters
#添加一下内容:
appserver1
修改slaves
配置taskmanager服务器列表
路径:/home/flink/flinkflink-1.11.6-bin-scala_2.12/conf
vi slaves
#添加一下内容:
appserver1
appserver2
工程复制
Standlone集群下,为保证所有的节点下flink配置相同,采用复制的方式,从已经配置好的服务器,向其他集群服务器进行复制同步。
例如:appserver1 向appserver2 服务器同步
scp -r /home/flink/flinkflink-1.11.6-bin-scala_2.12 appserver2:/home/flink
启动flink
可以在集群下任意系统上启动
在/home/flink/flinkflink-1.11.6-bin-scala_2.12/bin
./start-cluster.sh
检查启动情况
jps
检查是否存在StandaloneSessionClusterEntrypoint和TaskManagerRunner
在其他服务器上
jps
检查是否存在TaskManagerRunner
停止flink
可以在任意系统上启动
./stop-cluster.sh
版权归原作者 是谁在轮椅上飞行?是我! 所有, 如有侵权,请联系我们删除。