Flink快速部署集群,体验炸了!

📢📢📢📣📣📣
哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA及大数据工作经验
一位上进心十足的【大数据领域博主】!😜😜😜
中国DBA联盟(ACDU)成员,目前服务于工业互联网
擅长主流Oracle、MySQL、PG、高斯及Greenplum运维开发,备份恢复,安装迁移,性能优化、故障应急处理等。
✨ 如果有对【数据库】感兴趣的【小可爱】,欢迎关注【IT邦德】💞💞💞
❤️❤️❤️感谢各位大可爱小可爱!❤️❤️❤️

前言

Apache Flink 是一个框架和分布式处理引擎,用于在无边界和有边界数据流上进行有状态的计算。

📣 1.何为Flink?

Apache Flink 是一个框架和分布式处理引擎,
用于在无边界和有边界数据流上进行有状态的计算。
Flink 能在所有常见集群环境中运行,并能以内存速度和任意规模进行计算。
Flink并没有依靠自身实现所有分布式系统需要解决的问题,
而是在已有集群基础设施和服务之上专注于它的核心功能。

一个 Flink 集群总是包含一个 JobManager 以及一个或多个 Flink TaskManager。
JobManager 负责处理 Job 提交、 Job 监控以及资源管理。
Flink TaskManager 运行 worker 进程,
负责实际任务 Tasks 的执行,而这些任务共同组成了一个 Flink Job

官网:https://flink.apache.org/
安装包:https://flink.apache.org/downloads/

📣 2.关键组件

Flink搭建需要四个不同组件
1.作业管理器(JobManager)
控制一个应用程序执行的主进程,也就是说,每个应用程序都会被一个不同的 JobManager 所控制执行。

2.资源管理器(ResourceManager)
主要负责管理任务管理器(TaskManager)的插槽(slot),TaskManger 插槽是Flink中定义的处理资源单元。

3.任务管理器(TaskManager)
Flink中的工作进程。通常在Flink中会有多个TaskManager运行,每一个TaskManager都包含了一定数量的插槽(slots)。
插槽的数量限制了TaskManager能够执行的任务数量。

4.分发器(Dispatcher)
可以跨作业运行,它为应用提交提供了REST接口。

📣 3.集群部署

一个 Flink 集群总是包含一个 JobManager 以及一个或多个 Flink TaskManager。JobManager 负责处理 Job 提交、 Job 监控以及资源管理。
Flink TaskManager 运行 worker 进程, 负责实际任务 Tasks 的执行,而这些任务共同组成了一个 Flink Job。

✨ 3.1 下载解压

进入 Flink 官网,下Apache Flink 1.18.0
https://flink.apache.org/zh/downloads/

✨ 3.2 JDK安装

1.下载Linux环境下的jdk1.8
https://www.oracle.com/java/technologies/downloads/#java8
2.JDK压缩包解压
tar -zxvf jdk-8u391-linux-x64.tar.gz -C /usr/local

3.环境变量导入
vi /etc/profile

export JAVA_HOME=/usr/local/jdk1.8.0_391
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export PATH=$PATH:${JAVA_PATH}

##环境变量生效
source /etc/profile

##确认安装是否成功
                                                                         [root@flink01 conf]# java -version
java version "1.8.0_391"
Java(TM) SE Runtime Environment (build 1.8.0_391-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.391-b13, mixed mode)

✨ 3.3 host配置

cat >> /etc/hosts << EOF
172.18.12.85 flink01
172.18.12.86 flink02
172.18.12.87 flink03
EOF

✨ 3.4 配置文件

1.进入conf目录中,配置flink-conf.yaml文件

[root@flink01 opt]# cd /flink/flink-1.18.0/conf/
[root@flink01 conf]# ll
total 56
-rw-r--r-- 1 501 games 14142 Oct 18 20:07 flink-conf.yaml
-rw-r--r-- 1 501 games  2917 Oct 18 20:07 log4j-cli.properties
-rw-r--r-- 1 501 games  3184 Oct 18 20:07 log4j-console.properties
-rw-r--r-- 1 501 games  2041 Oct 18 20:07 log4j-session.properties
-rw-r--r-- 1 501 games  2708 Oct 18 20:07 log4j.properties
-rw-r--r-- 1 501 games  2865 Oct 18 20:07 logback-console.xml
-rw-r--r-- 1 501 games  1550 Oct 18 20:07 logback-session.xml
-rw-r--r-- 1 501 games  2314 Oct 18 20:07 logback.xml
-rw-r--r-- 1 501 games    15 Oct 24  2022 masters
-rw-r--r-- 1 501 games    10 Oct 18 20:07 workers
-rw-r--r-- 1 501 games  1434 Oct 18 20:07 zoo.cfg

[root@flink01 conf]# vi flink-conf.yaml

# jobManager 的IP地址
jobmanager.rpc.address: flink01

# 每个TaskManager 提供的任务 slots 数量大小
# 它的意思是当前task能够同时执行的线程数量 (实际生产环境建议是CPU核心-1)
taskmanager.numberOfTaskSlots: 2


jobmanager.rpc.address: node01 JobManager地址
jobmanager.rpc.port: 6123 JobManagerRPC通信端口
jobmanager.heap.size: 1024m JobManager所能使用的堆内存大小
taskmanager.heap.size: 1024m TaskManager所能使用的堆内存大小
taskmanager.numberOfTaskSlots: 2 TaskManager管理的TaskSlot个数,依据当前物理机的
核心数来配置,一般预留出一部分核心(25%)给系统及其他进程使用,一个slot对应一个core。如果
core支持超线程,那么slot个数*2
rest.port: 8081 指定WebUI的访问端口   --单节点放开此选项即可

注意:

flink01 jobmanager.rpc.address为flink01
flink02 jobmanager.rpc.address为flink01
flink03 jobmanager.rpc.address为flink01

2.配置masters文件
flink01\flink02\flink03节点均修改为:

#localhost:8081
flink01:8081

3.配置workers文件
flink01\flink02\flink03节点均修改为:
#localhost
flink02
flink03

✨ 3.5 环境变量

vi /etc/profile
添加以下内容:
export FLINK_HOME=/flink/flink-1.18.0
export PATH= P A T H : PATH: PATH:FLINK_HOME/bin
环境变量生效
source /etc/profile

✨ 3.6 启动集群

启动:
start-cluster.sh

[root@flink01 ~]# start-cluster.sh
Starting cluster.
Starting standalonesession daemon on host flink01.
root@flink02's password: 
Starting taskexecutor daemon on host flink02.
root@flink03's password: 
Starting taskexecutor daemon on host flink03.

[root@flink01 ~]# jps
3525 Jps
3439 StandaloneSessionClusterEntrypoint

[root@flink02 ~]# jps
1665 Jps

[root@flink03 ~]# jps
1645 Jps

停止:
stop-cluster.sh

[root@flink01 conf]# stop-cluster.sh
root@flink02's password: 
Stopping taskexecutor daemon (pid: 2225) on host flink02.
root@flink03's password: 
Stopping taskexecutor daemon (pid: 2205) on host flink03.
Stopping standalonesession daemon (pid: 4370) on host flink01.

可视化界面
http://192.168.3.15:18080/#/overview

📣 4.报错处理

1.SSH服务异常
[root@flink01 ~]# start-cluster.sh
Starting cluster.
Starting standalonesession daemon on host flink01.
/flink/flink-1.18.0/bin/config.sh: line 525: ssh: command not found
/flink/flink-1.18.0/bin/config.sh: line 525: ssh: command not found

yum install -y openssh-clients openssh-server initscripts net-tools
netstat -anp | grep 22    --查看端口

systemctl start sshd
[root@flink02 ~]# netstat -lnput |grep :22
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      333/sshd            
tcp6       0      0 :::22                   :::*                    LISTEN      333/sshd   


2.Flink web UI 打开不了解决办法
systemctl status firewalld.service查看防火墙状态,看是否是inactive
如果防火墙没有问题还开不了,看flink/conf/flink-conf.yaml里面的 rest.bind-address 参数 改为0.0.0.0
最后重启集群
  • 40
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 10
    评论
Linux Flink集群是指基于Linux操作系统并使用Flink框架来构建的集群计算环境。Flink是一种流式处理引擎,用于处理大规模的数据流。Linux作为操作系统,具有良好的稳定性和可靠性,能够提供高效的系统资源管理和任务调度能力。 在一个Linux Flink集群中,通常包含一个主节点和多个工作节点。主节点负责协调整个集群的工作,包括任务的调度、资源的分配和监控等。工作节点是真正执行计算任务的节点,它们从主节点接收任务,并按照任务的要求进行计算和处理。 Linux Flink集群的搭建需要注意以下几点。首先,需要保证所有节点上已经安装并配置好了Linux操作系统。其次,需要在集群中选择一台作为主节点,并在该节点上安装Flink框架,并通过配置文件指定其他工作节点的地址和角色。然后,需要在所有工作节点上安装并配置好Flink框架。最后,需要确保主节点和工作节点之间可以相互通信,以便进行任务的分发和结果的传递。 在Linux Flink集群中,可以通过Flink的API或者命令行工具提交和管理任务。Flink提供了丰富的功能和算子,可以支持各种数据处理需求,包括流式处理、批处理和机器学习等。此外,Flink还提供了容错机制和故障恢复能力,保证了系统的可靠性和稳定性。 总结来说,Linux Flink集群提供了一个高效、稳定和可靠的计算环境,可以用于处理大规模的数据流。它充分发挥了Linux操作系统的优势,同时利用了Flink框架的各种功能和算子,为用户提供了一个强大而灵活的数据处理平台。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT邦德

客户部署资料,步骤超详细

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值