Nutch1.14与Solr6.6.0集成后去重失败求助
解决Nutch dedup报错及相关组件疑问
Hey there, let's break down your problems step by step:
1. 解决DeduplicationJob: java.io.IOException: No FileSystem for scheme: http报错
这个报错的核心原因是:bin/nutch dedup命令是用来对**本地文件系统或者HDFS中的爬取元数据(比如crawldb、segments)**去重的,它不支持直接传入Solr的HTTP URL。你之前的命令用法完全错了。
正确的操作流程应该是:
- 先对本地爬取的crawldb(爬取数据库)执行去重:
bin/nutch dedup crawl/crawldb - 去重完成后,再将处理后的索引数据提交到Solr:
bin/nutch index crawl/crawldb crawl/linkdb crawl/segments/* -Dsolr.server.url=http://ip:8983/solr/
2. Nutch中的Hadoop组件在哪里?
Nutch 1.14本身内置了Hadoop的核心依赖包,你可以在apache-nutch-1.14/lib目录下找到一系列hadoop-*.jar文件,比如hadoop-common-*.jar、hadoop-hdfs-*.jar等。
这里要区分两种运行模式:
- 本地模式(默认):不需要单独安装Hadoop,直接用Nutch自带的依赖就能运行,适合小规模爬取(比如你现在的10个种子URL场景)。
- 分布式模式:如果要处理大规模爬取任务,才需要单独部署一套Hadoop集群,此时Nutch会连接外部Hadoop集群来存储和处理爬取数据。
3. 搭建搜索引擎除Java外还需要的组件?
除了Java(JDK 1.8及以上,Nutch 1.x对JDK版本有要求),你还需要这些核心组件:
- Solr/Elasticsearch:作为检索引擎,负责存储爬取的结构化索引数据并提供检索服务,你已经选了Solr,这是刚需。
- 文件系统/HDFS:本地模式下用本地文件系统存储爬取元数据(crawldb、linkdb、segments);分布式模式下依赖HDFS来存储大规模数据。
- 可选工具:
- 浏览器/Postman:用来测试Solr的检索接口,验证索引是否正常生成。
- Git:如果需要自定义Nutch插件(比如添加新的解析规则、爬虫插件),方便代码版本管理。
内容的提问来源于stack exchange,提问作者SMJ
相关产品推荐
相关产品推荐

