运行Crawler.java时,程序经过五个步骤:InjectJob、FetcherJob、ParserJob、DbUpdaterJob、SolrIndexerJob,这五个类都是实现了org.apache.hadoop.util.Tool接口,切换各个任务都是通过runTool(<? Extends
Tool>Tool.class, args)方法来调用,该接口中只有一个run(String[])的方法。同时该接口继承了一个父接口org.apache.hadoop.conf.
Configurable,Configurable接口有两个方法:
void setConf(Configuration conf)
Configuration getConf();
Crawler的main方法源码如下:
public static void main(String[] args) throws Exception {
Crawler c = new Crawler();
Configuration conf = NutchConfiguration.create();
int res = ToolRunner.run(conf, c, args);
System.exit(res);
}
解读:
在上面一段代码中conf变量贯穿整个程序运行的始终,NutchConfiguration.create()加载nutch的标准配置文件,nutch-default.xml以及nutch-site.xml,首先加载nutch-default.xml,然后再加载nutch-site.xml,如果nutch-site.xml中有申明一些property,那么将覆盖nutch-default.xml中德property配置。
真正执行程序就是ToolRunner.run(conf, c, args)了:
public static int run(Configuration conf, Tool tool, String[] args)
throws Exception{
if(conf == null) {
conf = new Configuration();
}
//将args(我们在命令行输入的命令参数进行转换)
GenericOptionsParser parser = new GenericOptionsParser(conf, args);
//set the configuration back, so that Tool can configure itself
tool.setConf(conf);
//get the args w/o generic hadoop args
String[] toolArgs = parser.getRemainingArgs();
return tool.run(toolArgs);
}
解读:
tool.run(toolArgs)会返回Crawler中,调用run(String[])方法,这个方法比较简单,主要是讲toolArgs中的值进行处理,获取option的值,同时将toolArgs中的参数转换成Map类型,调用run(Map)方法,在这个方法内部就是真正进行爬取了。
这方法内部,共进行了五个步骤:
1、InjectJob:从参数中的seedDir中获取种子文件的路径,放到抓取链中
2、GeneratorJob:从抓取链获取链接,放入抓取队列
3、FetcherJob:从抓取队列中获取任务开始进行抓取
4、ParserJob:对抓取的网页进行解析,产生新的链接和网页解析结果
5、DbUpdaterJob:将新的链接更新到抓取链中
6、SolrIndexerJob:对抓取的内容进行索引
将在后面进行上述六个步骤的源码解读
分享到:
相关推荐
nutch2.1导入Eclipse过程中,import org.restlet.×;错误,缺少的包。
nutch2.1导入Eclipse过程中,import org.restlet.×;错误,缺少的包。
nutch最新2.1资源打包,配置nutch最新svn后更新打包的全资源
学习nutch 源码解读 轻松入门 搭建自己的nutch搜索引擎
nutch2.2.1安装步骤,需要自己下载以下软件: apache-ant-1.10.5-bin.tar.gz apache-nutch-2.2.1-src.tar.gz apache-tomcat-8.5.39.tar.gz jdk-8u201-linux-x64.tar.gz solr-4.10.3.zip
Nutch 是一个开源Java 实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具。包括全文搜索和Web爬虫。 本资源官网上下的源代码。 nutch-2.1 适用于windows系统
nutch_src 源码 tar—zip格式
外网不能访问,故上传,一方面自己备份,一方面也方便大家不能下载的痛苦,只有nutch的源码,没有依赖包,如果需要依赖包,请自行下载
apache-nutch-2.1,一个非常棒的搜索引擎!希望大家喜欢
Lucene nutch 搜索引擎 开发 实例 源码 里面包含了Lucene的使用源码 以及nutch使用的源码 还有spider的使用源码 例子的注释比较详细~适合初学者
nutch-1.3源码,java版本,其他请参看手册。
Nutch 是一个开源Java 实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具。包括全文搜索和Web爬虫。包含nutch-1.5.1的源码
lucene+nutch搜索引擎开发一书源码第一部分,因为源码太大,所以分两部分。
其他源码在: Lucee+Nutch搜索(源码1)那里,因为文件太大了. 12.5 企业信息索引 12.5.1 数据索引建立 12.5.2 信息检索代码 12.5.3 检索Web代码 12.5.4 检索结果测试 12.6 小结
好用的爬虫工具,刚发布不久的新版本 nutch是网络搜索及信息提取中使用得最广泛的网络爬虫工具 仅仅使用简单的配置就可以实现强大的爬取信息功能
Nutch 是一个开源Java 实现的搜索引擎。它提供了我们运行自己 的搜索引擎所需的全部工具。包括全文搜索和Web爬虫。
nutch1.6源码,直接从官网也可以下
Lucene+nuctch一书的全部源码 测试源码 和几个简单的项目 (Lucene+ Nuctch a book all the source code and test a few simple items)
Nutch 是一个开源Java 实现的搜索引擎。它提供了我们运行自己 的搜索引擎所需的全部工具。包括全文搜索和Web爬虫。 尽管Web搜索是漫游Internet的基本要求, 但是现有web搜索引擎的数目却在下降. 并且这很有可能进一步...
Nutch 是一个开源Java 实现的搜索引擎。它提供了我们运行自己 的搜索引擎所需的全部工具。包括全文搜索和Web爬虫。 尽管Web搜索是漫游Internet的基本要求, 但是现有web搜索引擎的数目却在下降. 并且这很有可能进一步...