当前位置: 首页 > 知识库问答 >
问题:

Storm之间的通信。亚马尔的主管。插槽。端口和配置。setNumWorkers(#workers)方法调用

储修谨
2023-03-14

其他暴风用户:

建立Storm群的指南(https://github.com/nathanmarz/storm/wiki/Setting-up-a-Storm-cluster)指示主管。插槽。端口配置属性的设置应确保为机器上的每个工作进程分配一个单独的端口。

我的理解是,每个worker都是一个JVM实例,用于侦听来自nimbus控制器的命令。。因此,每个人都在一个单独的端口上监听是有道理的。

然而,在backtype上也有一个方法。暴风雨Config,它似乎允许定义工作人员的数量。如果对setNumWorkers的调用试图设置的工作线程数超过您为其配置的端口数,该怎么办?这似乎会把事情搞砸。

对我来说唯一有意义的是yaml配置定义了工人数量的上限。。每个拓扑可能会要求为其分配一些工作人员。但是,如果我提交了两个拓扑(到某个特定集群),每个拓扑都进行了调用配置。setNumWorkers(2),那么我最好配置四个端口。

这是正确的想法吗?

提前谢谢-克里斯

共有3个答案

施恩
2023-03-14

监督人插槽。港口是整个Storm群工人数量的硬限制。

Config.set数字工人(#工人)是工人数量拓扑的软限制。

这意味着Config.set数字工人(#工人)

假设我们总共有8个端口。拓扑将工作人员数配置为6。它将获得8个端口中的6个,剩余的2个工作端口将不使用。

向和歌
2023-03-14

你基本上是对的。

槽和工人之间有一个重要的区别。槽是工人可以实现的地方。比如说,当你设置一个有10个插槽的主管时,你设置的是在该主管上同时运行多达10个工人。如果您请求的工作人员多于插槽,Storm将尽其所能在可用插槽中安排工作(在某些情况下,这意味着,例如,一个工作人员可能会进入插槽,做一些工作,然后被另一个工作人员替换,以便拓扑可以继续),在某些方面,与操作系统没有什么不同,操作系统将进程安排在有限数量的“插槽”(处理器/内核/超线程/任何可用的)上运行。

潘嘉颖
2023-03-14

我认为上限猜测是正确的。我在我的笔记本电脑上设置了一个单机Storm集群,然后我构建了EquirmationPology(来自storm starter)。。我只设置了两名工人,但Prology引用了

但是,当我看到storm UI时,它告诉我'Num Workers'是2。

因此,您在storm.yaml文件中设置的似乎是一个上限,如果您要求的辅助角色比您配置的端口多,那么您只需要获得最大可用值。

(警告:我刚刚开始研究这方面的问题,而且我绝不是专家,所以我有可能错过了一些东西……但上面的报告就是我观察到的。)

 类似资料:
  • 你好,Stackoverflow社区,我是android新手,正在学习如何实现基于位置的服务<我成功地实现了一个速度计应用程序,它可以测量当前速度、总距离和总行驶时间。 现在,我想添加一个附加功能,如果速度增加40公里/小时,我会打开图片并使用前置摄像头拍照。 我对实现这一点感到困惑,因为location是作为一个单独的LocationService类提供的。我看了很多例子,但我无法将其应用到我的

  • 我有一个设备,可以在端口IN_PORT上监听UDP数据包,并在端口OUT_PORT上回显消息。我可以使用数据包发送者这样的测试软件与它通信。 我必须编写一个C库(目前是Win32)来与设备通信。我做了几次测试,但我仍然无法通信。我的猜测是使用这个工作流程: 创建套接字 用设备地址、AF_INET系列和侦听端口(OUT_port)填充sockaddr_in结构 绑定套接字 更改sockaddr_in

  • 问题内容: 因此,每个人都知道我们制作了一个Class来扩展和覆盖 ,然后在JS和本地Java(对于Android)之间建立了桥梁。进一步,我们使用返回结果返回给JS。 因此,所有这些都发生在从JS向Java插件发出请求的情况下。我的问题是, 如何将结果 异步 发送回JS (进而 发送回 HTML) ? 我不知道 异步 一词在这里。事情是我想发回一些东西到JS(例如,当wifi启用/禁用时)。 我

  • 按照https://cloud.google.com/endpoints/docs/openapi/get-started-cloud-functions入门指南获取CDN背后的云功能。将ESPv2 Beta部署到Cloud Run并获得预配的CloudRun服务URL。现在我的文件碰壁了。当我运行命令时: 我得到了错误响应: 我正在使用的似乎与教程中的示例几乎相同,并且似乎此错误表示云函数终结点

  • 我有任务要做,我有点卡住了。我要做4个服务(A,B,C,D)。每个服务都应该有自己的线程。它们应该按顺序开始并运行。如果服务A启动,则可以启动服务B,如果服务B启动,如果服务C启动,则可以启动服务D。我设法创建了服务及其线程,但我不知道如何在PriorityService类中的start()和priority()方法之间创建通信。我想检查服务(线程)A是否活着,如果是,我想从列表移到第二个服务,等

  • 您可以通过不同方式配置主机和端口,如下列出从最高优先级到最低优先级。 注意: 如果为port指定字符串值'0'(不是 0),将为您的Nuxt应用程序分配一个随机端口。 作为命令参数直接传递 nuxt --hostname myhost --port 3333 或 "scripts": { "dev": "nuxt --hostname myhost --port 3333" } 在 nuxt.