Hadoop簡要介紹_hadoop

來源:互聯網
上載者:User

本文大部分內容都是從官網Hadoop上來的。其中有一篇介紹HDFS的pdf文檔,裡面對Hadoop介紹的比較全面了。我的這一個系列的Hadoop學習筆記也是從這裡一步一步進行下來的,同時又參考了網上的很多文章,對學習Hadoop中遇到的問題進行了歸納總結。
    言歸正傳,先說一下Hadoop的來龍去脈。談到Hadoop就不得不提到Lucene和Nutch。首先,Lucene並不是一個應用程式,而是提供了一個純Java的高效能全文索引引擎工具包,它可以方便的嵌入到各種實際應用中實現全文檢索搜尋/索引功能。Nutch是一個應用程式,是一個以Lucene為基礎實現的搜尋引擎應用,Lucene為Nutch提供了文本搜尋和索引的API,Nutch不光有搜尋的功能,還有資料抓取的功能。在nutch0.8.0版本之前,Hadoop還屬於Nutch的一部分,而從nutch0.8.0開始,將其中實現的NDFS和MapReduce剝離出來成立一個新的開源項目,這就是Hadoop,而nutch0.8.0版本較之以前的Nutch在架構上有了根本性的變化,那就是完全構建在Hadoop的基礎之上了。在Hadoop中實現了Google的GFS和MapReduce演算法,使Hadoop成為了一個分布式的計算平台。
   其實,Hadoop並不僅僅是一個用於儲存的Distributed File System,而是設計用來在由通用計算裝置組成的大型叢集上執行分布式應用的架構。

   Hadoop包含兩個部分:

   1、HDFS

      即Hadoop Distributed File System (HadoopDistributed File System)
      HDFS具有高容錯性,並且可以被部署在低價的硬體裝置之上。HDFS很適合那些有大資料集的應用,並且提供了對資料讀寫的高吞吐率。HDFS是一個master/slave的結構,就通常的部署來說,在master上只運行一個Namenode,而在每一個slave上運行一個Datanode。
      HDFS支援傳統的層次檔案組織圖,同現有的一些檔案系統在操作上很類似,比如你可以建立和刪除一個檔案,把一個檔案從一個目錄移到另一個目錄,重新命名等等操作。Namenode管理著整個Distributed File System,對檔案系統的操作(如建立、刪除檔案和檔案夾)都是通過Namenode來控制。 
     下面是HDFS的結構:


      從上面的圖中可以看出,Namenode,Datanode,Client之間的通訊都是建立在TCP/IP的基礎之上的。當Client要執行一個寫入的操作的時候,命令不是馬上就發送到Namenode,Client首先在本機上臨時檔案夾中緩衝這些資料,當臨時檔案夾中的資料區塊達到了設定的Block的值(預設是64M)時,Client便會通知Namenode,Namenode便響應Client的RPC請求,將檔案名稱插入檔案系統層次中並且在Datanode中找到一塊存放該資料的block,同時將該Datanode及對應的資料區塊資訊告訴Client,Client便這些本地臨時檔案夾中的資料區塊寫入指定的資料節點。
      HDFS採取了副本策略,其目的是為了提高系統的可靠性,可用性。HDFS的副本放置策略是三個副本,一個放在本節點上,一個放在同一機架中的另一個節點上,還有一個副本放在另一個不同的機架中的一個節點上。目前的版本的hadoop0.12.0中還沒有實現,但是進行中中,相信不久就可以出來了。

   2、MapReduce的實現

      MapReduce是Google 的一項重要技術,它是一個編程模型,用以進行大資料量的計算。對於大資料量的計算,通常採用的處理手法就是並行計算。至少現階段而言,對許多開發人員來說,並行計算還是一個比較遙遠的東西。MapReduce就是一種簡化並行計算的編程模型,它讓那些沒有多少並行計算經驗的開發人員也可以開發並行應用。
      MapReduce的名字源於這個模型中的兩項核心操作:Map和 Reduce。也許熟悉Functional Programming(函數式編程)的人見到這兩個詞會倍感親切。簡單的說來,Map是把一組資料一對一的映射為另外的一組資料,其映射的規則由一個函數來指定,比如對[1, 2, 3, 4]進行乘2的映射就變成了[2, 4, 6, 8]。Reduce是對一組資料進行歸約,這個歸約的規則由一個函數指定,比如對[1, 2, 3, 4]進行求和的歸約得到結果是10,而對它進行求積的歸約結果是24。
      關於MapReduce的內容,建議看看孟岩的這篇MapReduce:The Free Lunch Is Not Over!

   好了,作為這個系列的第一篇就寫這麼多了,我也是剛開始接觸Hadoop,下一篇就是講Hadoop的部署,談談我在部署Hadoop時遇到的問題,也給大家一個參考,少走點彎路。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.