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

Flink部署及集群(高可用)

程序员文章站 2022-06-17 09:36:15
...

Flink部署

1、下载

官网下载地址:http://flink.apache.org/downloads.html。

HDP集群hadoop3.1,scala:2.11,选择flink-1.10.0-bin-scala_2.11.tgz

2、解压

tar -zxvf flink-1.10.0-bin-scala_2.11.tgz

Flink部署及集群(高可用)

3、启动Flink

进入bin目录:cd /usr/flink/flink-1.10.0/bin
启动flink:./start-cluster.sh

启动成功如下:jps可以看到StandaloneSessionClusterEntrypoint在运行说明成功!
Flink部署及集群(高可用)

3、开放端口8081

vi /etc/sysconfig/iptables

-A INPUT -m state --state NEW -m tcp -p tcp --dport 8081 -j ACCEPT

Flink部署及集群(高可用)

4、访问ui界面

输入10.34.11.142:8081
Flink部署及集群(高可用)

5、测试

打开3个会话

  1. 第一个,启动监听客户端端口
输入: nc -lk 8888  
## 注意:端口可以自己定

Flink部署及集群(高可用)

  1. 第二个,启动flink的自带demo
##切换到flink安装目录下
cd /usr/flink/flink-1.10.0/
##启动程序,注意:端口号跟第一个端口一致
bin/flink run examples/streaming/SocketWindowWordCount.jar --port 8888

Flink部署及集群(高可用)

  1. 第三个,启动日志监控
#其中.out文件会根据服务器名称自己变化
tail -f flink-root-taskexecutor-0-hdp-s-2.data.dc.zjft.com.out
在第一个会话输入
zijin
aa
日志可以监控到

Flink部署及集群(高可用)

6、ui界面信息

Flink部署及集群(高可用)

Flink集群配置

1、资源分配:

master节点:hdp-m-1.data.dc.zjft.com(10.34.11.70)

slave节点:hdp-s-2.data.dc.zjft.com(10.34.11.142), hdp-s-1.data.dc.zjft.com(10.34.11.154)

2、配置flink-conf.yaml文件

(因不上hdp,所以高可用及zookeeper,yarn等配置没配)
三个节点一样

# 配置主节点(即配置master节点)
jobmanager.rpc.address: hdp-m-1.data.dc.zjft.com

#jobmanager内存大小
jobmanager.heap.size: 4096m

#taskmanager内存大小
taskmanager.memory.process.size: 4096m

#配置task任务槽数
taskmanager.numberOfTaskSlots: 4

#设置并行数,就是是集群总核数
parallelism.default: 16

#web ui端口
rest.port: 8899

3、配置masters文件

三个节点一样

#有多个master可以加多个,记得端口带上,和flink-conf.yaml配置的要一样,删掉本来masters配置文件中的localhost:8081
hdp-m-1.data.dc.zjft.com:8899

4、配置slaves文件

三个节点一样

#将子节点的ip或者域名加上
hdp-s-1.data.dc.zjft.com
hdp-s-2.data.dc.zjft.com

5、开放8899端口

只要设置master节点

vi /etc/stsconfig/iptables

#加入下面这句
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8899 -j ACCEPT

Flink部署及集群(高可用)

6、启动测试

只在master节点启动

cd /usr/flink/flink-1.10.0/bin
./start-cluster.sh

Flink部署及集群(高可用)

Flink实现JobManager High Availability (HA)

修改配置文件

# 进入 flink 配置目录,并修改 flink-conf.yaml
cd /usr/flink/flink-1.10.0/conf
vi flink-conf.yaml

# 添加下列配置
high-availability: zookeeper
high-availability.zookeeper.path.root: /flink
high-availability.cluster-id: /cluster_one
high-availability.storageDir: file:///flink/recovery
high-availability.zookeeper.quorum: 10.34.11.124:2181,10.34.11.70:2181,10.34.11.133:2181

# 修改 masters
vi masters

# 添加下列配置
10.34.11.70:8899
10.34.11.154:8899

# 修改 zoo.cfg
vi zoo.cfg

# 添加下列配置
server.1=hdp-e-1.data.dc.zjft.com:2888:3888
server.2=hdp-m-1.data.dc.zjft.com:2888:3888
server.3=hdp-m-2.data.dc.zjft.com:2888:3888

# 将配置分发到各个节点
scp flink-conf.yaml,masters,zoo.cfg aaa@qq.com:/usr/flink/flink-1.10.0/conf
scp flink-conf.yaml,masters,zoo.cfg aaa@qq.com:/usr/flink/flink-1.10.0/conf

启动 flink

# 启动 flink 之前要确保 zookeeper 启动正常,再启动flink
cd /usr/flink/flink-1.10.0/conf
start-cluster.sh

Flink部署及集群(高可用)
可以看到,启动了两个 standalonesession 进程,也就是两个 jobmanager 进程

测试高可用是否生效

# 在 zookeeper 中查看哪个进程是 leader
cd /usr/hdp/3.1.0.0-78/zookeeper/bin
./zkCli.sh
get /flink/cluster_one/leader/rest_server_lock

Flink部署及集群(高可用)
可以看到 10.34.11.70:8899 为 leader

# 访问 leader 节点,在浏览器输入以下网址可以看到正常访问 flink 的 UI 界面
10.34.11.70:8899

# 模拟宕机情况,测试是否能切换,在 leader 节点中输入下面命令,查看 standalonesession 的进程 PID
jps

Flink部署及集群(高可用)

# 杀死进程,后面的数字为进程的 PID
kill -9 22519

# 执行成功之后需要等待一会,因为切换需要时间,然后在 zookeeper 客户端中查看 leader 节点信息
get /flink/cluster_one/leader/rest_server_lock

Flink部署及集群(高可用)
可以看到 leader 节点从 70 切换到了 154,切换成功,浏览器访问10.34.11.154:8899,即可看到 flink UI 界面。

问题集

1、启动Flink报错:

Please specify JAVA_HOME. Either in Flink config ./conf/flink-conf.yaml or as system-wide JAVA_HOME.

Flink部署及集群(高可用)

方法:在/etc/profile下配置JAVA_HOME环境变量

Flink部署及集群(高可用)