`
caizhongda
  • 浏览: 188288 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Nutch 命令

阅读更多
Nutch采用了一种命令的方式进行工作,其命令可以是对局域网方式的单一命令也可以是对整个Web进行爬取的分步命令。主要的命令如下:

1. Crawl
Crawl是“org.apache.nutch.crawl.Crawl”的别称,它是一个完整的爬取和索引过程命令。
使用方法:
Shell代码
bin/nutch crawl <urlDir> [-dir d] [-threads n] [-depth i] [-topN] 

bin/nutch crawl <urlDir> [-dir d] [-threads n] [-depth i] [-topN]
  参数说明:
    <urlDir>:包括URL列表的文本文件,它是一个已存在的文件夹。
    [-dir <d>]:Nutch保存爬取记录的工作目录,默认情况下值为:./crawl-[date],其中[date]为当前目期。
    [-threads <n>]:Fetcher线程数,覆盖默认配置文件中的fetcher.threads.fetch值(默认为10)。
    [-depth <i>]:Nutch爬虫迭代的深度,默认值为5。
    [-topN <num>]:限制每一次迭代中的前N条记录,默认值为 Integer.MAX_VALUE。

配置文件:
hadoop-default.xml
    hadoop-site.xml
    nutch-default.xml
    nutch-site.xml
    crawl-tool.xml

   其他文件:
   crawl-urlfilter.txt

2.  Readdb
    Readdb命令是“org.apache.nutch.crawl.CrawlDbReader”的别称,返回或者导出Crawl数据库(crawldb)中的信息。
   使用方法:
Shell代码
bin/nutch rseaddb <crawldb> (-stats | -dump <out_dir> | -url <url>)  

bin/nutch rseaddb <crawldb> (-stats | -dump <out_dir> | -url <url>)
参数说明:
<crawldb>:crawldb目录.
[-stats]::在控制台打印所有的统计信息
[-dump <out_dir>]:导出crawldb信息到指定文件夹中的文件
[-url <url>]:打印指定URL的统计信息
实例:
Shell代码
$ bin/nutch readdb fullindex/crawldb -stats  

$ bin/nutch readdb fullindex/crawldb -stats

CrawlDb statistics start: fullindex/crawldb
Statistics for CrawlDb: fullindex/crawldb
TOTAL urls:     468030
retry 0:        467361
retry 1:        622
retry 2:        32
retry 3:        15
min score:      0.0
avg score:      0.0034686408
max score:      61.401
status 1 (db_unfetched):        312748
status 2 (db_fetched): 80671
status 3 (db_gone):     69927
status 4 (db_redir_temp):       1497
status 5 (db_redir_perm):       3187
CrawlDb statistics: done
配置文件:
hadoop-default.xml
hadoop-site.xml
nutch-default.xml
nutch-site.xml

说明:
-stats命令是一个快速查看爬取信息的很有用的工作,其输出信息表示了:
DB_unfetched:链接到已爬取页面但还没有被爬取的页面数(原因是它们没有通过url过滤器的过滤,或者包括在了TopN之外被Nutch丢弃)
DB_gone:表示发生了404错误或者其他一些臆测的错误,这种状态阻止了对其以后的爬取工作。
DB_fetched表示已爬取和索引的页面,如果其值为0,那肯定出错了。

3. readlinkdb
它是"org.apache.nutch.crawl.LinkDbReader"的别称,导出链接库中信息或者返回其中一个URL信息。
使用方法:
Shell代码
Bin/nutch readlinkdb <linkdb> (-dump <out_dir> | -url <url>)  

Bin/nutch readlinkdb <linkdb> (-dump <out_dir> | -url <url>)
参数说明:
<linkdb>:linkdb工作目录
[-dump <out_dir>]:导出信息到文件夹下
[-url <url>]:打印某个URL的统计信息
实例:
Shell代码
$ bin/nutch readlinkdb fullindex/linkdb -url www.ccnu.edu.cn - no link information  

$ bin/nutch readlinkdb fullindex/linkdb -url www.ccnu.edu.cn - no link information
配置文件:
hadoop-default.xml
hadoop-site.xml
nutch-default.xml
nutch-site.xml

4. inject
它是"org.apache.nutch.crawl.Injector"的别称,注入新URL到crawldb中。
使用方法:
Shell代码
bin/nutch injector <crawldb> <urldir> 

bin/nutch injector <crawldb> <urldir>
参数说明:
<crawldb>:crawldb文件夹
<urldir>:保存有URL的文件的文件夹目录
配置文件:
hadoop-default.xml
hadoop-site.xml
nutch-default.xml
nutch-site.xml
 
以下配置文件参数影响到了注入方式:
db.default.fetch.interval——按天设置爬取间隔,默认值30.0f
db.score.injected——设置URL的默认打分,默认值1.0f
urlnormalizer.class——规范化URL的类,默认值为 org.apache.nutch.net.BasicUrlNormalizer

5. generate
它是“org.apache.nutch.crawl.Generator”,从Crawldb中抓取新的Segment。
使用方法:
Shell代码
bin/nutch generator <crawldb> <segments_dir> [-topN <num>] [-numFetchers <fetchers>] [-adddays <days>] 

bin/nutch generator <crawldb> <segments_dir> [-topN <num>] [-numFetchers <fetchers>] [-adddays <days>]
参数说明:
<crawldb>:crawldb目录
<segments_dir>:新建的爬取Segment目录
[-topN <num>]:选取前多少个链接,默认值为Long.MAX_VALUE
[-numFetchers <fetchers>]:抓取分区数量。 Default: Configuration key -> mapred.map.tasks -> 1
[-adddays <days>]: 添加 <days>到当前时间,配置crawling urls ,以将很快被爬取db.default.fetch.interval默认值为0。爬取结束时间在当前时间以前的。
示例:
Shell代码
bin/nutch generate /my/crawldb /my/segments -topN 100 -adddays 20 

bin/nutch generate /my/crawldb /my/segments -topN 100 -adddays 20
配置文件:
hadoop-default.xml
hadoop-site.xml
nutch-default.xml
nutch-site.xml
说明:
generate.max.per.host – 设置单个主机最大的URL数量,默认情况下:unlimited。

6. fetch
它是“org.apache.nutch.fetcher.Fetcher”的代称,它负责一个segment的爬取。
使用方法:
Shell代码
bin/nutch fetcher <segment> [-threads <n>] [-noParsing] 

bin/nutch fetcher <segment> [-threads <n>] [-noParsing]
参数说明:
<segment>:segment目录
[-threads <n>]:运行的fetcher线程数默认值为 Configuration Key -> fetcher.threads.fetch -> 10
[-noParsing]:禁用自动解析segment数据
配置文件:
hadoop-default.xml
hadoop-site.xml
nutch-default.xml
nutch-site.xml
说明:
Fetcher依赖于多个插件以爬取不同的协议,目前已有的协议及支撑插件如下:
http:
protocol-http
protocol-httpclient
https:
protocol-httpclient
ftp:
protocol-ftp
file:
protocol-file
当爬取网上文档的时候,不应该使用protocol-file,因为它是用于爬取本地文件的。如果你想爬取http、https,应当使用protocol-httpclient。
7. parse
它是“org.apache.nutch.parse.ParseSegment”的代称,它对一个segment运行ParseSegment。
使用方法:
Shell代码
bin/nutch parse <segment> 

bin/nutch parse <segment>
参数说明:
<segment>:Segment文件夹
配置文件:
hadoop-default.xml
hadoop-site.xml
nutch-default.xml
nutch-site.xml
说明:
它依赖于多个插件来解析不同格式的内容,支持的格式及插件有:
内容格式 插件 备注
text/html parse-html 使用NekoHTML 或者TagSoup解析HTML
application/x-javascript parse-js 解析JavaScript 文档(.js).
audio/mpeg parse-mp3 解析MP3 Audio文档(.mp3).
application/vnd.ms-excel parse-msexcel 解析MSExcel文档 (.xls).
application/vnd.ms-powerpoint parse-mspowerpoint 解析MSPower!Point 文档
application/msword parse-msword 解析MSWord文档
application/rss+xml parse-rss 解析RSS文档(.rss)
application/rtf parse-rtf 解析RTF文档(.rtf)
application/pdf parse-pdf 解析PDF文档
application/x-shockwave-flash parse-swf 解析Flash 文档 (.swf)
text-plain parse-text 解析Text文档(.txt)
application/zip parse-zip 解析Zip文档(.zip)
other types parse-ext 通过基于content-type或者路径前缀的外部命令来解析文档
默认情况下只有txt、HTML、JS格式的插件可用,其他的需要在nutch-site.xml中配置使用。
8 . segread
"segread" 是"org.apache.nutch.segment.SegmentReader"的代称,它读取并导出Segment数据。
使用方法:
Shell代码
bin/nutch segread <segment> 

bin/nutch segread <segment>
参数说明:
<segment>:Segment文件夹
配置文件:
hadoop-default.xml
hadoop-site.xml
nutch-default.xml
nutch-site.xml
说明:
在Nutch0.9后的版本中改为了readseg
9 . updatedb
它是“org.apache.nutch.crawl.CrawlDb”的代称,用fetch过程中获取的信息更新crawldb。
使用方法:
Shell代码
bin/nutch updatedb <crawldb> <segment> [-noadditions] 

bin/nutch updatedb <crawldb> <segment> [-noadditions]
参数说明:
<crawldb>:crawldb目录
<segment>:已经爬取的segment目录
[-noadditions]:是否添加新的链接到crawldb中
配置文件:
hadoop-default.xml
hadoop-site.xml
nutch-default.xml
nutch-site.xml

10.  invertlinks
它是“org.apache.nutch.crawl.LinkDb”的代称,它用从segment中获取到的信息更新linkdb。
使用方法:
Shell代码
bin/nutch invertlinks <linkdb> (-dir segmentsDir | segment1 segment2 ...) 

bin/nutch invertlinks <linkdb> (-dir segmentsDir | segment1 segment2 ...)

参数说明:
<linkdb>: linkdb目录
<segment>: segment目录,可以指定至少一个的文件夹

配置文件:
hadoop-default.xml
hadoop-site.xml
nutch-default.xml
nutch-site.xml
11.  index
它是“org.apache.nutch.indexer.Indexer”的代称,创建一个segment的索引,利用crawldb和linkdb中的数据对索引中的页面打分。
使用方法:
Shell代码
bin/nutch index <index> <crawldb> <linkdb> <segment> ... 

bin/nutch index <index> <crawldb> <linkdb> <segment> ...
参数说明:
<index>: 索引创建后的保存目录
<crawldb>: crawldb目录
<linkdb>: linkdb目录
<segment>: segment目录,可以指定多个
配置文件:
hadoop-default.xml
hadoop-site.xml
nutch-default.xml
nutch-site.xml

12.  merge
Merge是“org.apache.nutch.indexer.IndexMerger”的代称,它合并多个segment索引。
使用方法:
bin/nutch merge [-workingdir <workingdir>] <outputIndex> <indexesDir> ...

参数说明:
[-workingdir <workingdir>]:提定工作目录
<outputIndex>:合并后的索引存储目录
<indexesDir>:包含待合并的索引目录,可以指定多个

配置文件:
hadoop-default.xml
hadoop-site.xml
nutch-default.xml
nutch-site.xml
13.  mergedb
它是“org.apache.nutch.crawl.CrawlDbMerger”的代称,合并多个CrawlDb,URLFilter可选择性地过滤指定内容。
可以合并多个DB到一个中。当你分别运行爬虫并希望最终合并DB时,它会相当有用。可选择地,可以运行当前URLFilter过滤数据库中的URL,以滤去不需要的URL。当只有一个DB时也很有用,它意味着你可以通过这个工作去滤掉那些DB中你不想要的URL。
只用这个工具来过滤也是可能的,在这种情况下,只指定一个crawldb。
如果同一个URL包括在多个CrawlDb中,只有最近版本的才会被保留,即由org.apache.nutch.crawl.CrawlDatum.getFetchTime()值决定的。然而,所有版本的元数据被聚合起来,新的值代替先前的值。
使用方法:
bin/nutch merge output_crawldb crawldb1 [crawldb2 crawldb3 ...] [-filter]
参数说明:
output_crawldb:CrawlDb输出文件夹
crawldb1 [crawldb2 crawldb3 ...]:一个或者多个CrawlDb(s).
-filter:采用的URLFilters
配置文件:
hadoop-default.xml
hadoop-site.xml
nutch-default.xml
nutch-site.xml

14.  mergelinkdb
它是“org.apache.nutch.crawl.LinkDbMerger”的代称,用于合并多个linkdb,可以选择性的使用URLFilter来过滤指定内容。
当分别从多个segment群中分布式建立LinkDb而又需要合并为一个时很有用。或者,也可以指定单个LinkDb,只是用它来过滤URL。
只用这个工具来过滤也是可能的,在这种情况下,只指定一个LinkDb。
如果一个URL包含在多个LinkDb中,所有的内部链接被聚合,但是最多db.max.inlinks 指定的内链数会添加进来。 如果被激活,URLFilter可以应用到所有的目标URL及其内链中。如果目标链接被禁止,所有的该目标链接的内链将和目标链接一起被移去。如果某些内链被禁止,那么只有他们会被移去,在校验上面提到的最大限制数时他们不会被计算在内。
使用方法:
bin/nutch mergelinkdb output_linkdb linkdb1 [linkdb2 linkdb3 ...] [-filter]
参数说明:
output_linkdb:输出linkdb
linkdb1 [linkdb2 linkdb3 ...]: 多于一个的输入LinkDb(s)
-filter: Actual URLFilters to be applied on urls and links in LinkDb(s).
配置文件:
hadoop-default.xml
hadoop-site.xml
nutch-default.xml
nutch-site.xml
15.  mergesegs
它是“org.apache.nutch.segment.SegmentMerger”的代称,用于合并多个segment,可以选择性地输出到一个或者多个固定大小的segment中。
使用方法:
Shell代码
bin/nutch mergesegs output_dir (-dir segments | seg1 seg2 ...) [-filter] [-slice NNNN] 

bin/nutch mergesegs output_dir (-dir segments | seg1 seg2 ...) [-filter] [-slice NNNN]

参数说明:
output_dir:结果segment的名称或者segment片的父目录
-dir segments:父目录,包括多个segment
seg1 seg2 ...:segment目录列表
-filter:通过URLFilters过滤
-slice NNNN: 创建多个输出segment,每一个中包括了NNNN个URL。

配置文件:
hadoop-default.xml
hadoop-site.xml
nutch-default.xml
nutch-site.xml
16.  dedup
“dedup”是“org.apache.nutch.indexer.DeleteDuplicates”的别名,它segment indexes中去掉重复的页面。
使用方法:
Shell代码
bin/nutch dedup <indexes> ... 

bin/nutch dedup <indexes> ...
参数说明:
<indexes>:indexes索引文件
配置文件:
hadoop-default.xml
hadoop-site.xml
nutch-default.xml
nutch-site.xml
17.  plugin
它是“org.apache.nutch.plugin.PluginRepository”的代称,用于从插件库中加载一个插件并执行其主方法。
使用方法:
Shell代码
bin/nutch plugin <pluginId> <className> [args ...] 

bin/nutch plugin <pluginId> <className> [args ...]参数说明:
<pluginId>:期望执行的插件ID
<className>:包含主方法的类名
[args]:传入插件的参数
配置文件:
hadoop-default.xml
hadoop-site.xml
nutch-default.xml
nutch-site.xml

下面这篇写Nutch的很不错哈
http://www.blogjava.net/calvin/archive/2006/08/09/62507.html
分享到:
评论

相关推荐

    Nutch模块命令

    Nutch 的工作流程通常由一系列的命令来完成,这些命令允许用户对网络爬取过程进行精细的控制。 **Nutch 的主要字段信息** 在 Nutch 中,每个网页被分解成多个字段,这些字段包含关于网页的重要信息: 1. **Title*...

    关于Nutch的安装

    如果显示出Nutch命令脚本的帮助文档,说明Nutch已成功安装。 **4. 网络爬行** Nutch的网络爬行分为内部网爬行和全网爬行。 **4.1 内部网爬行** 内部网爬行适用于大型网站的抓取。你需要: - **创建URL文件**:...

    Nutch使用入门

    3. **测试Nutch命令** - 运行 `bin/nutch` 命令,检查是否可以正常使用。 **配置网络蜘蛛标识:** 在 `conf/nutch-default.xml` 文件中,找到 `http.agent.name` 属性,设置一个唯一的网络蜘蛛名称。这个名称会在...

    Nutch使用指南(英文)

    尝试执行以下命令以查看 Nutch 命令脚本的文档: ``` bin/nutch ``` 现在,我们可以开始爬取了。有两种爬取方式: 1. **内部网爬取**:使用 `crawl` 命令。 2. **全网爬取**:使用更低级别的 `inject`, `generate`,...

    Nutch相关框架视频教程 (1-20)(PDF)

    #### 十、Nutch命令详解 16. **常用命令介绍**: - **Crawl相关命令**:包括`crawl`、`generate`、`fetch`、`parse`等,分别用于启动爬虫、生成任务、获取网页、解析内容等操作。 - **Database相关命令**:如`...

    apache-nutch-1.16.rar 已编译好的版本,可以直接导入eclipse、idea

    4. **运行Nutch命令**:通过项目内的脚本或自定义的Java类,你可以调用Nutch的命令行工具执行爬取、索引和查询操作。例如,`bin/nutch crawl urls -dir crawl -depth 2 -topN 10`会启动一个深度为2的爬取,并返回前...

    nutch爬虫+java+eclipse

    也可以通过命令行执行bin/nutch命令。 3.5 监控和调试:Eclipse提供了强大的调试工具,可以帮助开发者跟踪代码执行流程,找出潜在问题。同时,通过日志监控,可以了解爬虫的运行状态和抓取结果。 总结,Nutch爬虫...

    nutch tutorials0.8

    执行`bin/nutch`命令可查看Nutch命令脚本的帮助文档。 **两种抓取模式**:Nutch提供了两种抓取方式——局域网抓取和全网抓取。局域网抓取适用于小规模网站(约百万页面以内),而全网抓取则提供了更高级别的控制。 ...

    windows下nutch的安装配置以及与tomcat的集成.doc

    - 打开Cygwin命令行,使用`cd`进入Nutch目录,执行`bin/nutch`确认Nutch命令响应正常。 - 修改`nutch-1.2/conf/nutch-site.xml`,关键在于`http.agent.name`的配置,需赋予一个明确的值(如`foxman`),这是Nutch...

    Nutch搜索引擎·Nutch简单应用(第3期)

    首先,Nutch的命令是其运行和管理的核心,通过不同的命令,Nutch可以执行相应的爬取和索引操作。例如, crawl命令代表了Nutch爬虫抓取和索引的整个过程。在使用该命令时,可以通过参数来控制爬取行为,如指定URL列表...

    NutchElasticsearch

    请注意,Apache Nutch 已经编译,这意味着您不需要在其中运行“ant”命令,但您还需要更改 runtime/local/conf 文件夹中的 nutch-site.xml 文件。 在 ElasticSearch 中,您需要创建一个索引。 该命令是: cr

    Apache Nutch 1.7 学习总结

    - 运行Nutch的基本命令,如抓取种子URL (`bin/nutch inject`), 分析网页 (`bin/nutch fetch`), 解析内容 (`bin/nutch parse`), 更新数据库 (`bin/nutch updatedb`),生成索引 (`bin/nutch index`). 5. **Nutch 与 ...

    nutch使用&Nutch;入门教程

    你可以单独运行每个命令,或者通过`bin/crawl`脚本自动化整个过程。 六、Nutch与其他技术的集成 Nutch可以与Solr或Elasticsearch等搜索引擎集成,实现快速高效的搜索功能。此外,还可以与HBase等NoSQL数据库配合,...

    Apache Nutch 1.7 在windows和Linux下的安装

    * 首先,使用 Nutch 1.7 的 crawl 命令来爬取网络上的网页。 * 之后,使用 Nutch 1.7 的 index 命令来索引爬取的网页。 * 最后,使用 Nutch 1.7 的 search 命令来搜索索引的网页。 5. Nutch 1.7 与 Solr 结合使用 ...

    nutch2.2.1安装步骤.docx

    在 Nutch 源代码目录下,执行以下命令: 1. 初始化项目:`ant runtime` 2. 配置 Nutch 的抓取配置文件,如 `conf/nutch-site.xml` 和 `conf/gora.properties`。 3. 添加种子 URL:`bin/nutch inject urls` 4. 执行...

    搭建nutch开发环境步骤

    在Nutch根目录下运行Maven命令来编译和安装Nutch: ```bash mvn clean install -DskipTests ``` 这将编译Nutch源代码,并将其安装到你的本地Maven仓库。 **步骤七:创建Nutch数据库** 在Nutch的根目录下,初始化...

    nutch帮助文档;nutch学习 入门

    - **运行Nutch流程**:执行`bin/nutch crawl`命令,依次进行抓取、解析、索引等步骤。 - **使用Solr或Elasticsearch**:Nutch可以将索引数据导出到Solr或Elasticsearch,以实现更强大的搜索功能。 - **学习源码**...

Global site tag (gtag.js) - Google Analytics