全文索引-lucene,solr,nutch,hadoop之nutch與hadoop

chaofanwei發表於2014-10-11


全文索引-lucene,solr,nutch,hadoop之lucene


全文索引-lucene,solr,nutch,hadoop之solr



        我在去年的時候,就想把lucene,solr,nutch和hadoop這幾個東東給詳細的介紹下,但由於時間的關係,我還是隻寫了兩篇文章,分別介紹了一下lucene和solr,後來就沒有在寫了,但我心裡還是期待的,雖然到現在我沒有真正搞過nutch和hadoop實戰專案,但公司馬上就要做hadoop大資料的監控了,我一直都說,要做一個有準備的人,因此我從去年到現在從未停止過對hadoop相關技術的學習、思考、實戰。

       在去年上半年的時候,我還在我的上一家公司,有一天老總說讓我研究一下搜尋引擎方面的知識(公司有seo方面的業務),於是我就從網上搜尋,最後我無意間發現了一個開源的搜尋引擎的apache旗下的專案-nutch,於是乎,我就沉醉於其中,從網上找資料,搭建環境(只能在linux系統上),並最終能夠執行了。我從中淺淺的瞭解了一下搜尋引擎方面的知識,但是讓我最想不到的竟然是nutch竟然是hadoop專案出現的原因、導火線、父專案。本來我想單獨再寫兩篇分別關於nutch和hadoop的專案,但真實需要花費很多的個人時間,而且nutch環境並不好搭建,而且畢竟我的重點在於hadoop,因此,我在本文還是先說說nutch和hadoop的背景以及介紹吧。

        Hadoop是Apache Lucene創始人Doug Cutting建立的,Lucene是一個廣泛使用的文字搜尋系統Hadoop起源於Nutch,一個開源的網路搜尋引擎,它本身也是Lucene專案的一部分。


1、Hadoop背景


        Nutch專案始於2002年,一個可以執行的網頁爬取工具和搜尋引擎系統很快“浮出水面”。但後來,開發者認為這一架構可擴充套件度不夠,不能解決數十億網頁的搜尋問題。

         2003年穀歌公司發表了一篇關於谷歌分散式檔案系統的文章,簡稱GFS。GFS或類似的架構,可以解決他們在網頁爬取和索引過程中產生的超大檔案的儲存需求。特別關鍵的是,GFS能夠節省系統管理所花的大量時間。


      在2004年,他們開始著手實現一個開源的實現,即Nutch的分散式檔案系統NDFS。

       2004年,谷歌發表論文向全世界介紹他們的MapReduce系統。

       2005年初,Nutch的開發人員在Nutch上實現了一個MapReduce系統,到年中,Nutch的所有主要演算法均完成移植,用MapReduce和NDFS來執行。
     
       Nutch的NDFS和MapReduce實現不知適用於搜尋領域。在2006年2月,開發人員將NDFS和MapReduce移出Nutch形成Lucene的一個子專案,稱為Hadoop。大約在同一時間,Doug Cutting加入雅虎,雅虎為此組織了一個專門的團隊和資源。
     
       2008年1月,Hadoop已成為Apache的頂級專案,證明了它的成功、多樣化、活越性。



2、Apache Hadoop和Hadoop生態圈

      儘管Hadoop因MapReduce和分散式檔案系統HDFS而出名,但Hadoop這個名字也用於一組相關專案的統稱,如下:

2.1、Common

       一組分散式檔案系統和通用I/O元件與介面(序列化、java rpc和持久資料結構)

2.2、Arvo

       一種支援高效、跨語言的RPC以及永久儲存資料的序列化系統。

2.3、MapReduce

       分散式資料處理模型和執行環境,執行於大型商用叢集。

2.4、HDFS

      分散式檔案系統,執行於大型商用叢集。

2.5、Pig

      一種資料流語言和執行環境,用以檢索非常大的資料集。Pig執行在MapReduce和HDFS叢集上。

2.6、Hive

      一個分散式、按列儲存的資料倉儲。Hive管理HDFS中儲存的資料,並提供基於SQL的查詢語言(由執行時引擎翻譯成MapReduce作業)用以查詢資料。

2.7、HBase

    一個分散式、按列儲存資料庫。HBase使用HDFS作為底層儲存,同時支援MapReduce的批量式計算和點查詢。

2.8、ZooKepper

      一個分散式、可用性高的協調服務。ZooKepper提供分散式鎖之類的基本服務用於構建分散式應用。

2.9、Sqoop

      在資料庫和HDFS之間高效傳輸資料的工具。


3、後續

       雖然我去年就接觸到hadoop,並進行了一些列的學習(網上視訊和資料),但還是沒有學好,實際用起來。剛好今年公司準備設計開發大資料方面的監控,公司就給我們這些開發人員買了幾本Hadoop方面的書籍,但我草草的看了一下,最後還是自己買了一本《Hadoop權威指南》,覺得還是這本書寫的比較好,我也看完了一遍,為了總結Hadoop相關知識和便於查詢,我後續準備把裡面一些比較重要的知識給總結分享下,敬請期待!



相關文章