Hadoop是什么

jopen 12年前發布 | 1K 次閱讀 lamp

Hadoop原來是Apache Lucene下的一個子項目,它最初是從Nutch項目中分離出來的專門負責分布式存儲以及分布式運算的項目。簡單地說來,Hadoop是一個可以更容易開發和運行處理大規模數據的軟件平臺。下面列舉hadoop主要的一些特點:

擴容能力(Scalable:能可靠地(reliably)存儲和處理千兆字節(PB)數據。

成本低(Economical:可以通過普通機器組成的服務器群來分發以及處理數據。這些服務器群總計可達數千個節點。

高效率(Efficient:通過分發數據,hadoop可以在數據所在的節點上并行地(parallel)處理它們,這使得處理非常的快速。

可靠性(Reliablehadoop能自動地維護數據的多份復制,并且在任務失敗后能自動地重新部署(redeploy)計算任務。

Hadoop實現了一個分布式文件系統(Hadoop Distributed File System),簡稱HDFSHDFS有著高容錯性(fault-tolerent)的特點,并且設計用來部署在低廉的(low-cost)硬件上。而且它提供高傳輸率(high throughput)來訪問應用程序的數據,適合那些有著超大數據集(large data set)的應用程序。HDFS放寬了(relaxPOSIX的要求(requirements)這樣可以流的形式訪問(streaming access)文件系統中的數據。

Hadoop還實現了MapReduce分布式計算模型。MapReduce將應用程序的工作分解成很多小的工作小塊(small blocks of work)HDFS為了做到可靠性(reliability)創建了多份數據塊(data blocks)的復制(replicas),并將它們放置在服務器群的計算節點中(compute nodes),MapReduce就可以在它們所在的節點上處理這些數據了。  

 

       Hadoop API被分成(divide into)如下幾種主要的包(package):

org.apache.hadoop.conf     定義了系統參數的配置文件處理API

org.apache.hadoop.fs          定義了抽象的文件系統API

org.apache.hadoop.dfs       Hadoop分布式文件系統(HDFS)模塊的實現。

org.apache.hadoop.io         定義了通用的I/O API,用于針對網絡,數據庫,文件等數據對象做讀寫操作。

org.apache.hadoop.ipc       用于網絡服務端和客戶端的工具,封裝了網絡異步I/O的基礎模塊。

org.apache.hadoop.mapred         Hadoop分布式計算系統(MapReduce)模塊的實現,包括任務的分發調度等。

org.apache.hadoop.metrics        定義了用于性能統計信息的API,主要用于mapreddfs模塊。

org.apache.hadoop.record         定義了針對記錄的I/O API類以及一個記錄描述語言翻譯器,用于簡化將記錄序列化成語言中性的格式(language-neutral manner)。

org.apache.hadoop.tools    定義了一些通用的工具。

org.apache.hadoop.util       定義了一些公用的API


1.2    Hadoop的框架結構

Map/Reduce是一個用于大規模數據處理的分布式計算模型,它最初是由Google工程師設計并實現的,Google已經將它完整的MapReduce論文公開發布了。其中對它的定義是,Map/Reduce是一個編程模型(programming model),是一個用于處理和生成大規模數據集(processing and generating large data sets)的相關的實現。用戶定義一個map函數來處理一個key/value對以生成一批中間的key/value對,再定義一個reduce函數將所有這些中間的有著相同keyvalues合并起來。很多現實世界中的任務都可用這個模型來表達。

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!