nutch命令詳解

 

關鍵字: nutch 命令 
Nutch
採用了一種命令的方式進行工做,其命令能夠是對局域網方式的單一命令也能夠是對整個Web進行爬取的分步命令。主要的命令以下: javascript

1. Crawl 
Crawl
「org.apache.nutch.crawl.Crawl」的別稱,它是一個完整的爬取和索引過程命令。 
使用方法: 
Shell
代碼 
bin/nutch crawl <urlDir> [-dir d] [-threads n] [-depth i] [-topN]  html

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 java

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

   其餘文件: 
   crawl-urlfilter.txt
apache

2.  Readdb 
    Readdb
命令是「org.apache.nutch.crawl.CrawlDbReader」的別稱,返回或者導出Crawl數據庫(crawldb)中的信息。 
  
使用方法: 
Shell
代碼 
bin/nutch rseaddb <crawldb> (-stats | -dump <out_dir> | -url <url>)   app

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
oop

說明: 
-stats
命令是一個快速查看爬取信息的頗有用的工做,其輸出信息表示了: 
DB_unfetched
:連接到已爬取頁面但尚未被爬取的頁面數(緣由是它們沒有經過url過濾器的過濾,或者包括在了TopN以外被Nutch丟棄) 
DB_gone
:表示發生了404錯誤或者其餘一些臆測的錯誤,這種狀態阻止了對其之後的爬取工做。 
DB_fetched
表示已爬取和索引的頁面,若是其值爲0,那確定出錯了。 fetch

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"的別稱,注入新URLcrawldb中。 
使用方法: 
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,由於它是用於爬取本地文件的。若是你想爬取httphttps,應當使用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或者路徑前綴的外部命令來解析文檔 
默認狀況下只有txtHTMLJS格式的插件可用,其餘的須要在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的索引,利用crawldblinkdb中的數據對索引中的頁面打分。 
使用方法: 
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」的代稱,合併多個CrawlDbURLFilter可選擇性地過濾指定內容。 
能夠合併多個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,每個中包括了NNNNURL

配置文件: 
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

相關文章
相關標籤/搜索