nutch分析Word文件下载.docx

上传人:b****1 文档编号:2959783 上传时间:2023-05-01 格式:DOCX 页数:92 大小:110.98KB
下载 相关 举报
nutch分析Word文件下载.docx_第1页
第1页 / 共92页
nutch分析Word文件下载.docx_第2页
第2页 / 共92页
nutch分析Word文件下载.docx_第3页
第3页 / 共92页
nutch分析Word文件下载.docx_第4页
第4页 / 共92页
nutch分析Word文件下载.docx_第5页
第5页 / 共92页
nutch分析Word文件下载.docx_第6页
第6页 / 共92页
nutch分析Word文件下载.docx_第7页
第7页 / 共92页
nutch分析Word文件下载.docx_第8页
第8页 / 共92页
nutch分析Word文件下载.docx_第9页
第9页 / 共92页
nutch分析Word文件下载.docx_第10页
第10页 / 共92页
nutch分析Word文件下载.docx_第11页
第11页 / 共92页
nutch分析Word文件下载.docx_第12页
第12页 / 共92页
nutch分析Word文件下载.docx_第13页
第13页 / 共92页
nutch分析Word文件下载.docx_第14页
第14页 / 共92页
nutch分析Word文件下载.docx_第15页
第15页 / 共92页
nutch分析Word文件下载.docx_第16页
第16页 / 共92页
nutch分析Word文件下载.docx_第17页
第17页 / 共92页
nutch分析Word文件下载.docx_第18页
第18页 / 共92页
nutch分析Word文件下载.docx_第19页
第19页 / 共92页
nutch分析Word文件下载.docx_第20页
第20页 / 共92页
亲,该文档总共92页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

nutch分析Word文件下载.docx

《nutch分析Word文件下载.docx》由会员分享,可在线阅读,更多相关《nutch分析Word文件下载.docx(92页珍藏版)》请在冰点文库上搜索。

nutch分析Word文件下载.docx

32

3.1.3<

--FTPproperties-->

35

3.1.4<

--webdbproperties-->

37

3.1.5<

--generateproperties-->

41

3.1.6<

--fetcherproperties-->

42

3.1.7<

--indexerproperties-->

43

3.1.8<

--indexingfilterpluginproperties-->

45

3.1.9<

--analysisproperties-->

3.1.10<

--searcherproperties-->

3.1.11<

--URLnormalizerproperties-->

48

3.1.12<

--mimeproperties-->

3.1.13<

--pluginproperties-->

49

3.1.14<

--parserproperties-->

3.1.15<

--urlfilterpluginproperties-->

51

3.1.16<

--scoringfiltersproperties-->

52

3.1.17<

--clusteringextensionproperties-->

3.1.18<

--ontologyextensionproperties-->

53

3.1.19<

--query-basicpluginproperties-->

3.1.20<

--creative-commonspluginproperties-->

54

3.1.21<

--query-morepluginproperties-->

55

3.1.22<

--microformats-reltagpluginproperties-->

3.1.23<

--language-identifierpluginproperties-->

3.1.24<

--TemporaryHadoop0.17.xworkaround.-->

56

3.1.25<

--responsewriterproperties-->

3.2regex-urlfilter.txt解析58

3.3regex-normalize.xml解析58

3.4总结59

4参考资源59

1Nutch简介

1.1nutch体系结构

2抓取部分

2.1爬虫的数据结构及含义

爬虫系统是由Nutch的爬虫工具驱动的。

并且把构建和维护一些数据结构类型同一系列工具关联起来:

包括webdatabase、一系列的segment和index。

接下来我们将详细描述他们。

三者的物理文件分别存储在爬行结果目录下的crawldb文件夹内,segments文件夹和index文件夹内。

那么三者分别存储的信息是什么呢?

Webdatabase,也叫WebDB,其中存储的是爬虫所抓取网页之间的链接结构信息,它只在爬虫Crawler工作中使用而和Searcher的工作没有任何关系。

WebDB内存储了两种实体的信息:

page和link。

Page实体通过描述网络上一个网页的特征信息来表征一个实际的网页,因为网页有很多个需要描述,WebDB中通过网页的URL和网页内容的MD5两种索引方法对这些网页实体进行了索引。

Page实体描述的网页特征主要包括网页内的link数目,抓取此网页的时间等相关抓取信息,对此网页的重要度评分等。

同样的,Link实体描述的是两个page实体之间的链接关系。

WebDB构成了一个所抓取网页的链接结构图,这个图中Page实体是图的结点,而Link实体则代表图的边。

一次爬行会产生很多个segment,每个segment内存储的是爬虫Crawler在单独一次抓取循环中抓到的网页以及这些网页的索引。

Crawler爬行时会根据WebDB中的link关系按照一定的爬行策略生成每次抓取循环所需的fetchlist,然后Fetcher通过fetchlist中的URLs抓取这些网页并索引,然后将其存入segment。

Segment是有时限的,当这些网页被Crawler重新抓取后,先前抓取产生的segment就作废了。

在存储中。

Segment文件夹是以产生时间命名的,方便我们删除作废的segments以节省存储空间。

Index是Crawler抓取的所有网页的索引,它是通过对所有单个segment中的索引进行合并处理所得的。

Nutch利用Lucene技术进行索引,所以Lucene中对索引进行操作的接口对Nutch中的index同样有效。

但是需要注意的是,Lucene中的segment和Nutch中的不同,Lucene中的segment是索引index的一部分,但是Nutch中的segment只是WebDB中各个部分网页的内容和索引,最后通过其生成的index跟这些segment已经毫无关系了。

2.2抓取目录分析

抓取后一共生成5个文件夹,分别是:

●crawldb目录存放下载的URL,以及下载的日期,用来页面更新检查时间.

●linkdb目录存放URL的互联关系,是下载完成后分析得到的.

●segments:

存放抓取的页面,下面子目录的个数于获取的页面层数有关系,通常每一层页面会独立存放一个子目录,子目录名称为时间,便于管理.比如我这只抓取了一层页面就只生成了20090508173137目录.每个子目录里又有6个子文件夹如下:

Ø

content:

每个下载页面的内容。

crawl_fetch:

每个下载URL的状态。

crawl_generate:

待下载URL集合。

crawl_parse:

包含来更新crawldb的外部链接库。

parse_data:

包含每个URL解析出的外部链接和元数据

parse_text:

包含每个解析过的URL的文本内容。

●indexs:

存放每次下载的独立索引目录

●index:

符合Lucene格式的索引目录,是indexs里所有index合并后的完整索引

2.3抓取过程概述

引用到的类主要有以下9个:

1、nutch.crawl.Inject

用来给抓取数据库添加URL的插入器

2、nutch.crawl.Generator

用来生成待下载任务列表的生成器

3、nutch.fetcher.Fetcher

完成抓取特定页面的抓取器

4、nutch.parse.ParseSegment

负责内容提取和对下级URL提取的内容进行解析的解析器

5、nutch.crawl.CrawlDb

负责数据库管理的数据库管理工具

6、nutch.crawl.LinkDb

负责链接管理

7、nutch.indexer.Indexer

负责创建索引的索引器

8、nutch.indexer.DeleteDuplicates

删除重复数据

9、nutch.indexer.IndexMerger

对当前下载内容局部索引和历史索引进行合并的索引合并器

2.4抓取过程分析

Crawler的工作原理主要是:

首先Crawler根据WebDB生成一个待抓取网页的URL集合叫做Fetchlist,接着下载线程Fetcher开始根据Fetchlist将网页抓取回来,如果下载线程有很多个,那么就生成很多个Fetchlist,也就是一个Fetcher对应一个Fetchlist。

然后Crawler根据抓取回来的网页WebDB进行更新,根据更新后的WebDB生成新的Fetchlist,里面是未抓取的或者新发现的URLs,然后下一轮抓取循环重新开始。

这个循环过程可以叫做“产生/抓取/更新”循环。

指向同一个主机上Web资源的URLs通常被分配到同一个Fetchlist中,这样的话防止过多的Fetchers对一个主机同时进行抓取造成主机负担过重。

另外Nutch遵守RobotsExclusionProtocol,网站可以通过自定义Robots.txt控制Crawler的抓取。

在Nutch中,Crawler操作的实现是通过一系列子操作的实现来完成的。

这些子操作Nutch都提供了子命令行可以单独进行调用。

下面就是这些子操作的功能描述以及命令行,命令行在括号中。

  1.创建一个新的WebDb(admindb-create).

  2.将抓取起始URLs写入WebDB中(inject).

  3.根据WebDB生成fetchlist并写入相应的segment(generate).

  4.根据fetchlist中的URL抓取网页(fetch).

  5.根据抓取网页更新WebDb(updatedb).

  6.循环进行3-5步直至预先设定的抓取深度。

  7.分析链接关系,生成反向链接.(此步1.0特有,具体作用?

  8.对所抓取的网页进行索引(index).

  9.在索引中丢弃有重复内容的网页和重复的URLs(dedup).

  10.将segments中的索引进行合并生成用于检索的最终index(merge).

Crawler详细工作流程是:

在创建一个WebDB之后(步骤1),“产生/抓取/更新”循环(步骤3-6)根据一些种子URLs开始启动。

当这个循环彻底结束,Crawler根据抓取中生成的segments创建索引(步骤8-10)。

在进行重复URLs清除(步骤9)之前,每个segment的索引都是独立的(步骤8)。

最终,各个独立的segment索引被合并为一个最终的索引index(步骤10)。

其中有一个细节问题,Dedup操作主要用于清除segment索引中的重复URLs,但是我们知道,在WebDB中是不允许重复的URL存在的,那么为什么这里还要进行清除呢?

原因在于抓取的更新。

比方说一个月之前你抓取过这些网页,一个月后为了更新进行了重新抓取,那么旧的segment在没有删除之前仍然起作用,这个时候就需要在新旧segment之间进行除重。

下边是在Crawl类设置断点调试每个方法的结果.

2.4.1inject方法

描述:

初始化爬取的crawldb,读取URL配置文件,把内容注入爬取数据库.

首先会找到读取URL配置文件的目录urls.如果没创建此目录,nutch1.0下会报错.

得到hadoop处理的临时文件夹:

/tmp/hadoop-Administrator/mapred/

日志信息如下:

2009-05-0815:

41:

36,640INFOInjector-Injector:

starting

37,031INFOInjector-Injector:

crawlDb:

20090508/crawldb

37,781INFOInjector-Injector:

urlDir:

urls

接着设置一些初始化信息.

调用hadoop包JobClient.runJob方法,跟踪进入JobClient下的submitJob方法进行提交整个过程.具体原理又涉及到另一个开源项目hadoop的分析,它包括了复杂的

MapReduce架构,此处不做分析。

查看submitJob方法,首先获得jobid,执行configureCommandLineOptions方法后会在上边的临时文件夹生成一个system文件夹,同时在它下边生成一个job_local_0001文件夹.执行writeSplitsFile后在job_local_0001下生成job.split文件.执行writeXml写入job.xml,然后执行jobSubmitClient.submitJob正式提交整个job流程,日志如下:

52:

41,734INFOInjector-Injector:

Convertinginjectedurlstocrawldbentries.

56:

22,203INFOJvmMetrics-InitializingJVMMetricswithprocessName=JobTracker,sessionId=

2009-05-0816:

08:

20,796WARNJobClient-UseGenericOptionsParserforparsingthearguments.ApplicationsshouldimplementToolforthesame.

20,984WARNJobClient-Nojobjarfileset.Userclassesmaynotbefound.SeeJobConf(Class)orJobConf#setJar(String).

24:

42,593INFOFileInputFormat-Totalinputpathstoprocess:

1

38:

29,437INFOFileInputFormat-Totalinputpathstoprocess:

29,546INFOMapTask-numReduceTasks:

29,562INFOMapTask-io.sort.mb=100

29,687INFOMapTask-databuffer=79691776/99614720

29,687INFOMapTask-recordbuffer=262144/327680

29,718INFOPluginRepository-Plugins:

lookingin:

D:

\work\workspace\nutch_crawl\bin\plugins

29,921INFOPluginRepository-PluginAuto-activationmode:

[true]

29,921INFOPluginRepository-RegisteredPlugins:

29,921INFOPluginRepository-thenutchcoreextensionpoints(nutch-extensionpoints)

29,921INFOPluginRepository-BasicQueryFilter(query-basic)

29,921INFOPluginRepository-BasicURLNormalizer(urlnormalizer-basic)

29,921INFOPluginRepository-BasicIndexingFilter(index-basic)

29,921INFOPluginRepository-HtmlParsePlug-in(parse-html)

29,921INFOPluginRepository-SiteQueryFilter(query-site)

29,921INFOPluginRepository-BasicSummarizerPlug-in(summary-basic)

29,921INFOPluginRepository-HTTPFramework(lib-http)

29,921INFOPluginRepository-TextParsePlug-in(parse-text)

29,921INFOPluginRepository-Pass-throughURLNormalizer(urlnormalizer-pass)

29,921INFOPluginRepository-RegexURLFilter(urlfilter-regex)

29,921INFOPluginRepository-HttpProtocolPlug-in(protocol-http)

29,921INFOPluginRepository-XMLResponseWriterPlug-in(response-xml)

29,921INFOPluginRepository-RegexURLNormalizer(urlnormalizer-regex)

29,921INFOPluginRepository-OPICScoringPlug-in(scoring-opic)

29,921INFOPluginRepository-CyberNekoHTMLParser(lib-nekohtml)

29,921INFOPluginRepository-AnchorIndexingFilter(index-anchor)

29,921INFOPluginRepository-JavaScriptParser(parse-js)

29,921INFOPluginRepository-URLQueryFilter(query-url)

29,921INFOPluginRepository-RegexURLFilterFramework(lib-regex-filter)

29,921INFOPluginRepository-JSONResponseWriterPlug-in(response-json)

29,921INFOPluginRepository-RegisteredExtension-Points:

29,921INFOPluginRepository-NutchSummarizer(org.apache.nutch.searcher.Summarizer)

29,921INFOPluginRepository-NutchProtocol(org.apache.nutch.protocol.Protocol)

29,921INFOPluginRepository-NutchAnalysis(org.apache.nutch.analysis.NutchAnalyzer)

29,921INFOPluginRepository-NutchFieldFilter(org.apache.nutch.indexer.field.FieldFilter)

29,921INFOPluginRepository-HTMLParseFilter(org.apache.nutch.parse.HtmlParseFilter)

29,921INFOPluginRepository-NutchQueryFilter(org.apache.nutch.searcher.QueryFilter)

29,921INFOPluginRepository-NutchSearchResultsResponseWriter(org.apache.nutch.searcher.response.ResponseWriter)

29,921INFOPluginRepository-NutchURLNormalizer(.URLNormalizer)

29,921INFOPluginRepository-NutchURLFilter(.URLFilter)

29,921INFOPluginRepository-NutchOnlineSearchResultsClusteringPlugin(org.apache.nutch.clustering.OnlineClusterer)

29,921INFOPluginRepository-NutchIndexi

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2