【问题标题】:Issues with storm execution in single node单节点风暴执行的问题
【发布时间】:2015-10-20 21:22:48
【问题描述】:

我们在单节点开发服务器中配置了 Storm,大部分配置设置为默认值(不是本地模式)。 让storm nimbus、supervisor和workers只在那个单一的节点上运行并且UI也被配置了。

AFAIK 并行性和配置因拓扑而异。 我认为找到正确的并行性和配置只能通过反复试验的方法。

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

奇怪的是结果出乎意料:

我们的拓扑处理来自 HDFS 目录的 xml 文件流。 有一个喷口(平行度始终为 1)和四个螺栓。

  • 单身工人

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

  • 多个工人

无论采用何种拓扑并行性,直到某个时间(大多数情况下为 10 分钟),我们都能获得与单个工作器相似的性能。

但在该完整拓扑重新启动后,没有任何错误跟踪。

我们观察到,在 5 个具有相同并行度的工作人员的情况下,单个工作人员在 20 分钟内处理的任何数据都需要 90 分钟。 此外,拓扑已在 5 个工作人员的情况下重新启动了 7 次。 而且CPU使用率比较高。 (其他人也遇到过这个拓扑重启问题http://search-hadoop.com/m/LrAq5ZWeaU 但没有答案)

在测试了许多配置后,我们发现具有较少并行度的单个 worker(每个 bolt 具有 2 或 3 个实例)比高并行度或更多的 worker 工作得更好。

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

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

为什么我们不能在单个节点中设置多个工人?

单个节点最多可以运行多少个worker?

需要对 Storm 配置进行哪些更改才能扩展性能? (我试过 nimbus.childopts 和 worker.childopts)

【问题讨论】:

  • 您测试 Storm 的机器的配置是什么?您是否遇到与您提供链接相同的错误?
  • 我不明白你的意思。当然,您可以在一个节点(风暴硬件)中定义多个工作人员。我每个节点使用 2 个或更多工作器(如果一个工作器死了,还剩下一个,所以我尽量避免在风暴集群中“死”硬件,因为应该还有一个仍在工作)。

标签: apache-storm


【解决方案1】:

如果您在一个节点上的 CPU 使用率很高,那么随着并行度的增加,您将不会获得任何更好的性能。如果您确实增加了并行度,那么对于恒定数量的 CPU 周期只会有更大的争用。对您的特定拓扑不了解更多,我只能建议您寻找减少螺栓和喷嘴的 CPU 使用率的方法。只有这样,添加更多 bolt 和 spout 实例才有意义。

【讨论】:

  • 平均 CPU 使用率仅低于 40%。请在下面找到 SAR 命令输出。 12:30:01 PM CPU %user %nice %system %iowait %steal %idle 12:40:01 PM 所有 0.28 0.00 0.24 0.02 0.00 99.46 12:50:01 PM 所有 30.75 0.00 7.37 0.36 0.00 61.52 01:00:1下午全部 22.33 0.00 6.69 0.23 0.00 70.76
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-12-01
  • 2019-01-07
  • 1970-01-01
  • 2022-01-24
  • 2020-04-05
  • 2015-01-22
  • 1970-01-01
相关资源
最近更新 更多