当前位置: 首页 > news >正文

网站排名优化电话搭建一个网址

网站排名优化电话,搭建一个网址,网站开发与运用,北京神州网站建设Flink on YARN,如何确定 TaskManager 数 1.问题2.并行度(Parallelism)3.任务槽(Task Slot)4.确定 TaskManager 数 1.问题 在 Flink 1.5 Release Notes 中,有这样一段话,直接上截图。 这说明从 …

Flink on YARN,如何确定 TaskManager 数

  • 1.问题
  • 2.并行度(Parallelism)
  • 3.任务槽(Task Slot)
  • 4.确定 TaskManager 数

在这里插入图片描述

1.问题

在 Flink 1.5 Release Notes 中,有这样一段话,直接上截图。

在这里插入图片描述
这说明从 1.5 版本开始,Flink on YARN 时的容器数量,即 TaskManager 数量,将由程序的并行度自动推算,也就是说 flink run 脚本的 -yn / --yarncontainer 参数不起作用了(该参数用于设置 TaskManager 的个数)。那么自动推算的规则是什么呢?要弄清楚它,先来复习 Flink 的 并行度Parallelism)和 任务槽Task Slot)。

2.并行度(Parallelism)

与 Spark 类似地,一个 Flink Job 在生成执行计划时也划分成多个 Task。Task 可以是 Source、Sink、算子或算子链。Task 可以由多线程并发执行,每个线程处理 Task 输入数据的一个子集,而并发的数量就称为 Parallelism,即 并行度

Flink 程序中设定并行度有 4 种级别,从低到高分别为:算子级别执行环境级别ExecutionEnvironment)、客户端(命令行)级别配置文件级别flink-conf.yaml)。实际执行时,优先级则是反过来的,算子级别最高。简单示例如下:

  • 1️⃣ 算子级别
dataStream.flatMap(new SomeFlatMapFunction()).setParallelism(4);
  • 2️⃣ 执行环境级别
streamExecutionEnvironment.setParallelism(4);
  • 3️⃣ 命令行级别
bin/flink -run --parallelism 4 example-0.1.jar
  • 4️⃣ flink-conf.yaml 级别
parallelism.default: 4

3.任务槽(Task Slot)

Flink 运行时由两个组件组成:JobManager 与 TaskManager,与 Spark Standalone 模式下的 Master 与 Worker 是同等概念。

在这里插入图片描述
JobManager 和 TaskManager 本质上都是 JVM 进程。为了提高 Flink 程序的运行效率和资源利用率,Flink 在 TaskManager 中实现了 任务槽Task Slot)。任务槽是 Flink 计算资源的基本单位,每个任务槽可以在同一时间执行一个 Task,而 TaskManager 可以拥有一个或者多个任务槽。

任务槽可以实现 TaskManager 中不同 Task 的资源隔离,不过是逻辑隔离,并且只隔离内存,亦即在调度层面认为每个任务槽 “应该” 得到 taskmanager.heap.size 1 / N 1/N 1/N 大小的内存,CPU 资源不算在内。

TaskManager 的任务槽个数在使用 flink run 脚本提交 on YARN 作业时用 -ys / --yarnslots 参数来指定,另外在 flink-conf.yaml 文件中也有默认值 taskManager.numberOfTaskSlots。一般来讲,我们设定该参数时可以将它理解成一个 TaskManager 可以利用的 CPU 核心数,因此也要根据实际情况(集群的 CPU 资源和作业的计算量)来确定。

4.确定 TaskManager 数

以 Flink 自带示例中简化的 WordCount 程序为例:

// 执行环境并行度设为6
env.setParallelism(6);
// Source并行度为1
DataStream<String> text = env.readTextFile(params.get("input")).setParallelism(1);
DataStream<Tuple2<String, Integer>> counts = text.flatMap(new Tokenizer()).keyBy(0).sum(1);
counts.print();

--yarnslots 3 参数来执行,即每个 TaskManager 分配 3 个任务槽。TaskManager、任务槽和任务的分布将如下图所示,方括号内的数字为并行线程的编号。

在这里插入图片描述
由图中可以看出,由于算子链机制的存在,KeyAggSink 操作链接在了一起,作为一个 Task 来执行。

Flink 允许任务槽共享,即来自同一个 Job 的不同 SubTask(即 算子的并发实例)进入同一个槽位,因此在图中也可以见到任务槽 X 中同时存在 FlatMap[X]KeyAgg[X] + Sink[X]。任务槽共享有两点好处:

  • 能够让每个 SubTask 都均摊到不同的 TaskManager,避免负载倾斜。
  • 不需要再计算 App 一共需要起多少个 Task,因为作业需要的任务槽数量肯定等于 Job 中最大的并行度。

所以,可以得出 Flink on YARN 时,TaskManager 数 = Job 的最大并行度 / 每个TaskManager 分配的任务槽数,结果向上取整。例如,一个最大并行度为 10,每个 TaskManager 有 2 个任务槽的作业,就会启动 5 个 TaskManager,如 Web UI 所示。

在这里插入图片描述

http://www.yayakq.cn/news/838371/

相关文章:

  • 做网站软件frontpage网站建设感恩
  • 用asp.net 做网站dede5.7微电影网站模板
  • 设计企业网站主页图片长沙百度首页排名
  • 网站编写语言微信公众号小程序怎么开发
  • 做电子商务平台网站需要多少钱琪恋网站建设
  • seo属于什么杭州seo推广公司
  • 建设网站的风险国内常用的crm系统
  • 电商网站设计制作兰州市建设厅官方网站
  • 网站做分站整站优seo排名点击
  • 北京做网站推广的公司网站系统建设合同范本
  • 2017网站建设报价表滦南县建设局网站
  • 安徽网新科技网站建设介绍昆山网站建设详细方案
  • 淘客网站建设视频网站建设如何查看后台数据库
  • 简述网站内容管理流程推广普通话海报
  • 网站免费正能量安全自动翻译wordpress中文标签别名为英文
  • 网站建设 摄影服务惠州seo计费管理
  • 网站推广网wordpress the7 中文视频教程
  • 佛山网站设计特色seo织梦网站建设步骤
  • 绍兴网站制作网站微信小程序开发网站建设
  • 阿坝州建设局网站刘志彬app研发风险
  • 网站运营与管理论文做网站设置时间
  • 钓鱼网站的域名怎么不稳定wordpress教学视频
  • 手机网站菜单设计wordpress简码
  • 顶顶呱网站建设南京网站建设 ww
  • 网站seo关键词排名推广网站建设功能怎么写
  • 咨询行业网站建设公司有效推广网站
  • 机械毕业设计代做网站推荐好的公文写作网站
  • 北京做网站建设公司哪家好wordpress图床
  • jsp手机版网站开发网站制作工具
  • 网站关键词排名批量查询外贸网站销售方式