风暴爬虫——技术栈和Apache Nutch

storm crawler - Technology stack and Apache Nutch

我想近乎实时地抓取特定论坛并将数据转储到 HDFS(如果不是 Hbase)。

我听说 Apache Nutch 可以解决这个问题,但遗憾的是它所需的技术堆栈已经很老了。我不想将 hadoop 从 2.6 降级到更早的版本,将 Elasticsearch 降级到 1.7/1.4,因此我将注意力转移到了 storm-crawler。

由于我使用的是 Hadoop 2.6、Elasticsearch 2.0 和 Hbase 1.1.3,谁能告诉我 storm-crawler 0.9 是否可以与它们一起使用?

由于您对以近乎实时的方式抓取论坛有特殊要求,Nutch 并不是实现此目的的最佳技术。 Nutch 按批处理,这意味着 link 生成,然后获取,然后解析,但这一次 link 不会发生。另一方面,Storm 爬虫基于 Apache Storm,这是一个免费和开源的分布式 实时 计算系统。

Storm Crawler 目前支持索引到 Elasticsearch 1.7.2(支持版本 2,正在开发中 https://github.com/DigitalPebble/storm-crawler/tree/es2/external/elasticsearch),目前不支持索引到 HBase,您不能使用您的 hadoop 设置,因为它基于 Apache Storm。尽管如此,Storm Crawler 是 "A collection of resources for building low-latency, scalable web crawlers",因此您可以将自己的索引器螺栓写入 HBase,这应该不会太难,并重用提供的其余资源,包括您需要的实时爬网。

@jorge-luis 已经回复了关于 ElasticSearch 2 的问题。有一个 pull request for it and we are in the process of testing it. As for Hadoop, well StormCrawler is not based on it but on Apache Storm - hence the name. Finally there are currently no resources for HBase but this could be added. What did you want to use it for? I assume the documents will be indexed with ES. Did you want to keep the info about URLS in there (like the crawldb in Nutch)? If so then you could also use ES for storing the status, have a look at the ES module in StormCrawler 用于解释。