【问题标题】:Should i use Akka.io, Apache Spark, Mesos or Storm for a webcrawling-engine?我应该使用 Akka.io、Apache Spark、Mesos 还是 Storm 作为网络爬虫引擎?
【发布时间】:2015-06-17 09:34:03
【问题描述】:

我用纯 Java 和 selenium 构建了一个多线程网络爬取和提取引擎。 API 中的每个作业都在自己的线程中执行,并将其状态提交回 API。每个作业还可以包含提取信息(XPth、正则表达式、CSS 选择器)、连接信息(代理凭据)和抓取引擎的挂钩。例如,在保存结果之前单击一个按钮。这个引擎很好用,但现在我想在多台机器上并行运行它。我可以使用当前版本(具有频道支持)来做到这一点,但我正在寻找改进和技术,以使整个事情变得更好并学习新的东西。

我找到了 Akka.io、Apache Spark、Apache Mesos 和 Apache Storm,并问自己这些框架中的一个是否可能是一种技术,我应该花更多时间研究并在上面重建我的引擎。

实际上,我并不了解框架的所有差异和优势,但这就是我要问的原因。他们似乎很相似。

我打算用这些框架之一构建一个爬虫引擎吗?有人会建议使用框架吗?为什么或为什么不?

【问题讨论】:

  • 你看过 Nutch 吗? nutch.apache.org这是一个真正的网络爬虫框架,看起来像。
  • @kutschkem 谢谢你的建议。 nutch 看起来不错,但似乎不支持在网站上执行 javascript(默认情况下)。我发现一些插件可以通过使用 selenium 来实现这一点,但我必须检查是否可以执行挂钩以在网站上生成点击。我还发现storm-crawler 是一个基于apachestorm 的爬虫。感谢您的提示!

标签: apache-spark web-crawler akka apache-storm mesos


【解决方案1】:

我之前帮助构建了一个渲染网络爬虫,作为 Apache Mesos 的示例/教程应用程序。它当然不像您正在构建的那样复杂,但它可能会提供一个很好的架构参考。你可以在https://github.com/mesosphere/rendler查看它

Mesos 提供了很多分布式系统,用于启动任务、监控/发送状态、任务/调度程序之间的通信、持久状态、故障转移等。有时我们喜欢将 Mesos 称为分布式系统 SDK。 http://mesosphere.github.io/presentations/mesoscon-2014/

【讨论】:

    猜你喜欢
    • 2010-11-23
    • 1970-01-01
    • 1970-01-01
    • 2015-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多