hadoop - 处理重复项并避免在爬网时出现周期

标签 hadoop web-crawler

我在看donne martin's design for a web crawler
在“避免重复”部分中,他描述了他认为可以用来避免爬网时出现循环和无限循环的机制:

For smaller lists we could use something like sort | unique

With 1 billion links to crawl, we could use MapReduce to output only entries that have a frequency of 1


这是什么意思?假设我所有的爬虫都在redis集中维护了一个links_to_crawl列表,并在我的hadoop中维护了一个crawled_links列表。他们不断从links_to_crawl中删除新链接,然后将来自该URL的传出链接也放入links_to_crawl中,对吗?他们何时会通过MapReduce作业查询crawled_links?他们将链接插入links_to_crawl之前是否需要检查每个链接? MR工作怎么样?

最佳答案

we could use MapReduce to output only entries that have a frequency of 1



您在此实例中没有Redis或集合。您所拥有的只是标准的“wordcount”算法,您碰巧正在对URL进行分组并过滤出具有多个结果的值。

在Hadoop方面,您可以引用原始的Nutch项目进行网络爬网

关于hadoop - 处理重复项并避免在爬网时出现周期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60479468/

相关文章:

hadoop - Hadoop命令不起作用

eclipse - 无法执行目标 org.apache.rat :apache-rat-plugin:0. 8:检查(默认)项目 giraph-gora:太多未批准的许可证:56

php - Symfony DomCrawler 状态代码不起作用?

python - 网页字数统计

python - 我如何使用 scrapy 为 crawlspider 创建规则

mysql - DB中的索引是什么意思?

amazon-web-services - 保存时挂起的 Spark Dataframe

windows - Windows 7中的Hadoop安装

hadoop - Hive 中的时间戳分区

python - 负责任的时间延迟 - 网络爬行