百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

FLINK(Yarn模式)的安装与部署(flink安装教程)

itomcoil 2025-04-01 19:01 40 浏览

原文链接:https://blog.csdn.net/... 收藏时间:2024年04月03日 文档目录:我的云文档/应用/金山收藏助手 本文档由【金山收藏助手】一键生成

为什么要用Flink On Yarn HA 模式

默认情况下,Flink 只有一个JobManager,这将导致单点故障,使用JobManager HA ,集群可以从单点故障中恢复,从而避免单点故障,我们可以在Standalone 或 Flink on Yarn 集群下配置Flink集群HA(高可用性)。而Flink on Yarn的高可用性其实主要是利用Yarn的任务恢复机制实现的。生产环境推荐使用Yarn。

首先,在集群运行时,可能会有很多的集群实例包括MapReduce、Spark、Flink等等,那么如果它们全基于on Yarn就可以完成资源分配,减少单个实例集群的维护,提高集群的利用率。

其次,Flink 是大数据计算框架,不是资源调度框架,这并不是它的强项;所以还是应该让专业的框架做专业的事,和其他资源调度框架集成更靠谱。而在目前大数据生态中,国内应用最为广泛的资源管理平台就是 YARN 了。在强大的 YARN 平台上 Flink 是如何集成部署的。整体来说,YARN 上部署的过程是:客户端把 Flink 应用提交给 Yarn 的 ResourceManager,Yarn 的 ResourceManager 会向 Yarn 的 NodeManager 申请容器。在这些容器上,Flink 会部署JobManager 和 TaskManager 的实例,从而启动集群。Flink 会根据运行在 JobManger 上的作业所需要的 Slot 数量动态分配 TaskManager 资源。

而且,Flink on Yarn模式安装部署要做的其实不多,正常的步骤:上传二进制包 ,解压,更改文件名称,配置环境变量。

Fink on Yarn 有两种内存管理模式。

  • 内存集中管理模式:在Yarn中初始化一个Flink集群,开辟指定的资源,之后我们提交的Flink Jon都在这个Flink yarn-session中,也就是说不管提交多少个job,这些job都会共用开始时在yarn中申请的资源。这个Flink集群会常驻在Yarn集群中,除非手动停止。
  • 内存Job管理模式【推荐使用】:在Yarn中,每次提交job都会创建一个新的Flink集群,任务之间相互独立,互不影响并且方便管理。任务执行完成之后创建的集群也会消失。

Flink on Yarn HA 模式部署

2.1、基本环境搭建

2.1.1、克隆出虚拟机并创建hadoop用户

hadoop100,hadoop101,hadoop102,hadoop103,hadoop104 五台虚拟机(虚拟机配置见虚拟机环境搭建)及补充

登录root 用户,创建hadoop用户(useradd hadoop)

修改hadoop密码(passwd hadoop)

给hadoop用赋予root 权限

修改/etc/passwd文件,找到如下行,把用户ID修改为 0 ,如下所示:

hadoop:x:500:500:hadoop:/home/hadoop:/bin/bash

改为:

hadoop:x:0:500:hadoop:/home/hadoop:/bin/bash

2.1.2、修改虚拟机 hostname

[root@hadoop100 ~]# vi /etc/hostname 

重启后生效。

2.1.3、修改虚拟机 hosts

[root@hadoop100 ~]# vi /etc/hosts

2.1.4、设置虚拟机的免密登录

免密登录参考

2.1.5、关闭虚拟机防火墙

[root@hadoop100 ~]# systemctl disable firewalld
[root@hadoop100 ~]#  chkconfig iptables off

2.1.6、目录规划

规划安装目录:/home/hadoop/apps

规划数据目录:/home/hadoop/data

注:apps和data文件夹需要自己单独创建

2.1.7、安装配置JDK 1.8

https://www.oracle.com/java/technologies/downloads/#java8

下载 jdk-8u371-linux-x64.tar.gz

将安装包上传到hadoop100 /home/hadoop/apps 目录下,没有则创建它。

解压

[root@hadoop100 apps]# tar -zxvf jdk-8u371-linux-x64.tar.gz

改名

[root@hadoop100 apps]# mv jdk1.8.0_371 jdk1.8

配置JAVA_HOME

[root@hadoop100 apps]# vi /etc/profile

末尾加上

export JAVA_HOME=/home/hadoop/apps/jdk1.8
export PATH=$PATH:$JAVA_HOME/bin
[root@hadoop100 apps]# source /etc/profile
[root@hadoop100 apps]# java -version
openjdk version "1.8.0_161"
OpenJDK Runtime Environment (build 1.8.0_161-b14)
OpenJDK 64-Bit Server VM (build 25.161-b14, mixed mode)

分发该目录到其它四个节点并让环境生效

[root@hadoop100 apps]# scp -r /home/hadoop/apps/ hadoop101:/home/hado

相关推荐

Python编程实现求解高次方程_python求次幂
Python编程实现求解高次方程_python求次幂

#头条创作挑战赛#编程求解一元多次方程,一般情况下对于高次方程我们只求出近似解,较少的情况可以得到精确解。这里给出两种经典的方法,一种是牛顿迭代法,它是求解方程根的有效方法,通过若干次迭代(重复执行部分代码,每次使变量的当前值被计算出的新值...

2025-10-23 03:58 itomcoil

python常用得内置函数解析——sorted()函数

接下来我们详细解析Python中非常重要的内置函数sorted()1.函数定义sorted()函数用于对任何可迭代对象进行排序,并返回一个新的排序后的列表。语法:sorted(iterabl...

Python入门学习教程:第 6 章 列表

6.1什么是列表?在Python中,列表(List)是一种用于存储多个元素的有序集合,它是最常用的数据结构之一。列表中的元素可以是不同的数据类型,如整数、字符串、浮点数,甚至可以是另一个列表。列...

Python之函数进阶-函数加强(上)_python怎么用函数

一.递归函数递归是一种编程技术,其中函数调用自身以解决问题。递归函数需要有一个或多个终止条件,以防止无限递归。递归可以用于解决许多问题,例如排序、搜索、解析语法等。递归的优点是代码简洁、易于理解,并...

Python内置函数range_python内置函数int的作用

range类型表示不可变的数字序列,通常用于在for循环中循环指定的次数。range(stop)range(start,stop[,step])range构造器的参数必须为整数(可以是内...

python常用得内置函数解析——abs()函数

大家号这两天主要是几个常用得内置函数详解详细解析一下Python中非常常用的内置函数abs()。1.函数定义abs(x)是Python的一个内置函数,用于返回一个数的绝对值。参数:x...

如何在Python中获取数字的绝对值?

Python有两种获取数字绝对值的方法:内置abs()函数返回绝对值。math.fabs()函数还返回浮点绝对值。abs()函数获取绝对值内置abs()函数返回绝对值,要使用该函数,只需直接调用:a...

贪心算法变种及Python模板_贪心算法几个经典例子python

贪心算法是一种在每一步选择中都采取当前状态下最优的选择,从而希望导致结果是全局最优的算法策略。以下是贪心算法的主要变种、对应的模板和解决的问题特点。1.区间调度问题问题特点需要从一组区间中选择最大数...

Python倒车请注意!负步长range的10个高能用法,让代码效率翻倍

你是否曾遇到过需要倒着处理数据的情况?面对时间序列、日志文件或者矩阵操作,传统的遍历方式往往捉襟见肘。今天我们就来揭秘Python中那个被低估的功能——range的负步长操作,让你的代码优雅反转!一、...

Python中while循环详解_python怎么while循环

Python中的`while`循环是一种基于条件判断的重复执行结构,适用于不确定循环次数但明确终止条件的场景。以下是详细解析:---###一、基本语法```pythonwhile条件表达式:循环体...

简单的python-核心篇-面向对象编程

在Python中,类本身也是对象,这被称为"元类"。这种设计让Python的面向对象编程具有极大的灵活性。classMyClass:"""一个简单的...

简单的python-python3中的不变的元组

golang中没有内置的元组类型,但是多值返回的处理结果模拟了元组的味道。因此,在golang中"元组”只是一个将多个值(可能是同类型的,也可能是不同类型的)绑定在一起的一种便利方法,通常,也...

python中必须掌握的20个核心函数——sorted()函数

sorted()是Python的内置函数,用于对可迭代对象进行排序,返回一个新的排序后的列表,不修改原始对象。一、sorted()的基本用法1.1方法签名sorted(iterable,*,ke...

12 个 Python 高级技巧,让你的代码瞬间清晰、高效

在日常的编程工作中,我们常常追求代码的精简、优雅和高效。你可能已经熟练掌握了列表推导式(listcomprehensions)、f-string和枚举(enumerate)等常用技巧,但有时仍会觉...

Python的10个进阶技巧:写出更快、更省内存、更优雅的代码

在Python的世界里,我们总是在追求效率和可读性的完美平衡。你不需要一个数百行的新框架来让你的代码变得优雅而快速。事实上,真正能带来巨大提升的,往往是那些看似微小、却拥有高杠杆作用的技巧。这些技巧能...