flink结合Yarn进行部署

1. 什么是Yarn模式部署Flink

独立(Standalone)模式由 Flink 自身提供资源,无需其他框架,这种方式降低了和其他第三方资源框架的耦合性,独立性非常强。但我们知道,Flink 是大数据计算框架,不是资源调度框架,这并不是它的强项;所以还是应该让专业的框架做专业的事,和其他资源调度框架集成更靠谱。

而在目前大数据生态中,国内应用最为广泛的资源管理平台就是 YARN 了。本文主要介绍在强大的 YARN 平台上 Flink 是如何集成部署的。

利用Yarn可以实现Flink的三种集群模式,即:会话模式、单作业模式、应用模式,比较常用的就是利用Yarn部署Flink的会话模式,由于会话模式也已经实现了动态分配,所以没有了普通会话模式的局限了,因此会话模式是最常见的。


整体来说,YARN 上部署的过程是:

  1. 客户端把 Flink 应用提交给 Yarn 的 ResourceManager,
  2. Yarn 的 ResourceManager 会向 Yarn 的 NodeManager 申请容器。
  3. 在这些容器上,Flink 会部署 JobManager 和 TaskManager 的实例,从而启动集群。
  4. Flink 会根据运行在 JobManger 上的作业所需要的 Slot 数量动态分配 TaskManager 资源。

2. 环境准备

  • 在 Flink 1.11.0 版本之后,增加了很多重要新特性,其中就包括增加了对Hadoop3.0.0以及更高版本Hadoop的支持,不再提供“flink-shaded-hadoop-*”jar 包,而是通过配置环境变量完成与 YARN 集群的对接。

Flink 1.8.0的注意事项

  • Flink1.8.0 之前的版本,想要以 YARN 模式部署 Flink 任务时,需要 Flink 是有 Hadoop 支持的。
  • 从 Flink 1.8 版本开始,不再提供基于 Hadoop 编译的安装包,若需要 Hadoop 的环境支持,需要自行在官网下载 Hadoop 相关版本的组件 flink-shaded-hadoop-2-uber-2.7.5-10.0.jar,并将该组件上传至 Flink 的 lib 目录下。

在将 Flink 任务部署至 YARN 集群之前,需要确认集群是否安装有 Hadoop,保证 Hadoop 版本至少在 2.2 以上,并且集群中安装有 HDFS 服务。
具体配置步骤如下:
(1)配置环境变量,增加环境变量配置如下:

vim /etc/profile.d/my_env.sh# 添加以下内容
HADOOP_HOME=/opt/module/hadoop-2.7.5
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop
export HADOOP_CLASSPATH=`hadoop classpath`# 刷新环境变量使其生效
source /etc/profile.d/my_env.sh

这里必须保证设置了环境变量 HADOOP_CLASSPATH。
(2)启动 Hadoop 集群,包括 HDFS 和 YARN。

start-dfs.sh
start-yarn.sh

(3)修改 flink的配置文件,若在提交命令中不特定指明,这些配置将作为默认配置。

vim /app/apps/flink-1.13.0/conf/flink-conf.yaml#修改以下配置
jobmanager.memory.process.size: 1600m
taskmanager.memory.process.size: 1728m
taskmanager.numberOfTaskSlots: 8
parallelism.default: 1

3. Yarn部署Flink会话模式

YARN 的会话模式与独立集群略有不同,需要首先申请一个 YARN 会话(YARN session)来启动 Flink 集群。具体步骤如下:

3.1 启动集群

(1)启动 hadoop 集群(HDFS, YARN)。
(2)执行脚本命令向 YARN 集群申请资源,开启一个 YARN 会话,启动 Flink 集群。

/app/apps/flink-1.13.0/bin/yarn-session.sh -d -nm test

可用参数解读:
-d:分离模式,后台运行YARN session。
-jm:(–jobManagerMemory):配置 JobManager 所需内存,默认单位 MB。
-nm:(–name):配置在 YARN UI 界面上显示的任务名。
-qu:(–queue):指定 YARN 队列名。
-tm:(–taskManager):配置每个 TaskManager 所使用内存。
注意:Flink1.11.0 版本不再使用-n 参数和-s 参数分别指定 TaskManager 数量和 slot 数量,YARN 会按照需求动态分配 TaskManager 和 slot。所以从这个意义上讲,YARN 的会话模式也不会把集群资源固定,同样是动态分配的。

YARN Session 启动之后会给出一个 web UI 地址以及一个 YARN application ID,如下所示,用户可以通过 web UI 或者命令行两种方式提交作业。
在这里插入图片描述

3.2 提交作业

(1)通过 Web UI 提交作业,这种方式比较简单,与上文所述 Standalone 部署模式基本相同。
(2)通过命令行提交作业:

  1. 将 Standalone 模式讲解中打包好的任务运行 JAR 包上传至集群
  2. 执行以下命令将该任务提交到已经开启的 Yarn-Session 中运行。
$ bin/flink run -c com.atguigu.wc.StreamWordCount FlinkTutorial-1.0-SNAPSHOT.jar

客户端可以自行确定 JobManager 的地址,也可以通过-m 或者-jobmanager 参数指定JobManager 的地址,JobManager 的地址在 YARN Session 的启动页面中可以找到。

  1. 任务提交成功后,可在 YARN 的 Web UI 界面查看运行情况。

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

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

相关文章

编程笔记 html5cssjs 044 CSS显示

编程笔记 html5&css&js 044 CSS显示 一、display 属性二、块级元素(block element)三、行内元素(inline element)四、disply属性设置(一)Display: none;(二)覆盖默认的 Disp…

C++学习笔记——指针

1,指针的基本概念 指针的作用:可以通过指针间接访问内存 内存的编号是从0开始记录的,一般用十六进制数字表示可以利用指针变量保存地址 上图中的p就是a变量的指针,也可以记作*a 2,指针变量的定义和使用 指针变量定…

Linux操作系统——理解文件系统

预备知识 到目前为止,我们所学习到的关于文件的操作,全部都是基于文件被打开,被访问,访问期间比较重要的有重定向,缓冲区,一切皆文件,当我们访问完毕的时候需要将文件关闭,关闭时那…

3.RHCSA脚本配置及通过node2改密码

运行脚本发现node2不成功 脚本破解 选第二个 Ctrl x 换行 破解成功后做node2的改密码题 回到redhat, 发现检测程序检测密码题成功,得了8分.

DBA技术栈MongoDB: 数据增改删除

该博文主要介绍mongoDB对文档数据的增加、更新、删除操作。 1.插入数据 以下案例演示了插入单个文档、多个文档、指定_id、指定多个索引以及插入大量文档的情况。在实际使用中,根据需求选择适合的插入方式。 案例1:插入单个文档 db.visitor.insert({…

集成显卡和普通显卡的区别?

问题描述:集成显卡和普通显卡的区别? 问题解答: 集成显卡和独立显卡(普通显卡)是两种不同类型的图形处理单元,它们在计算机系统中负责处理图形和视频输出,但它们有一些关键的区别:…

【蓝桥杯冲冲冲】动态规划初步[USACO2006 OPEN] 县集市

蓝桥杯备赛 | 洛谷做题打卡day13 文章目录 蓝桥杯备赛 | 洛谷做题打卡day13题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 提示样例说明数据规模与约定 思路:方程: 题解代码我的一些话 [USACO2006 OPEN] 县集市 The County Fair 题目描述 每年…

Threejs实现立体3D园区解决方案及代码

一、实现方案 单独贴代码可能容易混乱,所以这里只讲实现思路,代码放在最后汇总了下。 想要实现一个简单的工业园区、主要包含的内容是一个大楼、左右两片停车位、四条道路以及多个可在道路上随机移动的车辆、遇到停车位时随机选择是否要停车&#xff0…

解决ssh登录Permission denied, please try again

现象截图如下: 确定root的密码是正确的,最后的原因找到了,是远程的服务器,禁用了root账户可以被远程访问的权限。开启操作如下: 1.编辑配置文件 vi /etc/ssh/sshd_config 2.文件中找到PermitRootLogin #PermitRoo…

seaborn可视化示例详解

目录 1、散点图 2、散点图回归线 3、折线图 4、频数柱状图 5、分组散点图 6、箱型图 7、数值分布柱状图 8、频数分布图 9、联合分布图 10、数值分布柱状图 11、相关系数热力图 划重点 少走10年弯路 Seaborn是一个基于Python的数据可视化库,Seaborn提供了许多用…

8-Docker网络命令之ls

1.ls介绍 docker网络命令ls是用来列出当前docker中默认的及自定义的网络 2.ls用法 docker network ls [参数] [root@centos79 ~]# docker network ls --helpUsage: docker network ls [OPTIONS]List networksAliases:docker network ls, docker network listOptions:-f, -…

链表|数据结构|C语言深入学习

什么是链表 离散,就是“分离的、散开的” 链表是什么样子的: 有限个节点离散分配 彼此间通过指针相连 除了首尾节点,每个节点都只有一个前驱节点和一个后继节点 首节点没有前驱结点,尾节点没有后继节点 基本概念术语&#xf…

C 练习实例38

题目&#xff1a;求一个3*3矩阵对角线元素之和 程序分析&#xff1a;利用双重for循环控制输入二维数组&#xff0c;再将a[i][i]累加后输出。 代码&#xff1a; #include <stdio.h> int main() {int a[3][3];int i; //行序列int j; //列序列int k; //对角线序列int cnt…

1.使用分布式文件系统Minio管理文件

分布式文件系统DFS分类 文件系统 文件系统是操作系统用于组织管理存储设备(磁盘)或分区上文件信息的方法和数据结构,负责对文件存储设备空间进行组织和分配,并对存入文件进行保护和检索 文件系统是负责管理和存储文件的系统软件&#xff0c;操作系统通过文件系统提供的接口去…

Docker五部曲之五:通过Docker和GitHub Action搭建个人CICD项目

文章目录 项目介绍Dockerfile解析compose.yml解析Nginx反向代理到容器以及SSL证书设置MySQL的准备工作Spring和环境变量的交互 GitHub Action解析项目测试结语 项目介绍 该项目是一个入门CICD-Demo&#xff0c;它由以下几部分组成&#xff1a; Dockerfile&#xff1a;用于构建…

「 典型安全漏洞系列 」05.XML外部实体注入XXE详解

1. XXE简介 XXE&#xff08;XML external entity injection&#xff0c;XML外部实体注入&#xff09;是一种web安全漏洞&#xff0c;允许攻击者干扰应用程序对XML数据的处理。它通常允许攻击者查看应用程序服务器文件系统上的文件&#xff0c;并与应用程序本身可以访问的任何后…

【ARM 嵌入式 编译系列 3.6 -- 删除lib中的某个文件】

请阅读【嵌入式开发学习必备专栏 之 ARM GCC 编译专栏】 文章目录 删除lib中的某个文件 删除lib中的某个文件 比如&#xff0c;如果要删除 libc.a 静态库中的特定对象文件并重新使用这个静态库&#xff0c;在终端中可以使用 ar 命令。ar 是一个归档工具&#xff0c;它可以创建…

【Unity小技巧】3D人物移动脚步和跳跃下落音效控制

文章目录 单脚步声多脚步声&#xff0c;跳跃落地音效播放不同材质的多脚步声完结 单脚步声 public AudioClip walkingSound; public AudioClip runningSound;//移动音效 public void MoveSound() {// 如果在地面上并且移动长度大于0.9if (isGround && moveDirection.s…

动物免疫(羊驼免疫)-泰克生物

在过去几十年里&#xff0c;抗体研究和应用的领域已经经历了革命性的变化。在这个进程中&#xff0c;一种特殊来源的抗体 —— 来自骆驼科动物&#xff08;包括羊驼&#xff09;的单链抗体&#xff08;也称纳米抗体&#xff09;引起了全球科学家的广泛关注。 羊驼等骆驼科动物…

Java NIO (四)NIO Selector类

1 选择器与注册 选择器是什么&#xff1f;选择器和通道关系是什么&#xff1f; 简单的说&#xff0c;选择器的使用是完成IO的多路复用&#xff0c;其主要工作是通道的注册、监听、事件查询。一个通道代表一条连接通路&#xff0c;通过选择器可以同时监听多个通道的IO(输入输出)…