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

单节点Storm执行问题

狄玉书
2023-03-14

我们在单个节点开发服务器中配置了Storm,大部分配置设置为默认(非本地模式)。仅在该单个节点中运行Storm nimbus、监管者和辅助角色,UI也进行了配置。

AFAIK并行性和配置因拓扑而异。我认为找到正确的并行性和配置只是通过尝试和错误的方法。

因此,为了找到最佳的并行性,我们已经开始在单个节点中测试各种配置的Storm拓扑。

奇怪的是,结果出乎意料:

我们的拓扑处理来自HDFS目录的xml文件流。有一个喷口(并行总是1)和四个螺栓。

  • 单身工人

无论拓扑并行性如何,我们都能获得几乎相同的性能结果(数据处理率)

  • 多个工人

无论拓扑结构的并行性如何,我们都可以获得与单个工作程序类似的性能,直到某个时候(大多数情况下是10分钟)。

但是在那之后,完整的拓扑会重新启动,没有任何错误痕迹。

我们观察到,在20分钟内处理任何数据时,单个工人需要90分钟,而5个工人具有相同的并行性。此外,Topology已重启7次,共有5名工作人员。CPU使用率相对较高。(其他人也面临过这个问题http://search-hadoop.com/m/LrAq5ZWeaU(但没有回答)

在测试了许多配置后,我们发现具有较少并行度的单个辅助角色(每个螺栓具有2或3个实例)比高并行度或更多的辅助角色更好。

理想情况下,Storm拓扑的性能应该更好,没有更多工人/并行。

显然这条规则在这里不适用。

为什么我们不能在一个节点中设置多个worker?

在单个节点中可以运行的工作者的最大数量是多少?

扩展性能所需的Storm配置更改是什么?(我已经尝试了nimbus.childopts和worker.childopts)

共有1个答案

汝昀
2023-03-14

如果你在一个节点上的CPU使用率很高,那么你不会因为增加并行性而获得任何更好的性能。如果你确实增加了并行性,那么对于恒定数量的CPU周期只会有更大的竞争。不知道更多关于你的具体拓扑,我只能建议你寻找减少螺栓和喷口的CPU使用率的方法。只有这样,你才有意义添加更多的螺栓和喷口实例。

 类似资料:
  • 我正在学习Hadoop。 我在单节点上运行Hadoop。 据我所知,Reducer在Mapper完成后运行(这也是有道理的)。 但是当我在200MB文件上运行MapReduce作业时,Reducer在Mapper完成之前就启动了。我没有使用任何组合器。 谁能解释一下为什么?

  • 我想创建一个拓扑,其中一个喷口发出单词,一个bolt基于这些单词创建一个以word命名的目录。 我有两个supervisor节点,如果word以“a”到“l”开头,则在一个节点上创建目录,否则在另一个节点上创建目录。例如,如果word是“确认”,则将在一个节点上创建一个目录,如果word是“机器”,则将在另一个节点上创建目录。 附注。我使用Pyleus(https://github.com/yel

  • jps输出正确: 在主机上: 在5个从节点上:

  • 这些是我机器里的端口。tcp 0 0 0.0.0.0:8088 0.0.0.0:*侦听1001 50434 5765/Java tcp 0 0 0.0.0.0:*侦听1001 45587 5461/Java tcp 0 0 0.0.0.0:*侦听1001 45594 5461/Java tcp 0 0 0.0.0.0:*侦听1001 47365 5765/Java tcp 0 0 0.0.0.0:

  • 对于单个节点,我们以类型object为例,会进入reconcileSingleElement 你可以从这里看到reconcileSingleElement源码 const isObject = typeof newChild === 'object' && newChild !== null; if (isObject) { // 对象类型,可能是 REACT_ELEMENT_T

  • 我在跟踪http://jayatiatblogs.blogspot.com/2011/11/storm-installation.html 我的主节点10.0.0.185。我的从节点10.0.0.79,10.0.0.124 下面是我的动物园。我的从属节点的cfg: 下面是我的Storm。我的从属节点的yaml: 下面是暴风雨。我的主节点的yaml: 我在所有从属节点中启动zookeeper,然后在