Flink集群搭建

上一篇博客中主要是Flink的了解性知识以及如何使用在local Flink上跑一个程序,这篇博客我们主要介绍下Flink的standalone集群的搭建以及其基于ha 的一个搭建。对于flink的安装我默认你已经做好节点间的免秘钥以及各个节点关闭防火墙,jdk1.8的安装等操作,开始之前我先给大家介绍一款非常使用的软件,大家可以看下使用效果,喜欢的话可以下载着玩玩。

lrzsz--方便上传下载文件

安装方式也非常简单,如下

sudo yum install lrzsz

其中rz是上传命令,sz是下载命令,效果图如下:

 

 

Flink standalone

flink的安装步骤与hadoop的安装步骤相似,

主机名                   ip                     角色

master            192.168.1.150          master

slave2             192.168.1.151          slave

slave3             192.168.1.152          slave

slave4             192.168.1.153          slave

1.去官网选择合适的安装包(https://flink.apache.org/downloads.html),对于flink而言如果后续需要使用hadoop生态圈的成员,比如yarn,hdfs之类的那么就需要根据你安装的hadoop版本选择flink版本,如果不适用hadoop生态圈的话,可以随便下载。

我之前安装的hadoop版本是2.7.3所以选择 flink-1.7.2-bin-hadoop27-scala_2.11.tgz版进行下载。直接下载到本地,然后使用rz 命名把安装包上传到虚拟机上master节点上。

2.解压缩,我一般是把安装文件放置在/usr/local 目录下,使用解压命令

tar -zxvf  flink-1.7.2-bin-hadoop27-scala_2.11.tgz -C /usr/local

进入/usr/local/下,将改文件名改为flink,

mv  flink-***** flink

cd flink

ls   //查看文件

其中bin目录下的是flink集群的启停相关命令,conf的是flink的配置文件,examples放置的是一些小例子,上一篇中我们就运行了其中的wordcount程序。

3.修改配置文件

 cd conf

我们需要修改的是一些几个文件

vim flink-conf.yaml

其中jobmanager.rpc.address:master(master节点的名称)

对于masters文件因为此时不是基于高可用的所以此时不需要修改,只需要在slaves中加入slave节点即可,

4.至此配置结束,分发flink文件到slaves中记录的节点中

scp -r /usr/local/flink/ root@slave2:/usr/local

scp -r /usr/local/flink/ root@slave3:/usr/local

scp -r /usr/local/flink/ root@slave4:/usr/local

5.修改/etc/profile

再次分发/etc/profile文件

至此集群配置就已经结束,我们可以直接启动该集群了:

可以看到在四个节点的flink的集群已经启动了,我在访问下web端 

至此Flink 的Standalone 模式启动成功。

Flink Standalone ha

Jobmanager协调每个flink部署,他负责调度和资源管理,默认情况下,每个flink集群只有一个jonmanager实例,这会造成单点故障(SPOF),如果Jobmanager挂掉的话则无法提交新作业并且导致运行中作业失败。使用jobmanager的高可用性的模式可以避免这个问题,其原理是:搭建集群时有两个或以上的jobmanager,其中一个为active,其他的均为standby,当活动的节点不幸宕机那么,由zookeeper依据其自身的选举机制从standby 的节点中再次选举出一个active jobmanager。故Flink的高可用性是基于zookeeper的,安装zookeeper的教程可以参考网上其他教程。

相关配置描述

##基础配置

# jobManager 的IP地址

jobmanager.rpc.address: localhost

 

# JobManager 的端口号

jobmanager.rpc.port: 6123

 

# JobManager JVM heap 内存大小

jobmanager.heap.size: 1024m

 

# TaskManager JVM heap 内存大小

taskmanager.heap.size: 1024m

 

# 每个 TaskManager 提供的任务 slots 数量大小

 

taskmanager.numberOfTaskSlots: 1

 

# 程序默认并行计算的个数

parallelism.default: 1

 

# 文件系统来源

# fs.default-scheme

##高可用性配置

# 可以选择 'NONE' 或者 'zookeeper'.

# high-availability: zookeeper

 

# 文件系统路径,让 Flink 在高可用性设置中持久保存元数据

# high-availability.storageDir: hdfs://主机名:端口号/flink/ha/

 

# zookeeper 集群中仲裁者的机器 ip 和 port 端口号

# high-availability.zookeeper.quorum: localhost:2181

 

# 默认是 open,如果 zookeeper security 启用了该值会更改成 creator

# high-availability.zookeeper.client.acl: open

##容错和检查点

# 用于存储和检查点状态

# state.backend: filesystem

# 存储检查点的数据文件和元数据的默认目录

# state.checkpoints.dir: hdfs://namenode-host:port/flink-checkpoints

 

# savepoints 的默认目标目录(可选)

# state.savepoints.dir: hdfs://namenode-host:port/flink-checkpoints

 

# 用于启用/禁用增量 checkpoints 的标志

# state.backend.incremental: false

 

##web 前端配置

# 基于 Web 的运行时监视器侦听的地址.

#jobmanager.web.address: 0.0.0.0

#  Web 的运行时监视器端口

rest.port: 8081

 

# 是否从基于 Web 的 jobmanager 启用作业提交

# jobmanager.web.submit.enable: false

其他配置请查看官网。

再次修改配置文件,基于standalone模式下

修改masters

修改zoo.cfg

再次分发flink至各个节点。

先启动hadoop集群和zookeeper,在启动集群 start-cluster.sh

可以看到slave2节点中出现了两个进程。

测试:开始时master节点是active,kill -9 进程id 干掉master的jobmanager

在web端输入 slave2:8081,开始是报一个error,大致是没有选举出avtive节点,不断刷新后

再次启动master节点上的jobmanager节点 jobmanager.sh start

 

再web端输入master:8081自动跳转到slave2:8081,Flink ha 成功。

结束语

水平有限,博客依然有不足,很多该介绍的地方都一概而过,望见谅!!!!

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值