首页 > 其他分享 >Flink-Yarn模式修改Task Slot的数量

Flink-Yarn模式修改Task Slot的数量

时间:2024-09-26 17:24:35浏览次数:7  
标签:Slot flink 配置文件 Flink YARN TaskManager Task conf

1.修改 Flink 配置文件 (flink-conf.yaml)

Flink 中的 TaskManager 是根据 slots 来分配任务的,默认情况下,一个 TaskManager 可以有多个 slots。你可以通过调整 flink-conf.yaml 中的以下配置来控制每个 TaskManager 的 slot 数量:

taskmanager.numberOfTaskSlots: <number_of_slots>`

(1)先找到配置文件路径

(1.1)使用 find 命令

find 命令可以帮助你从指定的目录下递归查找文件。假设你不知道具体的 Flink 安装目录,可以从根目录 / 开始查找:

find / -name flink-conf.yaml

(1.2)使用 locate 命令

如果系统中安装了 locate,它可以通过预先构建的文件索引快速查找文件。首先确保更新索引数据库:

sudo updatedb

然后使用 locate 查找文件:

locate flink-conf.yaml

(1.3)使用 grep 命令

如果你知道 flink-conf.yaml 的大致目录,可以使用 grep 搜索文件内容中的关键字。假设 Flink 安装在 /opt/flink 目录下,可以通过以下命令查找包含特定配置项的文件:

grep -r "taskmanager.numberOfTaskSlots" /opt/flink

这样可以直接找到包含配置项的文件路径。

(2)修改配置文件参数

修改如下参数即可

2.重启Flink集群

这里要区分不同的Flink启动方式, 方式不同要修改配置文件的数量不同

(1)Standalone 模式

在 Standalone 模式下,Flink 集群由多个 TaskManager 和 JobManager 组成,每个节点(无论是运行 JobManager 还是 TaskManager)都需要加载自己的 flink-conf.yaml 配置文件。

操作步骤:

  • 每台机器都需要修改:由于每个 TaskManager 都依赖于本地的配置文件来确定 slots 的数量,因此你需要在三台机器上分别修改 flink-conf.yaml 中的 taskmanager.numberOfTaskSlots 参数。
    操作步骤如下:
    1. 在每一台机器上找到 Flink 安装目录。
    2. 打开 conf/flink-conf.yaml 文件。
    3. 修改 taskmanager.numberOfTaskSlots 的值。
    4. 保存修改。
  • 重启整个集群:在修改配置之后,需要重启 Flink 集群。每台机器上运行的 TaskManager 都会根据新的配置文件加载 slots 数量。
  • 你可以通过以下步骤完成重启:
    • 在主节点(JobManager 所在的机器)上停止集群:
      ./bin/stop-cluster.sh
      
    • 然后在主节点上重新启动集群:
      ./bin/start-cluster.sh
      

Flink 会自动从主节点调度任务到所有的 TaskManager(即每个节点),因此每台机器的配置需要保持一致。

(2)YARN 模式

如果你使用的是 YARN 或 Kubernetes 部署模式,集群的 TaskManager 是动态分配的,而不是直接安装在每台机器上。

  • 在 YARN 模式下,配置文件通常只需要在 JobManager 启动时生效,因此你可以在主节点(YARN Client)修改配置,然后重新提交作业。YARN 会根据这些配置分配 TaskManager 的资源。

可以通过以下步骤重新启动集群:

  • 如果作业正在运行,你可以使用以下命令手动停止作业:
    yarn application -kill <application_id>
    
    其中,<application_id> 是 YARN 分配给该 Flink 作业的 ID,可以通过以下命令查看当前运行的作业:
    yarn application -list
    
    另外,你也可以在 Flink Web UI 上通过点击 "Cancel Job" 按钮停止正在运行的作业。
  • 启动 YARN 会话集群
    如果你希望启动一个 YARN 会话集群,可以使用以下命令:
    ./bin/yarn-session.sh -n <number_of_taskmanagers> -jm <jobmanager_memory> -tm <taskmanager_memory>
    
    -n:指定 TaskManager 数量。
    -jm:指定 JobManager 的内存大小。
    -tm:指定每个 TaskManager 的内存大小。
    启动会话集群后,你可以通过 Flink Web UI(默认地址 http://<JobManager_IP>:8081)提交多个作业到这个会话集群
  • 示例:
    bin/yarn-session.sh -nm flink-yarn-session-ha-dev -d
    

(3)Kubernetes 模式

如果你使用的是 YARN 或 Kubernetes 部署模式,集群的 TaskManager 是动态分配的,而不是直接安装在每台机器上。

操作步骤:

  • 在 Kubernetes 中,TaskManager 是作为容器动态创建的。你只需要修改 Kubernetes 配置文件或者 Flink 的 ConfigMap,并在 Kubernetes 集群中重新部署 TaskManager,所有新的 TaskManager 都会使用你配置的 slots 数量。

(4)总结

  • Standalone 模式:你需要在所有三台机器上修改 flink-conf.yaml 文件,因为每个 TaskManager 节点会独立加载配置文件。
  • YARN/Kubernetes 模式:一般只需要在 JobManager 或客户端节点上修改配置,并通过 YARN 或 Kubernetes 动态分配 TaskManager。
    因此,在 Standalone 模式下,每台机器都要同步修改 flink-conf.yaml,而 YARN 或 Kubernetes 模式下的操作会稍微简单一些,只需修改主节点上的配置。

标签:Slot,flink,配置文件,Flink,YARN,TaskManager,Task,conf
From: https://www.cnblogs.com/AiTtang/p/18433806

相关文章

  • Flink(二)集群安装
    集群安装Standalone模式安装解压缩[user@hadoop102software]$tar-zxvfflink-1.10.1-bin-scala_2.12.tgz-C/opt/module/修改flink/conf/flink-conf.yaml文件jobmanager.rpc.address:hadoop102修改/conf/slaves文件hadoop103hadoop104分发给其他两台虚拟......
  • RME40002 Mechatronics Systems Design – Portfolio Tasks Description
    RME40002MechatronicsSystemsDesign–PortfolioTasksDescriptionSchoolofScience,ComputingandEngineeringTechnologiesRME40002MechatronicsSystemsDesignPortfolioTasksDescriptionSemester2,2024Page1of21RME40002MechatronicsSystemsDesig......
  • flink的发展历程
    ApacheSpark和ApacheFlink都是开源的分布式大数据处理框架,它们各自有着不同的特点和发展历程。ApacheSpark:起始时间:2009年,由加州大学伯克利分校AMPLab开发。开源时间:2010年,MateiZaharia将其开源。主要发展:2013年,成为Apache基金项目。2014年,成为Apache顶级项目。2016年......
  • 手动取消并释放Task资源
    用取消令牌取消TaskCancellationTokenSource:取消令牌cancellationTokenSource?.Cancel();:其中?表示判断cancellationTokenSource是否为null,如果不是null才取消,否则会造成找不到实例的异常当!cancellationToken.IsCancellationRequested后则不再进入While循环中,最后等待Threa......
  • Flink(一)概述
    Flink概述ApacheFlink是一个框架和分布式处理引擎,用于对无界和有界数据流进行状态计算Flink特点事件驱动(Event-driven)事件驱动型应用是一类具有状态的应用,它从一个或多个事件流提取数据,并根据到来的事件触发计算、状态更新或其他外部动作比较典型的就是以kafka为代表的消......
  • 利用 Flink CDC 实现实时数据同步与分析
    1.概述1.1简要介绍什么是FlinkCDC(ChangeDataCapture)FlinkCDC(ChangeDataCapture)是一种用于实时捕获和处理数据库中数据变更的技术。它通过监控数据库的变更事件,将这些事件转化为流式数据,使得数据处理系统(如ApacheFlink)能够以流的方式实时处理和分析数据。FlinkC......
  • 初步学习async/await,Task.GetAwaiter,Task.Result
    初步学习async/await,Task.GetAwaiter,Task.Result   网上关于async/await的知识有很多,看了很多但不如自己实践一遍来得快,所以这里记录下我的理解和大家学习下。  首先以最简单的同步方法来开始如下privatestaticvoidTest(){Console.Wr......
  • Docker-compose 启动 mysql 报错 ERROR: for mysql Cannot start service mysql: fai
    报错详情root@hadoop107cmp]#docker-composeconfig-q[root@hadoop107cmp]#ll总用量70192-rw-r--r--.1rootroot718650749月2406:45docker-boot-0.0.1-SNAPSHOT.jar-rw-r--r--.1rootroot10149月2408:26docker-compose.yml-rw-r--r--.1rootro......
  • Flink CDC介绍:基于流的数据集成工具
    FlinkCDC是一个基于流的数据集成工具,旨在为用户提供一套功能更加全面的编程接口(API)。该工具使得用户能够以YAML配置文件的形式,优雅地定义其ETL(Extract,Transform,Load)流程,并协助用户自动化生成定制化的Flink算子并且提交Flink作业。FlinkCDC在任务提交过程中......
  • 尚硅谷-flink
    一、介绍1.简介flink是一个开源的分布式流处理框架优势:高性能处理、高度灵活window操作、有状态计算的Exactly-once等详情简介,参考官网:https://flink.apache.org/flink-architecture.html中文参考:https://flink.apache.org/zh/flink-architecture.......