大数据学习之Flink,Flink的安装部署

Flink部署

一、了解它的关键组件

  • 客户端(Client)

  • 作业管理器(JobManager)

  • 任务管理器(TaskManager)

我们的代码,实际上是由客户端获取并做转换,之后提交给 JobManger 的。所以 JobManager 就是 Flink 集群里的“领导者”,对作业进行中央调度管理; 而它获取到要执行的作业后,会进一步处理转换,然后分发任务给众多的 TaskManager。这里 的 TaskManager,就是真正“干活的人”,数据的处理操作都是它们来做的,如图所示。

二、配置环境

  • 部署在Linux上,使用 CentOS 7

  • 安装hadoop集群

  • 三台节点之间配置免密,关闭防火墙

1. 本地启动

1.1 下载Flink的安装包 和所对应的 scala版本存放在/opt/software

1.2 解压在bigdata1下的/opt/module目录下

tar -zxvf /opt/software/flink-1.13.0-bin-scala_2.12.tgz -C /opt/module/

1.3 启动

进入/opt/module/flink目录下

bin/start-cluster.sh

使用jps命令查看它的进程

jps

1.4 访问web页面

在浏览器中输入 bigdata1:8081 进入web页面

1.5 关闭集群

bin/stop-cluster.sh 

2.集群启动

集群启动就有了主从节点的区别,Flink也是典型的 Master-Slave 架构 的分布式数据处理框架

  • Master 对应着 JobManager

  • Slave 对用着 TaskManager

三台节点服务器角色分配为

节点服务器bigdata1bigdata2bigdata3
角色JobManagerTaskManagerTaskManager

具体步骤如下:

2.1下载并安装

与上述操作一样,不展示了

2.2修改集群配置
  1. 进入conf 目录下,修改flink-conf.yaml 文件中的 jobmanager.rpc.address的参数为bigdata1

    指定JobManager节点

    # JobManager 节点地址.
    jobmanager.rpc.address: bigdata1
  2. 修改workers文件

    指定TaskManager节点

    bigdata2
    bigdata3
  3. 优化 JobManager 和 TaskManager 配置

    • jobmanager.memory.process.size:

      对 JobManager 进程可使用到的全部内存进行配置, 包括 JVM 元空间和其他开销,默认为 1600M,可以根据集群规模进行适当调整。

    • taskmanager.memory.process.size:

      对 TaskManager 进程可使用到的全部内存进行配置, 包括 JVM 元空间和其他开销,默认为 1600M,可以根据集群规模进行适当调整。

    • taskmanager.numberOfTaskSlots:

      对每个 TaskManager 能够分配的 slots 数量进行配置, 默认为 1,可根据 TaskManager 所在的机器能够提供给 Flink 的 CPU 数量决定。所谓 slots 就是 TaskManager 中具体运行一个任务所分配的计算资源。

    • parallelism.default:

      Flink 任务执行的默认并行度配置,优先级低于代码中进行的并行 度配置和任务提交时使用参数进行的并行度数量配置

2.3 分发安装目录

将目录分发给其他两个节点

2.4启动集群
 bin/start-cluster.sh

用jps命令查看

2.5访问web页面

3.部署模式

  • 会话模式(Session Mode)

  • 单作业模式(Per-Job Mode)

  • 应用模式(Application Mode)

3.1 概念
3.1.1会话模式

会话模式其实最符合常规思维。我们需要先启动一个集群,保持一个会话,在这个会话中通过客户端提交作业,如图所示。集群启动时所有资源就都已经确定,所以所有提交的作业会竞争集群中的资源。

会话模式比较适合于单个规模小、执行时间短的大量作业

3.1.2 单作业模式

会话模式因为资源共享会导致很多问题,所以为了更好地隔离资源,我们可以考虑为每个 提交的作业启动一个集群,这就是所谓的单作业(Per-Job)模式,如图所示。

需要注意的是,Flink 本身无法直接这样运行,所以单作业模式一般需要借助一些资源管 理平台来启动集群,比如 YARN、Kubernetes。

3.1.3 应用模式

前面提到的两种模式下,应用代码都是在客户端上执行,然后由客户端提交给 JobManager 的。但是这种方式客户端需要占用大量网络带宽,去下载依赖和把二进制数据发送给 JobManager;加上很多情况下我们提交作业用的是同一个客户端,就会加重客户端所在节点的 资源消耗。

所以解决办法就是,我们不要客户端了,直接把应用提交到 JobManger 上运行。而这也就 代表着,我们需要为每一个提交的应用单独启动一个 JobManager,也就是创建一个集群。这 个 JobManager 只为执行这一个应用而存在,执行结束之后 JobManager 也就关闭了,这就是所 谓的应用模式,如图所示。

应用模式与单作业模式,都是提交作业之后才创建集群;单作业模式是通过客户端来提交 的,客户端解析出的每一个作业对应一个集群;而应用模式下,是直接由 JobManager 执行应 用程序的,并且即使应用包含了多个作业,也只创建一个集群。

3.2 部署

具体的查看我的另一篇CSDN的文章 大数据学习之Flink,了解Flink的多种部署模式上,点击查看

3.2.1独立模式(Standalone)
3.2.2 YARN 模式
3.2.3 K8S 模式

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

计算机网络 第2章(物理层)

系列文章目录 计算机网络 第1章(概述) 计算机网络 第2章(物理层) 文章目录 系列文章目录1. 物理层的基本概念2. 物理层下面的传输媒体2.1 导引型传输媒体2.2 非导引型传输媒体 3. 传输方式3.1 串行传输和并行传输3.2 同步传输和异…

控制项目进展

优质博文 IT-BLOG-CN 假如一个项目准备工作做的非常周详,现在要做的就是监督项目的进展情况,理想状况下事情应当进展的很顺利,但实际上我们会发现项目永远不会完全按照经计划执行,我们必须进行项目控制。也就是我们需要不断进行调…

AI创作之旅:探索提示工程的奇妙世界

💂 个人网站:【 海拥】【神级代码资源网站】【办公神器】🤟 基于Web端打造的:👉轻量化工具创作平台💅 想寻找共同学习交流的小伙伴,请点击【全栈技术交流群】 在当今信息爆炸的时代,人工智能的发…

开源的测试平台快2千星了,能带来多少收益呢

最近看了下自己去年初开源的测试平台,star一起算的话也到1.7k了: 做开源的初心一方面是想把自己的理解和思想展示出来,另一方面是想进一步打造个人IP,提升影响力(其实这个想法很早之前就有了,计划过无数次但…

图灵日记之java奇妙历险记--异常包装类泛型

目录 异常概念与体系结构异常的分类异常的处理防御式编程异常的抛出异常的捕获异常声明throwstry-catch捕获并处理 自定义异常类 包装类基本数据类型及其对应包装类装箱和拆箱 泛型泛型使用类型推导 裸类型说明 泛型的编译机制泛型的上界语法 异常概念与体系结构 在java中,将程…

【JavaEE进阶】MyBatis⼊⻔

文章目录 🌲什么是MyBatis?🌳准备⼯作🚩创建⼯程🚩数据准备🚩配置数据库连接字符串🚩 在项⽬中,创建持久层接⼝UserInfoMapper 🍃单元测试🚩使⽤Idea⾃动⽣成测试类 🍀打…

LabVIEW电路板插件焊点自动检测系统

LabVIEW电路板插件焊点自动检测系统 介绍了电路板插件焊点的自动检测装置设计。项目的核心是使用LabVIEW软件,开发出一个能够自动检测电路板上桥接、虚焊、漏焊和多锡等焊点缺陷的系统。 系统包括成像单元、机械传动单元和软件处理单元。首先,利用工业相…

nvm切换node版本报错

1. 问题描述 使用 nvm use (node版本号) 命令时报错 2. 解决方法 权限不够,以管理员身份运行cmd 具体操作: (1)点击电脑左下方搜索 命令提示符 ,点击 以管理员身份运行 (2)重新输入nvm use …

创建SERVLET

创建SERVLET 要创建servlet,需要执行以下任务: 编写servlet。编译并封装servlet。将servlet部署为Java EE应用程序。通过浏览器访问servlet。编写servlet 要编写servlet,需要扩展HttpServlet接口的类。编写servlet是,需要合并读取客户机请求和返回响应的功能。 读取和处…

基于jQuery与Spring MVC实现用户密码异步修改的实战演示

文章目录 一、实战概述二、实战步骤(一)创建表单1、表单界面2、表单代码3、脚本代码 (二)后端控制器(三)测试代码,查看效果1、弹出更改密码表单2、演示更改密码操作 三、实战总结 一、实战概述 …

如何正确判断一个字符串是数值

在网页中,我们从用户输入的内容中获取的值通常是字符串,但是有时候我们希望用户输入的内容一定要能转成数值: userInput.addEventListener(change, (e) > {const value e.target.value;console.log(typeof value); // stringconsole.ass…

健康成长的基石:新生儿补充镁的关键

引言: 镁是人体内的重要矿物质之一,对于新生儿的生长发育和健康维护至关重要。在新生儿期间,适量补充镁有助于促进神经、骨骼和心血管系统的健康发展。然而,在进行镁的补充时,家长需要特别注意一系列事项,…

Android 通过adb命令查看应用流量

一. 获取应用pid号 通过adb shell ps -A | grep 包名 来获取app的 pid号 二. 查看应用流量情况 使用adb shell cat /proc/#pid#/net/dev 命令 来获取流量数据 备注: Recevice: 表示收包 Transmit: 表示发包 bytes: 表示收发的字节数 packets: 表示收发正确的…

move_base+自己的定位程序(攻略篇) --- 成功实现ESKF的lidar+imu以及move_base的路径规划

临近放假,老板要求回去之前找其汇报进展,无奈近几月忙于毕业论文的编写,实在是没有多少可以汇报的内容,想来自己弄得定位程序只能实现定位,要不自己再加一个路径规划,直接干! 本文的文字量较大…

centos 7.6 进入单用户模式

1、重启服务器,在选择内核界面使用上下箭头移动 2、选择内核并按“e” 将“RO”改成 rw ,删除 rhgb quiet 添加 init/bin/bash Ctrl X 进入单用户模式 为防止乱码,修改语言为英语 修改完密码建议输入:touch /.autorelabel 更新系统信…

websocket服务端本地部署

文章目录 1. Java 服务端demo环境2. 在pom文件引入第三包封装的netty框架maven坐标3. 创建服务端,以接口模式调用,方便外部调用4. 启动服务,出现以下信息表示启动成功,暴露端口默认99995. 创建隧道映射内网端口6. 查看状态->在线隧道,复制所创建隧道的公网地址加端口号7. 以…

Unity3d引擎中使用AIGC生成的360全景图(天空盒)

前言 在这里与Skybox AI一起,一键打造体验无限的360世界,这是这个AIGC一键生成全景图的网站欢迎语。 刚使用它是23年中旬,在没有空去给客户实地拍摄全景图时,可以快速用它生成一些相关的全景图,用作前期沟通的VR de…

因谷歌Play Store审核超过7天和联系他们的方式

三种联系他们的方式 1.让他们打电话过来 英语好不好没关系,主要是他们讲着一口浓厚的印度口音英语,很难听懂 2.在线实时聊天沟通 可以选择英文、中文、但是英文肯定容易约上 3.发送邮件 回复太慢了,1-2天回复你一次 传送门&#xff1…

【Java数据结构 -- 队列:队列有关面试oj算法题】

队列、循环队列、用队列模拟栈、用栈模拟队列 1.队列1.1 什么是队列1.2 创建队列1.3 队列是否为空和获取队头元素 empty()peek()1.4 入队offer()1.5 出队(头删)poll() 2. 循环队列2.1 创建循环队列2.2 判断是否为空isEmpty()和满isFull()2.3 入队enQueue…

大数据开发之Scala

第 1 章:scala入门 1.1 概述 scala将面向对象和函数式编程结合成一种简洁的高级语言 特点 1、scala和java一样属于jvm语言,使用时都需要先编译为class字节码文件,并且scala能够直接调用java的类库 2、scala支持两种编程范式面向对象和函数式…