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

Storm中遗嘱执行人的数量

冯元徽
2023-03-14

我正在玩Storm。这是我正在使用的拓扑:

builder.setSpout("word", new RandomSentenceSpout(), 3);
builder.setBolt("exclaim1", new ExclamationBolt(), 6).shuffleGrouping("word");

我以为Storm会为这个拓扑产生9个执行器(3个喷口6个螺栓),但当我实际运行它时,我可以看到11个执行器正在运行。

那两个额外的遗嘱执行人是什么?

共有2个答案

阮炯
2023-03-14

您是否在拓扑中的其他地方设置了Num任务?共享拓扑创建代码将有助于回答。此外,您是在本地模式还是集群模式下运行此程序?执行者总是小于或等于Num任务。http://www.michael-noll.com/blog/2012/10/16/understanding-the-parallelism-of-a-storm-topology/这个博客很好地解释了Storm中的并行性。

路欣荣
2023-03-14

它们是负责管理确认机制的acker Bolt。拓扑中有2个acker,默认情况下每个bolt任务等于一个执行者。

Storm使用acker作为一个螺栓任务(执行器),如果我们不设置acker的数量,它将在拓扑中运行其中的一些。如果你想精确管理执行器的数量,请使用以下内容:

Config conf = new Config();
conf.setNumAckers(1);
 类似资料:
  • 我要管理一个客户端服务器应用程序 关闭服务器频道 但我想知道为什么。terminate(由ExecutionHandler调用)对传递的ExecutorService执行ShutdowNow,因为ShutdowNow会耗尽队列中的所有现有任务并返回它们。无法执行任务,因为ExecutorUtil。terminate是void类型。在ExecutorService上调用shutdown并等待完成不是

  • 我们在单个节点开发服务器中配置了Storm,大部分配置设置为默认(非本地模式)。仅在该单个节点中运行Storm nimbus、监管者和辅助角色,UI也进行了配置。 AFAIK并行性和配置因拓扑而异。我认为找到正确的并行性和配置只是通过尝试和错误的方法。 因此,为了找到最佳的并行性,我们已经开始在单个节点中测试各种配置的Storm拓扑。 奇怪的是,结果出乎意料: 我们的拓扑处理来自HDFS目录的xm

  • 我正在尝试重新平衡正在运行的Apache Storm(0.9.5)拓扑中的bolt执行程序的数量。当我对Nimbus节点执行命令时,它接受命令行输入,但当我在Storm UI中查看时,执行者的数量不会改变。 是不是有一个限制,我没有意识到,就像再平衡不能增加执行者的总数,只能把他们从一个螺栓移动到另一个螺栓?

  • 我是Apache Storm的新手,正在尝试为我的用例设计一个简单的拓扑。Storm中对并行性的解释(理解一个Storm拓扑的并行性)给我留下了两个疑问: 请回答以上疑问,如有不正确之处,请更正我的理解。

  • 问题内容: 我有一个风暴拓扑来处理来自Kafka的消息,并根据手头的任务在Cassandra中进行HTTP调用/保存。我会尽快处理这些消息。由于来自外部源(例如HTTP)的响应,很少有消息没有得到完全处理。如果HTTP服务器在一段时间后不响应/返回错误消息以重试,我想为重试实现指数补偿机制。我想不出什么主意就能实现它们。我想知道如果还有其他可以容错的解决方案,那么其中哪一个将是更好的解决方案。由于