关于StormCrawler中并行性的影响

航空安全

我目前正在从事基于Storm Crawler的项目。我们有固定数量的带宽来从Web上获取页面。我们有8个工作线程,对于拓扑中不同的Bolt(即50),其并行性提示值很大。因此创建了很多线程来获取页面。项目中增加的fetch_error数量与增加的parallelism_hint之间是否有任何关系?如何确定Storm Crawler中parallelism_hint的合适值?

朱利安·尼奥奇(Julien Nioche)

不应将并行性提示不加选择地应用于所有螺栓。

理想情况下,每个工作人员需要一个FetcherBolt实例,因此在您的情况8中。正如您可能已经在WIKI中阅读或在conf中看到的那样,FetcherBolt处理内部线程以进行提取。这由config fetcher.threads.number决定,在原型配置中将其设置为50(假设这是您用作起点)。

使用太多的FetcherBolt实例会适得其反。最好改为更改fetcher.threads.number的值如果您有50个Fetcher实例,其默认线程数为50,则将为您提供2500个提取线程,这可能超出您的可用带宽。

正如我之前提到的,每个工人需要1个FetcherBolt,每个螺栓的内部读取线程的数量取决于您的带宽。对此没有硬性规定,这取决于您的情况。

但是,我观察到的一个常数是解析螺栓与Fetcher螺栓的比率。通常,每个提取程序有4个解析器可以正常工作。在部署模式下运行Storm并检查UI中解析器螺栓容量值。如果该值为1或更大,请尝试使用更多实例,看看它是否影响容量。

在任何情况下,并非所有螺栓都需要相同级别的并行性。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章