搭建flink集群 —— 筑梦之路

news2024/11/24 1:29:47

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/

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

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

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

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

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

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

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)
cat >> /etc/hosts << EOF
172.18.12.85    flink01
172.18.12.86    flink02
172.18.12.87    flink03
EOF

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
vi /etc/profile

添加以下内容:
export FLINK_HOME=/flink/flink-1.18.0
export PATH=$PATH:$FLINK_HOME/bin

环境变量生效
source /etc/profile


启动:
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
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
最后重启集群

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1343685.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vue连接本地服务器

vue 连接本地服务器做后端。 后端服务 使用springboot新建一个基于restful的接口&#xff0c;访问如下的地址&#xff0c;返回值。 vue构建 新建一个vue项目&#xff0c;安装访问服务器的插件。 npm install axios vue-axios --save 修改main.js使用axios&#xff0c;最终…

Linux 内核学习笔记: hlist 的理解

前言 最近阅读 Linux 内核时&#xff0c;遇到了 hlist&#xff0c;这个 hlist 用起来像是普通的链表&#xff0c;但是为何使用 hlist&#xff0c;hlist 是怎么工作的&#xff1f; 相关代码 hlist_add_head(&clk->clks_node, &core->clks); /*** clk_core_link_…

很实用的ChatGPT网站——httpchat-zh.com

很实用的ChatGPT网站——http://chat-zh.com/ 今天介绍一个好兄弟开发的ChatGPT网站&#xff0c;网址[http://chat-zh.com/]。这个网站功能模块很多&#xff0c;包含生活、美食、学习、医疗、法律、经济等很多方面。下面简单介绍一些部分功能与大家一起分享。 登录和注册页面…

Mac Pycharm在Debug模式报编码(SyntaxError)错误

1. 错误信息&#xff1a; Traceback (most recent call last):File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/tokenize.py", line 330, in find_cookieline_string line.decode(utf-8) UnicodeDeco…

【持续更新ing】uniapp+springboot实现个人备忘录系统【前后端分离】

目录 &#xff08;1&#xff09;项目可行性分析 &#xff08;2&#xff09;需求描述 &#xff08;3&#xff09;界面原型 &#xff08;4&#xff09;数据库设计 &#xff08;5&#xff09;后端工程 接下来我们使用uniappspringboot实现一个简单的前后端分离的小项目----个…

numpy数组03-数组的计算

一.数组与数字之间进行计算 numpy中的数组与数字进行计算是广播形式&#xff0c;数组-*/数字&#xff0c;则数组中的每一个数字都会进行相应的四则运算。 1.1数组与数字之间的四则运算 示例代码如下&#xff1a; import numpy as npa np.arange(24) b a.reshape(4, 6) pr…

Flutter BottomSheet 拖动分两段展示

第一段 第二段 实现思路 通过 GestureDetector 的 Drag 方法&#xff0c;动态改变Dialog的高度&#xff0c;通过设置一个最大高度和最小高度分成两层进行展示 实现 常用的展示BottomSheet的方法为 showModalBottomSheet /// 设置最高最好以高度的比例进行设置&#xff0c;方…

mongoose中http server服务器解决“Access-Control-Allow-Origin mongoose”跨域问题

问题 使用mongoose做http服务器&#xff0c;自己构造的浏览器端jquery在访问server时&#xff0c;会遇到&#xff1a; Access to XMLHttpRequest at http://127.0.0.1:8000/ from origin null has been blocked by CORS policy: No Access-Control-Allow-Origin header is pr…

Shell脚本-bin/bash: 解释器错误: 没有那个文件或目录-完整路径执行-“/”引发的脑裂

引起该不适的一种可能以及解决方案&#xff0c;网上较多&#xff0c;比如&#xff1a; 但按以上方式操作&#xff0c;并经过查看&#xff0c;发现仍然未能解决问题。 因为两种方式执行&#xff0c;有一种能成功&#xff0c;有一种不能&#xff0c;刚开始未怀疑是文件问题&…

基于OpenAI的Whisper构建的高效语音识别模型:faster-whisper

1 faster-whisper介绍 faster-whisper是基于OpenAI的Whisper模型的高效实现&#xff0c;它利用CTranslate2&#xff0c;一个专为Transformer模型设计的快速推理引擎。这种实现不仅提高了语音识别的速度&#xff0c;还优化了内存使用效率。faster-whisper的核心优势在于其能够在…

分布式系统架构设计之分布式系统实践案例和未来展望

分布式系统在过去的几十年里经历了长足的发展&#xff0c;从最初的简单分布式架构到今天的微服务、云原生等先进架构&#xff0c;取得了丰硕的成果。本文将通过实际案例分享分布式系统的架构实践&#xff0c;并展望未来可能的发展方向。 一、实践案例 1、微服务化实践 背景 …

【HarmonyOS开发】案例-记账本开发

OpenHarmony最近一段时间&#xff0c;简直火的一塌糊度&#xff0c;学习OpenHarmony相关的技术栈也有一段时间了&#xff0c;做个记账本小应用&#xff0c;将所学知识点融合记录一下。 1、记账本涉及知识点 基础组件&#xff08;Button、Select、Text、Span、Divider、Image&am…

SpringBoot项目部署及多环境

1、多环境 2、项目部署上线 原始前端 / 后端项目宝塔Linux容器容器平台 3、前后端联调 4、项目扩展和规划 多环境 程序员鱼皮-参考文章 本地开发&#xff1a;localhost&#xff08;127.0.0.1&#xff09; 多环境&#xff1a;指同一套项目代码在把不同的阶段需要根据实际…

在STM32中集成TSL2561光强传感器的开发和调试

在STM32中集成TSL2561光强传感器的开发和调试是一个常见的应用场景。TSL2561是一款数字光传感器&#xff0c;能够测量可见光和红外光的光强&#xff0c;并通过I2C接口将数据传输给微控制器。下面将为您介绍在STM32中集成TSL2561传感器的开发步骤&#xff0c;并附上相应的代码示…

【机器学习前置知识】Beta分布

Beta分布与二项分布的关系 Beta分布与二项分布密切相关,由二项分布扩展而来,它是用来描述一个连续型随机变量出现的概率的概率密度分布,表示为 X X X~ B e t a ( a , b ) Beta(a,b) Beta(a,b) , a 、 b a、b a、b 是形状参数。Beta分布本质上也是一个概率密度函数,只是这…

水库大坝安全监测设计与施工经验

随着我国的科技水平不断上升&#xff0c;带动了我国的水电建设向更高层次发展。目前&#xff0c;我国的水电站大坝已有上百座&#xff0c;并且大坝安全检测仪器质量与先进技术不断更新发展&#xff0c;如今水电站大坝数据信息采集与观测资料分析&#xff0c;能够有效提高水库大…

outlook邮箱群发邮件方法?邮箱如何群发?

outlook邮箱群发邮件如何使用&#xff1f;QQ邮箱设置群发的步骤&#xff1f; Outlook邮箱群发邮件&#xff1a;必要性 Outlook邮箱作为全球广泛使用的邮件服务之一&#xff0c;不仅提供了便捷的邮件收发功能&#xff0c;还支持多种附件、日历提醒及强大的联系人管理。Outlook…

NVMe over Fabrics:概念、应用和实现

对于大部分人来说&#xff0c;NVMe over Fabrics&#xff08;简称NVMf&#xff09;还是个新东西&#xff0c;因为其第一个正式版本的协议在今年6月份才发布。但是这并不影响人们对NVMf的关注&#xff0c;因为这项依托于NVMe的技术很可能继续改变存储市场格局。 NVMf的贡献在于…

CENTOS docker拉取私服镜像

概述 docker的应用越来越多&#xff0c;安装部署越来越方便&#xff0c;批量自动化的镜像生成和发布都需要docker镜像的拉取。 centos6版本太老&#xff0c;docker的使用过程中问题较多&#xff0c;centos7相对简单容易。 本文档主要介绍centos系统安装docker和拉取docker私…

【HBuilder + IDEA + XFtp + XShell】打包部署上线

简述 前后端分离&#xff1a;需要将前后端的程序包打包发送至应用Linux服务器上Linux服务器 &#xff08;1&#xff09;需要启用SSHD服务&#xff0c;该服务会监听22号端口&#xff08;一般是开启的&#xff09; &#xff08;2&#xff09;搭建&#xff1a;MYSQL、Nginx、jdk、…