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

Apache Storm中调度/布局的控制

公英哲
2023-03-14

我正在由2个节点组成的Storm集群中运行wordcount拓扑。一个节点是主节点(带有Nimbus、UI和Logviewer),然后这两个节点都是Supervisor节点,每个节点都有一名工人。也就是说,我的主节点也是监管者,第二个节点只是监管者。正如我所说,每名主管有1名工人。

我使用的拓扑配置为使用这2个工作者(setnumworkers(2))。在细节上,该拓扑结构有1个喷口和2个Thread,1个分离螺栓和1个计数螺栓。当我使用默认调度程序部署拓扑时,第一个Supervisor有1个Spout线程和split Bolt,第二个Supervisor有1个Spout线程和count Bolt。

我希望我的问题足够清楚。请随时询问更多细节。我知道我可能需要挖掘Storm的源代码并重新编译。那很好。我正在寻找一个起点和如何进行的建议。

我正在使用的暴风版本是2.1.0。

共有1个答案

索梓
2023-03-14

调度由Storm中的可插拔调度程序处理。请参阅http://storm.apache.org/releases/2.1.0/storm-scheduler.html上的文档。

您可能希望查看defaultscheduler以获得参考https://github.com/apache/storm/blob/v2.1.0/storm-server/src/main/java/org/apache/storm/scheduler/defaultscheduler.java。这是Storm使用的默认调度程序,它有一点处理能力来禁止“坏的”工作人员进行分配,但在其他方面,它主要只是进行循环分配。

如果您不想实现集群范围内的调度程序,您可能可以将集群设置为使用ResourceWareScheduler,而使用拓扑级调度策略。您可以通过在提交拓扑时设置config.settopologyStrategy(YourStrategyHere.class)来进行设置。您将希望实现此接口https://github.com/apache/storm/blob/e909b3d604367e7c47c3bbf3ec8e7f6b672ff778/storm-server/src/main/java/org/apache/storm/blob/c427119f24bc0b14f81706ab4ad03404aa85aede/storm-server/src/main/java/org/apache/storm/scheduler/resource/strategies/schedule/defaultresourceawarestrategy.java

编辑:如果您实现了iStrategyisCheduler,则它们需要放在Nimbus机器上的Storm/lib中的一个jar中。策略或调度程序需要位于Nimbus进程的类路径上。

 类似资料:
  • 我有一个用两个螺栓处理文档的拓扑结构。我需要能够在文档被完全处理/通过整个拓扑结构后修改存储在喷口中的数据结构。在进一步了解ApacheStorm之前,我相信在spout中实现的“ack”方法只在拓扑的末尾被调用。我现在明白了,在每一个插销中都需要调用“ack”,我感到困惑。 本质上,如果我把自定义代码放在spout中的ack方法中:什么时候执行?每当'ack'方法被调用在一个螺栓或当整个元组树已

  • 本文向大家介绍Android布局控件之常用linearlayout布局,包括了Android布局控件之常用linearlayout布局的使用技巧和注意事项,需要的朋友参考一下 LinearLayout是线性布局控件,它包含的子控件将以横向或竖向的方式排列,按照相对位置来排列所有的widgets或者其他的containers,超过边界时,某些控件将缺失或消失。因此一个垂直列表的每一行只会有一个wid

  • 我正在创建一个GUI界面来与仓库的数据库进行交互。应用程序需要将项目添加到数据库,更新并显示它们。我在数据库中有一些表,对于每个表,我想创建一个JPanel,并将它们放在cardlayout中,这样我就可以使用JMenu项在它们之间导航。每个JPanel都有相同的表单。在顶部,有一个包含文本字段、组合框等的框,用于在表中添加项目。在这个框的下面,我有一个有1行的JTable,在这个框的下面,我在J

  • 问题内容: 我有一个UILabel,一个UIView在情节提要中并排包含其他子视图。UIView应该紧靠UILabel的右边缘(跟踪约束为1),但我还需要UIlabel(左侧的UIlabel)将其宽度设置为等于其内容大小,除非它达到最大宽度。视觉上: |标签文字| | UIViewWithSubviews | 我需要以下约束: 1)标签应明智地调整宽度大小,除非达到最大大小,并且高度也是动态的,这

  • 我试图创建一个简单的页面示例,顶部有一个菜单栏,底部有一个BorderLayoutContainer。我不知道如何让底部自动适应剩余的尺寸。 我有这样的想法: 菜单栏显示正确,但底部(BorderLayoutContainer)被完全挤压。如果我只是将BorderLayoutContainer添加到视口中,它会正确显示,即填充整个屏幕。 为什么大小没有从NorthSouthContainer的南部

  • 帮助我使用XML布局。 我在活动上有三个LinearLayout,所有LinearLayout的位置都是垂直的(从上到下) null