Flink部署之Yarn

news2025/7/20 9:21:33

Flink部署之Yarn

一、环境准备

1、Flink 是一个分布式的流处理框架,所以实际应用一般都需要搭建集群环境。 需要准备 3 台 Linux 机器。具体要求如下:
  • 系统环境为 CentOS 7.5 版本。
  • 安装 Java 8。
  • 安装 Hadoop 集群,Hadoop 建议选择 Hadoop 2.7.5 以上版本。
  • 配置集群节点服务器间时间同步以及免密登录,关闭防火墙。 三台服务器的具体设置如下:
  • 节点服务器 1,IP 地址为 192.168.88.102,主机名为 hadoop102。
  • 节点服务器 2,IP 地址为 192.168.88.103,主机名为 hadoop103。
  • 节点服务器 3,IP 地址为 192.168.88.104,主机名为 hadoop104。
2、进入 Flink 官网,下载 1.13.0 版本安装包 flink-1.13.0-bin-scala_2.12.tgz,注意此处选用对 应 scala 版本为 scala 2.12 的安装包。
3、在 hadoop102 节点服务器上创建安装目录/opt/module,将 flink 安装包放在该目录下,并 执行解压命令,解压至当前目录。
 tar -zxvf flink-1.13.0-bin-scala_2.12.tgz -C /opt/module/
4、进入解压后的目录,执行启动命令,就可以直接本地启动flink服务。
$ cd flink-1.13.0/
$ bin/start-cluster.sh 
Starting cluster.
Starting standalonesession daemon on host hadoop102.
Starting taskexecutor daemon on host hadoop102.
$ jps
10369 StandaloneSessionClusterEntrypoint
10680 TaskManagerRunner
10717 Jps
5、 启动成功后,访问 http://hadoop102:8081,可以对 flink 集群和任务进行监控管理 。如果物理机没有配置IP地址映射,就用IP访问http://192.168.88.102:8081。

在这里插入图片描述

二、 集群启动

Flink 本地启动非常简单,直接执行 start-cluster.sh 就可以了。如果我们想要扩 展成集群,其实启动命令是不变的,主要是需要指定节点之间的主从关系。 Flink 是典型的 Master-Slave 架构的分布式数据处理框架,其中 Master 角色对应着 JobManager,Slave 角色则对应 TaskManager。

我们对三台节点服务器的角色分配如 下:

节点服务器Hadoop102Hadoop103Hadoop104
角色JobManagerTaskManagerTaskManager
1、修改集群配置

进入 conf 目录下,修改 flink-conf.yaml 文件,修改 jobmanager.rpc.address 参数为 hadoop102

这就指定了 hadoop102 节点服务器为 JobManager 节点。

$ cd conf/
$ vim flink-conf.yaml
# JobManager 节点地址.
jobmanager.rpc.address: hadoop102

修改 flink-conf.yaml 文件

$ cd /opt/module/flink-1.13.0-yarn/conf/
$ vim flink-conf.yaml
jobmanager.memory.process.size: 1600m
taskmanager.memory.process.size: 1728m
taskmanager.numberOfTaskSlots: 8
parallelism.default: 1

增加环境变量配置如下 :

$ sudo vim /etc/profile
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`

修改 workers 文件,将另外两台节点服务器添加为本 Flink 集群的 TaskManager 节点, 具体修改如下:

$ vim workers 
hadoop103
hadoop104

这样就指定了 hadoop103 和 hadoop104 为 TaskManager 节点。

2、 分发安装目录
$ scp -r ./flink-1.13.0 atguigu@hadoop103:/opt/module
$ scp -r ./flink-1.13.0 atguigu@hadoop104:/opt/module
3、 启动集群
在启动flink集群前要先启动HDFS和Yarn。
YARN 上部署的过程是:客户端把 Flink 应用提交给 Yarn 的 ResourceManager, Yarn 的 ResourceManager 会向 Yarn 的 NodeManager 申请容器。在这些容器上,Flink 会部署 JobManager 和 TaskManager 的实例,从而启动集群。Flink 会根据运行在 JobManger 上的作业 所需要的 Slot 数量动态分配 TaskManager 资源。

在 可以在任一节点服务器上执行 bin/yarn-session.sh -nm test 启动 Flink 集群

如果报以下错误,添加yarn-site.xml配置

   <property>
     <name>yarn.nodemanager.pmem-check-enabled</name>
     <value>false</value>
   </property>
   <property>
     <name>yarn.nodemanager.vmem-check-enabled</name>
     <value>false</value>
   </property>

在这里插入图片描述

成功启动如下:

在这里插入图片描述

通过上图的链接可以进行Web UI访问, YARN 会按照需求动态分配 TaskManager 和 slot,所以开始时是0TaskManager。

在这里插入图片描述

运行一个WordCount任务

在这里插入图片描述

任务运行后Yarn会动态分配一个资源

在这里插入图片描述

进行wordcount测试

在这里插入图片描述

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

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

相关文章

ORB-SLAM2 ---- Tracking::TrackReferenceKeyFrame函数

目录 1.函数作用 2.步骤 3.code 4.函数解析 4.1 将当前帧的描述子转化为BoW向量 4.2 总体解释 1.函数作用 用参考关键帧的地图点来对当前普通帧进行跟踪。 2.步骤 Step 1&#xff1a;将当前普通帧的描述子转化为BoW向量 Step 2&#xff1a;通过词袋BoW加速当前帧与参考帧…

PG::Covfefe

nmap -Pn -p- -T4 --min-rate1000 192.168.205.10 nmap -Pn -p 22,80,31337 -sCV 192.168.205.10 先查看31337端口的robots.txt目录&#xff0c;几个隐藏文件未发现可利用的地方 dirb对31337路径的枚举中发现了.ssh 访问后发现存在私钥 下载id_rsa和id_rsa.pub 得知用户名为…

Vscode-Git graph怎么看?

VScode可以使用插件查看git提交图谱&#xff0c;这个图谱看起来眼花缭乱&#xff0c;今天花时间看懂了&#xff0c;在这里分享一下。 在Vscode插件中搜索git graph安装 打开git项目&#xff0c;在左下角可以看到git graph 在右侧可以看到按照时间分布的commit&#xff0c;代表…

Java JSP JAVAweb在线考试系统源码网上考试系统源码(ssm考试管理系统)

JSP在线考试系统源码网上考试系统源码&#xff08;ssm考试管理系统&#xff09;

PLC中ST编程的IF判断

如果判断条件是如果...否则...的时候&#xff1b; 如果wData的值是16进制的FFFF&#xff0c;十进制的65535&#xff1b;就执行IF中的语句&#xff0c;否则就执行ELSE中的&#xff1b; 当wData的值为0时&#xff0c;因不符合IF的判断条件&#xff0c;执行了ELSE中的语句&#x…

MySQL索引底层数据结构

索引简介 索引是一个排好序的数据结构&#xff0c;包含着对数据表里所有记录的引用指针&#xff0c;如下图所示。索引文件和数据文件一样都存储在磁盘中&#xff0c;数据库索引的目的是在检索数据库时&#xff0c;减少磁盘读取次数。 常见的索引数据结构包括二叉树、红黑树、…

node多版本控制

今天遇到一个问题&#xff1a; 下载了一个vue项目&#xff0c;一直卡在npm install阶段&#xff0c;折腾了半天&#xff0c;发现是版本太高了&#xff0c;需要降低一下版本&#xff0c;但是其他项目需要高版本的&#xff0c;这不就冲突了&#xff1b; 找到了一个node多版本控制…

基于SSM的亲子活动平台的搭建与实现(源码+数据脚本+论文+技术文档)

项目描述 临近学期结束&#xff0c;还是毕业设计&#xff0c;你还在做java程序网络编程&#xff0c;期末作业&#xff0c;老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下&#xff0c;你想解决的问…

葡萄糖-聚乙二醇-刀豆球蛋白A,ConcanavalinA-PEG-Glucose

葡萄糖-聚乙二醇-刀豆球蛋白A&#xff0c;ConcanavalinA-PEG-Glucose 中文名称&#xff1a;葡萄糖-刀豆球蛋白A 英文名称&#xff1a;Glucose-ConcanavalinA 别称&#xff1a;刀豆球蛋白A修饰葡萄糖&#xff0c;ConA-葡萄糖 存储条件&#xff1a;-20C&#xff0c;避光&…

数据结构复习题

数据结构课程复习纲要 核心知识点 从数据结构的逻辑结构、存储结构和数据的运算三个方面去掌握线性表、栈、队列、串、数据、广义表、数和图等常用的数据结构。掌握在各种常用的数据结构上实现的排序和查找运算。对算法的时间和空间复杂度有一定的分析能力。针对简单的应用问…

Python:每日一题之四平方和

题目描述 四平方和定理&#xff0c;又称为拉格朗日定理&#xff1a; 每个正整数都可以表示为至多 4 个正整数的平方和。 如果把 0 包括进去&#xff0c;就正好可以表示为 4 个数的平方和。 比如&#xff1a; 5 0^2 0^2 1^2 2^2&#xff1b; 7 1^2 1^2 1^2 2^2&am…

CF385D Bear and Floodlight

题意简述&#xff08;翻译&#xff09; 在平面直角坐标系上&#xff0c;沿直线从 (l,0)(l,0)(l,0) 走到 (r,0)(r,0)(r,0) 。有 nnn 盏灯&#xff0c;第 iii 盏灯位于 (xi,yi)(x_i,y_i)(xi​,yi​) &#xff0c;可以照亮的角度为 aia_iai​ &#xff08;注意不是弧度制&#xf…

浅尝辄止:数据库--数仓大数据平台--数据中台

很久没有更新博客了&#xff0c;今天主要是想谈一谈自己工作几年总结的心得。 1.浅尝辄止 数据库&#xff1a;基于mysql&#xff0c;oracle来实现数据库分析&#xff08;存储在数据库&#xff0c;使用数据库语言直接分析&#xff0c;最后成报表形式&#xff09;。 数仓&大…

rust编程-通用编程概念(chapter 3.2 3.3 数据类型和函数)

目录 2. 数据类型 2.2 复合类型 3. 函数 2. 数据类型 Rust中的所有值都是有特定数据类型的&#xff0c;rust是强类型语言&#xff0c;也是静态类型语言&#xff08;编译器类型必须确定&#xff09;。 编译器可以根据值来进行类型推断&#xff0c;但对有歧义的&#xff0c;必…

计算机毕业设计——基于SpringBoot框架的网上购书系统的设计与实现

文章目录前言一、背景及意义选题背景选题目的二、系统设计主要功能运行环境三、系统实现部分页面截图展示部分代码展示四、源码获取前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 二十一世纪是网络化&#xff0c;信息化的时代&#xff0c;为了满足广大…

Linux的子shell

linux运行一个shell脚本&#xff0c;其本身能启动它自己的子进程。 一般来说&#xff0c;脚本里的一个外部命令能生成出一个紫禁城&#xff0c;而Bash内建命令却不这样。 将一组命令放在圆括号里执行&#xff0c;形成一个命令列表连续执行。在圆括号里的命令会在一个子shell里…

【算法面试题汇总】LeetBook列表的算法面试题汇总---排序与检索题目及答案

整理不易留个小心心呗&#x1f970; 如果有更好的或者是我有错的地方还请各位大佬指出哦 有些是copy的还望不要介意 排序与检索最大数摆动排序Ⅱ寻找峰值寻找重复数最大数 给定一组非负整数 nums&#xff0c;重新排列每个数的顺序&#xff08;每个数不可拆分&#xff09;使之组…

【实验记录1】行人重识别

使用ResNet50训练Market15010x00参考0x01准备数据集0x02搭建模型ResNet500x03test0x04可视化结果0x00参考 ⭐️郑哲东博士的GitHub 从零开始行人重识别-知乎 全篇对于上手person ReId 具有重要意义 环境&#xff1a; torch_version1.13.0cu117 python_version3.8.13 torch_ver…

CentOS7下Redis7安装

​欢迎光临我的博客查看最新文章: https://river106.cn 目前Redis的最新稳定版本已到7.0&#xff0c;本文介绍redis-7.0.5在CentOS7.6下的安装使用。 1、下载 Redis下载地址&#xff1a;https://redis.io/download/&#xff0c;或者使用命令直接下载&#xff1a; cd /opt/so…

序列化、反序列化

一、序列化、反序列化概念 序列化(Serialization)是一种将对象以一连串的字节描述的过程,将程序中的对象,放入硬盘(文件)中保存就是序列化,如果不存放在磁盘中,而是一直存放在内存中,会增大内存的消耗;序列化就是将对象的状态信息转换为可以存储或传输的形式的过程;…