2015-03-13 46 views
0

我们将Storm配置在单个节点开发服务器中,大多数配置设置为默认(非本地模式)。 有暴风雨,管理员和工人只运行在单个节点和UI也配置。在单个节点中执行风暴的问题

AFAIK并行和配置不同于拓扑到拓扑。 我认为找到正确的并行性和配置只是通过试错法。

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

奇怪的结果是出人意料:

我们的拓扑从HDFS目录处理XML文件流。 有一个喷嘴(平行度总是1)和四个螺栓。

  • 单身职工

无论拓扑结构并行,我们得到了几乎相同的性能结果(数据处理的速度)

  • 多工人

无论拓扑结构并行我们获得与单个工作人员相似的表现,直到某个时候(大部分情况下是10分钟)。

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

我们观察到,无论20分钟处理单个工人的数据花费90分钟,5个工人具有相同的并行性。 同样拓扑结构已经有5次重启7次。 而CPU使用率相对较高。 (其他人也都面临这种拓扑重启问题http://search-hadoop.com/m/LrAq5ZWeaU,但无人接听)

测试许多配置后,我们发现,用更少的不平行度(2个或3个实例每个螺栓)的单身职工工作比高并行或更多更好没有工人。

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

显然这条规则在这里并不好。

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

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

什么是需要缩放性能的Storm配置更改? (我试过nimbus.childopts和worker.childopts)

+0

您正在测试Storm的机器的配置是什么?你是否得到了你给出的链接相同的错误? – Shams 2015-03-13 19:00:00

+0

我不明白你的观点。当然,你可以在一个节点中定义多个工作者(一个风暴硬件)。每个节点使用两个或两个以上的工人(如果一个工人死亡,还剩下一个工人,所以我试图避免风暴集群中的“死亡”硬件,因为应该还有一个工人仍在工作)。 – zenbeni 2015-03-16 15:23:38

回答

0

如果你的CPU使用率在一个节点上很高,那么当你增加并行性时你不会获得更好的性能。如果你确实增加了并行性,那么就会有更多的CPU周期数争用。不知道更多关于您的特定拓扑结构的信息,我只能建议您寻找降低螺栓和喷口CPU使用率的方法。只有这样,你才可以添加更多的螺栓和喷口实例。

+0

平均CPU使用率只有不到40%。请在SAR命令输出下面找到。 12:30:01 PM CPU%user%nice%system%iowait%steal%idle 12:40:01 PM all 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:01 PM全部22.33 0.00 6.69 0.23 0.00 70.76 – 2015-03-16 07:26:47