泰仔在線

          java學習,心情日記,繽紛時刻
          posts - 100, comments - 34, trackbacks - 0, articles - 0

          Nutch的命令詳解

          Posted on 2009-09-05 16:55 泰仔在線 閱讀(8097) 評論(0)  編輯  收藏 所屬分類: Java 相關

          關鍵字: 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的命令詳解

          主站蜘蛛池模板: 合江县| 无极县| 济南市| 容城县| 连山| 大城县| 丰县| 上犹县| 新密市| 革吉县| 易门县| 沙坪坝区| 富宁县| 永寿县| 廉江市| 景德镇市| 兴和县| 威宁| 黎平县| 贵溪市| 宣武区| 洱源县| 罗源县| 库车县| 巨野县| 若羌县| 德州市| 呼图壁县| 武汉市| 加查县| 葫芦岛市| 兰坪| 如皋市| 吉安县| 都昌县| 应城市| 邻水| 瑞丽市| 雷山县| 凤冈县| 永宁县|