您的位置:首页 > 其它

nutch的一些基础整理

2017-11-27 14:43 309 查看

nutch的一些基础整理

原创 2015年03月22日 18:18:01 标签:
nutch /
[/i]240
[/i]编辑
[/i]删除
一、关于配置文件:

nutch-default.xml:爬虫的默认配置。在${nutch_home}/conf目录。

nutch-site.xml:理论上是nutch-default.xml的覆盖。

core-default.xml, hdfs-default.xml, mapred-default.xml:用于配置 Hadoop,与 hadoop-core-xxx.jar 相关。

mapred- default.xml:用于nutch的map-reduce配置。

hdfs-default.xml:用于在 Nutch 中实现 DFS。

regex-urlfilter.txt:从seed.txt读取URL和写入crawldb时,先过 regex-pattern。

二、关于表:

1、两类表webpage和host

2、gora映射放在${nutch_home}/conf目录gora*.xml文件

3、使用的数据库类型在gora.properties文件中配置,并有对应的映射文件。

三、种子文件seed.txt

1、每行一个种子url,可以自定义任何参数,并存到webpage的metadata字段。定义nutch.score、nutch.fetchInterval两个参数时可覆盖配置文件里的db.score.injected、db.fetch.interval.default两个配置。

2、每次injector时文件里的url都会先Normalizers再过filter

四、GeneratorJob



[plain] view plain copy print?Usage: GeneratorJob [-topN N] [-crawlId id] [-noFilter] [-noNorm] [-adddays numDays]
Usage: GeneratorJob [-topN N] [-crawlId id] [-noFilter] [-noNorm] [-adddays numDays]

1、-topN <N>:在每次迭代中限制爬行的头几个链接数,默认是Integer.MAX_VALUE

2、-crawlId <id> :默认是storage.crawl.id配置

3、-noFilter:不使用过滤器

4、-noNorm:不Normalizers URL

5、-adddays:当前时间增加numDays天。可以影响什么时候爬取,相当于抓取的参考时间。fetchTime <= curTime时,表示可以抓取。

generat前对URL进行normalize后过URLFilters(跟InjectorJob里的是同一个)。所以,通过DbUpdaterJob产生的新行(outlinks)只有在这里filter掉,以致后边的步骤不处理,但这些url依然会躺在webpage里,谁知道那天filter被修改后会不会用到这些URL。





五、FetcherJob



[plain] view plain copy print?Usage: FetcherJob (<batchId> | -all) [-crawlId <id>]
Usage: FetcherJob (<batchId> | -all) [-crawlId <id>]
1、-resume:恢复中断的工作

2、-numTasks:任务数,<1时使用默认值mapred.map.tasks

这个时候只是把任务中可抓取的URL进行抓取,并更新数据库里的抓取时间及结果、状态等数据。这时webpage里有了url页面的html,并记录Content-Encoding、Content-Type、Server(nginx.etc.)、X-Via等字段。爬取时产生重定向的URL,过URLFilters和db.ignore.external.links后继续,重定向后的新URL作为原URL的outlink处理。

六、ParserJob



[plain] view plain copy print?Usage: ParserJob (<batchId> | -all) [-crawlId <id>] [-resume] [-force]
Usage: ParserJob (<batchId> | -all) [-crawlId <id>] [-resume] [-force]
1、-resume:恢复之前未完成的2、-force:强制重新解析已解析过的页面

这时对抓取过来的数据进行解析,也就是分析webpage里content字段的html,找出outlinks、OriginalCharEncoding、页面纯文字、标题、sig等字段。outlinks进行URLFilters和db.ignore.external.links。

七、DbUpdaterJob

1、其实就是根据数据库的情况更新一些权重字段,例如STATUS、Inlinks、Markers、Metadata、Score等

2、此时将把parser阶段解析到的outlinks生成新的webpage行,并且inlinks为上一步的url.。在mapper中根据outlinks生成scoreData后context.write,然后在reducer中产生新行。没有filter。只有计算score时有ScoringFilters。

3、www.sitename.com/和www.sitename.com/index.html被视为不同的抓取路径并产生两行记录

八、IndexingJob

将webpage中可索引的数据映射到NutchDocument,并扔给索引引擎。





内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: