在 Flink 中,我可以在同一个槽中拥有一个算子的多个子任务吗?

2024-03-25

探索Apache Flink几天了,对Task Slot的概念有些疑惑。虽然有人问了几个问题,但有一点我不明白。

我正在使用一个玩具应用程序进行测试,运行本地集群。我已禁用运算符链接

我从文档中知道插槽允许内存隔离而不是 CPU 隔离。阅读文档,任务槽似乎是一个 Java 线程。

1)当我以parallelism=1部署应用程序时,所有操作员的子任务都部署在同一个槽中。但是,如果我从open()的方法AbstractStreamOperator,我看到不同的子任务有不同的 ID。那么,它们不是共享同一个线程(即插槽吗?)。

2) 如果我将并行度从 1 更改为 3,则需要 3 个插槽才能正确重新部署应用程序。文档证实槽的数量限制了我可以拥有的并行性。但是为什么我可以在同一个槽中拥有不同算子的子任务,而不能在同一个槽中拥有同一算子的子任务呢?

感谢您的任何解释!


槽的想法是将可用资源分割成更小的部分。可用的托管内存均匀分布在所有插槽中。 CPU 周期和 JVM 堆内存不是与插槽正确隔离的。

在每个插槽中您可以部署一个或多个Tasks。弗林克Task由专用线程执行。因此,如果您有多个线程,则可以在同一个插槽中运行多个线程Tasks部署到它。

A Task表示单个 Flink 运算符或多个运算符(如果可链接)的并行实例。链接并不总是可行或理想的,但如果应用,它将融合运算符,以便它们由相同的运算符执行Task线。这通常更有效,因为上下文切换更少,并且无需将记录移交给不同的线程。

为了提高资源利用率(特别是对于Tasks需要很少的资源)并且为了更容易地推理运行 Flink 程序需要多少个槽,Flink 支持槽共享。槽共享意味着不同算子的并行实例可以部署到同一个槽。由于这个特性,Flink 尽可能创建不同算子的长管道并将它们部署到同一个槽。这还有一个很好的效果,可以增加生产者与其各自消费者的同地办公。由于此功能,用户知道他们只需要提供与一个拓扑的所有运算符的最大并行度一样多的插槽。

但是,由于您仍然希望将运算符的并行实例分布在所有可用的TaskExecutors,Flink不支持将同一算子的并行实例部署到同一槽位。如果你想这样做,那么你应该简单地将相应运算符的并行度减少到1.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Flink 中,我可以在同一个槽中拥有一个算子的多个子任务吗? 的相关文章

随机推荐

  • 在Python中提取每个子列表的第一项

    我想知道提取列表列表中每个子列表的第一项并将其附加到新列表的最佳方法是什么 所以如果我有 lst a b c 1 2 3 x y z 还有 我想拔出来a 1 and x并从中创建一个单独的列表 I tried lst2 append x 0
  • 在python中读取二进制文件

    我必须用 python 读取二进制文件 首先由 Fortran 90 程序这样编写 open unit 10 file filename form unformatted write 10 table n1 table n2 write 1
  • 如何将wordpress循环与网格系统引导程序一起使用?

    我想显示一个带两列的条形行 其中包含wordpress循环内容 标题 以绿色块表示 每行都有白色和灰色背景的列 这些列在每行中反转 就像国际象棋检查器一样 see the image for more detail 编辑答案 我相信这就是您
  • 如何让 Windows 错误报告 (WER) 保存内存转储以防止挂起?

    WER 正在应用程序挂起后创建内存转储 当 Windows 显示对话框时应用名称没有回应 如果用户点击关闭程序 我可以看到正在创建的 hdmp 文件C ProgramData Microsoft Windows WER Temp 将它们发送
  • 如何在 CherryPy 中使用 cookie 和 HTTP 基本身份验证?

    我有一个需要身份验证的 CherryPy Web 应用程序 我正在使用 HTTP 基本身份验证 其配置如下所示 app config tools sessions on True tools sessions name zknsrv too
  • 获取字符串形式的命令行参数

    我想将所有命令行参数打印为单个字符串 我如何调用脚本以及我期望打印的内容的示例 RunT py mytst tst c qwerty c mytst tst c qwerty c 执行此操作的代码 args str sys argv 1 a
  • PostgreSQL upsert 查询的问题

    我正在尝试通过更新或插入新记录来更新数据库投票用户表 该表定义如下 Column Type Modifiers id integer not null default nextval vote user table id seq regcl
  • 如何对类或函数定义进行哈希处理?

    背景 在尝试机器学习时 我经常通过 pickling unpickling 的方式重用之前训练过的模型 然而 在进行特征提取部分时 不混淆不同的模型是一个挑战 因此 我想添加一项检查 以确保使用与测试数据完全相同的特征提取过程来训练模型 P
  • 使用 nginx proxy_pass 和重写的多个 django 应用程序

    我有一个名为的 django admin 应用程序myapp我想在不同的物理盒子上部署多个实例 每个客户一个 但是 我希望它们都可以从类似的域访问 mydomain com customer1 myapp 我摆弄了特定的代理设置 并尝试了多
  • 如何在 JSF2 中将一个 @Named bean 注入到另一个 @Named bean 中?

    我有以下代码 Named RequestScoped public class SearchBean private String title private String author getters and setter s In se
  • C++ 中的结构对齐

    struct Vector float x y z func Vector vectors usage load float coords load file func coords 我有一个关于 C 中结构对齐的问题 我将把一组点传递给函
  • 如何检测scala执行上下文耗尽?

    我的 Playframework 应用程序有时没有响应 我想在运行时检测到这一点 记录有关当前在耗尽的执行上下文上运行的内容的信息 实现这一目标的最佳策略是什么 我考虑过将小型可运行对象发布到执行上下文 如果它们没有及时执行 我会记录一条警
  • 在 TabLayout 支持库中以编程方式设置选项卡指示器位置

    在我的应用程序中 我使用支持库中的 TabLayout 和视图寻呼机 其中有 3 个片段 假设我在 fragA 中 其中有一个按钮 单击该按钮会将我带到 fragB 我成功地转到 fragB 但唯一的问题是选项卡指示器保留在fragA Co
  • Meteor:读取简单的 JSON 文件

    我正在尝试使用 Meteor 读取 JSON 文件 我在 stackoverflow 上看到了各种答案 但似乎无法让它们发挥作用 我有试过这个 https stackoverflow com questions 22004412 how t
  • 如何使用 WPF 获得本机“外观和感觉”?

    我刚刚开始开发 WPF 应用程序 这不是我的第一个 WPF 应用程序 但它将是第一个需要改进的应用程序 我对 WPF 的 管道 了解很多 例如绑定等 但对如何完善它知之甚少 我不需要时髦的用户界面 我只需要一些看起来像本机 Windows
  • 从 Trello 身份验证中获取“未找到应用程序”

    我正在尝试调用 Trello API 的身份验证部分以获得用户令牌 我正在使用这个网址 https trello com 1 authorize callback method postMessage return url http 3A
  • python 模拟和未安装的库

    我正在为机器人开发软件 该软件通常在 Raspberry Pi 上运行 让我们考虑两个文件的导入 motor py 运行电机 from RPi import GPIO as gpio and client py 与服务器通信并将命令转发给电
  • 检查用户的 Postgres 访问权限

    我已经查看了文档GRANT Found here http www postgresql org docs 9 0 static sql grant html我试图看看是否有一个内置函数可以让我查看数据库的可访问性级别 当然有 dp and
  • 需要 viber webservice 或 api 地址 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 是否有任何 api 或 web 服务可以通过 c net 通过 viber 发送消息并获得交付 我用谷
  • 在 Flink 中,我可以在同一个槽中拥有一个算子的多个子任务吗?

    探索Apache Flink几天了 对Task Slot的概念有些疑惑 虽然有人问了几个问题 但有一点我不明白 我正在使用一个玩具应用程序进行测试 运行本地集群 我已禁用运算符链接 我从文档中知道插槽允许内存隔离而不是 CPU 隔离 阅读文