【问题标题】:Separation of crawl phase from processing phase in Storm CrawlerStorm Crawler 中抓取阶段与处理阶段的分离
【发布时间】:2020-10-19 16:13:54
【问题描述】:

我目前正在开发一个基于 Storm Crawler 的项目。在当前项目中,我们修改了原始 Storm Crawler Core 工件的一些 Bolts 和 Spout。比如我们改变了ParserBolt的一些部分等等。另外,我们在上面的项目中开发了一些处理步骤。我们的 Bolts 已与原始的 Storm Crawler 项目混合使用。例如,我有一个图像分类器,它提供来自 Storm Crawler 的一些图像并对其进行一些分类。现在,我要将抓取阶段与处理阶段分开。对于爬取阶段,我想使用最新版本的 Storm Crawler 并将其结果保存到名为 Docs 的 Solr 集合中。对于第二阶段(独立于爬取阶段),我有另一个基于 Storm 的项目,它与 Storm Crawler 没有任何关系。第二个拓扑的输入元组需要来自 Docs 集合。我不知道将 Solr 集合中的文档提供给第二个风暴拓扑。它是一个好的设计架构吗? 如果是,将数据导入第二个拓扑的好方法是什么?还应该注意的是,我想在不停机的情况下使用这些项目。

【问题讨论】:

    标签: solr architecture apache-storm stormcrawler


    【解决方案1】:

    这是一个基于意见的问题,但要回答它,您绝对可以将您的管道分成多个拓扑。当您需要不同类型的硬件时,这是一个很好的做法,例如用于图像处理的 GPU 与用于抓取的更便宜的实例。

    您可以将您的文档索引到 SOLR 中,但其他解决方案也可以使用,例如队列等...在第二个拓扑中您需要的是定制的 SOLR spout。如果您希望第二个项目独立于 SC,您将无法利用我们 SOLR 模块中的代码,但您可以将其作为灵感来源。

    根据您的总体架构以及第二个拓扑是否需要提取图像内容,可能会有更好的方法。不过,这超出了 StackOverflow 技术问题的范围。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-19
      • 1970-01-01
      • 1970-01-01
      • 2011-03-13
      相关资源
      最近更新 更多