摘要: 1. Fetcher模块的简单介绍Fetcher这个模块在Nutch中有单独一个包在实现,在org.apache.nutch.fetcher,其中有Fetcher.java, FetcherOutput 和FetcherOutputFormat来组成,看上去很简单,但其中使用到了多线程,多线程的生产者与消费者模型,MapReduce的多路径输出等方法。下面我们来看一下Fetcher的注释,从中我们可以得到很多有用的信息。首先,这是一种基于队列的fetcher方法,它使用了一种经典的线程模型,生产者(a-QueueFeeder)与消费者(many-FetcherThread)模型,注意,这里有多 阅读全文
posted @ 2011-10-23 23:58 爱开卷360 阅读(526) 评论(0) 推荐(0) 编辑
摘要: 上一节看了Fetcher中主要几个类的实现,这一节会来分析一下其中用到的消费者FetcherThread,来看看它是干嘛的。1. Fetcher的Mapp模型Fetcher.java代码中可以看到,Fetcher继承自MapRunable,它是Mapper的抽象接口,实现这个接口的子类能够更好的对Map的流程进行控制,包括多线程与异步Maper。1.1 Fetcher的入口函数fetch(Path segment,int threads, boolean parsing)下面是它的源代码,来分析一下://对配置进行检测,看一些必要的配置是否已经配置了,如http.agent.name等参数ch 阅读全文
posted @ 2011-10-23 23:58 爱开卷360 阅读(1020) 评论(0) 推荐(1) 编辑