• Flink部署模式


    部署模式

    • 会话模式(Session Mode)

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

    • 应用模式(Application Mode)

    会话模式(Session Mode)

    ​ 我们需要先启动一个集群,保持一个会话,在这个会话中通过客户端提交作业。这样的好处很明显,我们只需要一个集群,就像一个大箱子,所有的作业提交之后都塞进去;集群的生命周期是超越于作业之上的,铁打的营盘流水的兵,作业结束了就释放资源,集群依然正常运行。当然缺点也是显而易见的:因为资源是共享的,所以资源不够了,提交新的 作业就会失败。另外,同一个 TaskManager 上可能运行了很多作业,如果其中一个发生故障导致 TaskManager 宕机,那么所有作业都会受到影响。

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

    单作业模式(Per-Job Mode)

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

    ​ 由客户端运行应用程序,然后启动集群,作业被提交给 JobManager,进而分发给 TaskManager 执行。作业 作业完成后,集群就会关闭,所有资源也会释放。样由客户端运行 应用程序,然后启动集群,作业被提交给 JobManager,进而分发给 TaskManager 执行。作业 作业完成后,集群就会关闭,所有资源也会释放。

    ​ 这些特性使得单作业模式在生产环境运行更加稳定,所以是实际应用的首选模式,但Flink 本身无法直接这样运行,所以单作业模式一般需要借助一些资源管理框架来启动集群。

    应用模式(Application Mode)

    ​ 我们需要为每一个提交的应用单独启动一个 JobManager,也就是创建一个集群。这 个 JobManager 只为执行这一个应用而存在,执行结束之后 JobManager 也就关闭了,这就是所谓的应用模式。

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

    独立模式(Standalone)和 YARN 模式

    独立模式(Standalone)

    ​ 独立模式(Standalone)是部署 Flink 最基本也是最简单的方式:所需要的所有 Flink 组件, 都只是操作系统上运行的一个 JVM 进程。 独立模式是独立运行的,不依赖任何外部的资源管理平台;当然独立也是有代价的:如果 资源不足,或者出现故障,没有自动扩展或重分配资源的保证,必须手动处理。所以独立模式 一般只用在开发测试或作业非常少的场景下。

    ​ 会话模式(Session Mode)和 应用模式(Application Mode)都支持。Flink 本身无法直接以单作业方式启动集群,一般需要借助一些资 源管理平台。所以 Flink 的独立(Standalone)集群并不支持单作业模式部署。

    YARN 模式

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

    相关准备和配置

    ​ 在 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 1.11.0 版本之后,增加了很多重要新特性,其 中就包括增加了对Hadoop3.0.0以及更高版本Hadoop的支持,不再提供“flink-shaded-hadoop-*” jar 包,而是通过配置环境变量完成与 YARN 集群的对接。 在将 Flink 任务部署至 YARN 集群之前,需要确认集群是否安装有 Hadoop,保证 Hadoop 版本至少在 2.2 以上,并且集群中安装有 HDFS 服务。

    具体配置步骤如下:

    (1)下载并解压安装包,并将解压后的安装包重命名为 flink-1.13.0-yarn, 本节的相关操作都将默认在此安装路径下执行。

    (2)配置环境变量,增加环境变量配置如下:

     sudo 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` 
    
    • 1
    • 2
    • 3

    这里必须保证设置了环境变量 HADOOP_CLASSPATH。

  • 相关阅读:
    记录使用vant组件库的Popup的问题
    【Redis】SortedSet类型
    go学习-基本知识点
    docker下的nginx代理转发到tomcat
    Web前端开发技术课程大作业,期末考试HTML+CSS+JavaScript电竞游戏介绍网站
    存储器-页式存储
    ubuntu 23.04安装中文输入法
    image图片之间的间隙消除
    C语言数据结构算法之求出栈序列个数、判断出栈序列是否合法、求所有合法出栈序列、入栈次数、出栈次数、
    uniapp打包安卓后在安卓屏上实现开机自启动
  • 原文地址:https://blog.csdn.net/qq_42575907/article/details/125476842