泰仔在線

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

          Nutch的索引代碼解讀(一)

          Posted on 2009-09-05 17:00 泰仔在線 閱讀(1532) 評論(1)  編輯  收藏 所屬分類: Java 相關

          關鍵字: nutch 索引
          Nutch的索引代碼解讀(一)

          Nutch的內部網增量縮影是可以通過recrawl腳本(nutch的wiki上有發布)進行增量更新,但是對于對于全網爬取的URL如何做到增量更新,目前來說還沒有相關的方法,尤其是對于上TB級別數據的索引更新和合并,直接把Nutch似乎還有相當多的問題需要解決(比如分布式大索引分割、合并等等,在Nutch的mailing list上大家討論了非常多,但還是沒有一個合理的解決方案),因此,作者期望通過解讀源碼的方式來對Nutch的索引構建機制和源碼做一個較為初淺的解讀,以期通過修改解決Nutch的索引面臨的問題,期望能得到廣大網友的意見。
              考慮到筆者的需求是Nutch對于海量的數據的索引,因此基于集群的方式對Nutch的源碼進行解讀。
          本文是針對Nutch1.0而寫,Nutch1.0相比0.9更多的功能采用了Map/reduce算法結構,若不是先前對MapReduce有一番了解,看起來將是非常費解。
          首先:補充一點最基礎的知識,就是Nutch的文件目錄所包含的內容:

          crawldb目錄下面存放下載的URL,以及下載的日期,用來頁面更新檢查時間。
          linkdb目錄存放URL的關聯關系,是下載完成后分析時創建的,通過這個關聯關系可以實現類似google的pagerank功能。
          segments目錄存儲抓取的頁面,下面子目錄的個數與獲取頁面的層數有關系。     內含有6個子目錄
              content:下載頁面的內容
              crawl_fetch:下載URL的狀態內容
               crawl_generate:待下載的URL的集合,在generate任務生成時和下載過程中持續分析出來
              crawl_parse:存放用來更新crawldb的外部鏈接庫
              parse_data:存放每個URL解析出來的外部鏈接和元數據
              parse_text:存放每個解析過的URL的文本內容
          index目錄存放符合lucene格式的索引目錄,是indexs里所有的索引內容合并后的完整內容,這里的索引文件的內容基本與lucene的索引文件一致,但多了.nrm文件,少了lucene的.f0文件,而且是非復合索引。
          indexs目錄存放每次下載的索引目錄,存放part-0000到part-0003

          1.定位crawl.java的index入口:
          Java代碼
          indexer.index(indexes, crawlDb, linkDb, Arrays.asList(HadoopFSUtil.getPaths(fstats))); 

          indexer.index(indexes, crawlDb, linkDb, Arrays.asList(HadoopFSUtil.getPaths(fstats)));
            此方法完成對Segments到Indexes的索引構建
            indexes-org.apache.hadoop.fs.Path luceneDir:是由lucene構建的Indexes存放的路徑;
            crawlDb-org.apache.hadoop.fs.Path crawlDb:是爬取的crawlDb存放在Hadoop上的路徑;

            linkDb-org.apache.hadoop.fs.Path, List<org.apache.hadoop.fs.Path> segments

          轉自:Nutch的索引代碼解讀(一)

          Feedback

          # ...  回復  更多評論   

          2009-11-19 10:46 by my name is your daddy
          nutch 增量
          主站蜘蛛池模板: 大城县| 泗水县| 梅州市| 类乌齐县| 东乡族自治县| 庄浪县| 瓦房店市| 菏泽市| 洛扎县| 卢湾区| 邹城市| 徐闻县| 吉木萨尔县| 济南市| 抚远县| 芮城县| 大宁县| 榆林市| 扶绥县| 铜山县| 滦平县| 越西县| 广饶县| 西盟| 泾川县| 荔波县| 定远县| 新闻| 泸溪县| 巩留县| 江北区| 永济市| 象山县| 册亨县| 离岛区| 读书| 宁夏| 乐清市| 桐乡市| 天台县| 阿拉善盟|