我们在单节点开发服务器中配置了Storm,其中大多数配置都设置为默认值(非本地模式)。 只有风暴灵气,主管和工人在这个单一节点上运行,并且还配置了UI。
AFAIK并行性和配置因拓扑而异。 我认为找到正确的并行性和配置只能通过试错法。
因此,为了找到最佳的并行性,我们已经开始在单个节点中使用各种配置测试我们的Storm拓扑。
奇怪的是,结果出乎意料:
我们的拓扑处理来自HDFS目录的xml文件流。 有一个喷口(平行度总是1)和四个螺栓。
无论拓扑并行性如何,我们都得到几乎相同的性能结果(处理数据的速率)
无论拓扑并行性是什么,我们都会获得与单个工作者相似的性能,直到某个时间(大多数情况下为10分钟)。
但是在完成拓扑之后重新启动没有任何错误跟踪。
我们观察到,与单个工作者在20分钟内处理的数据相比,5个工人具有相同的并行性需要90分钟。 此外,拓扑已经重新启动了7次,有5名工人。 并且CPU使用率相对较高。 (其他人也遇到过拓扑重启问题http://search-hadoop.com/m/LrAq5ZWeaU,但没有回答)
在测试了许多配置之后,我们发现没有并行性的单个工作者(每个具有2个或3个实例的螺栓)比高并行性或更多的工作者更好。
理想情况下,Storm拓扑的性能应该更好,更多没有工人/并行性。
显然这条规则在这里并不好。
为什么我们不能在单个节点中设置多个工作人员?
单个节点中可以运行的最大工作数是多少?
扩展性能需要哪些Storm配置更改? (我已经尝试过nimbus.childopts和worker.childopts)
答案 0 :(得分:0)
如果您在一个节点上的CPU使用率很高,那么在增加并行性时,您将无法获得更好的性能。如果确实增加了并行性,那么对于恒定数量的CPU周期,争用就会更大。不知道您的特定拓扑结构,我只能建议您寻找降低螺栓和喷口CPU使用率的方法。只有这样才能添加更多的螺栓和喷口实例才有意义。