好程序員大數據教學點睛:Hadoop基礎篇,Hadoop包含兩個部分:node
1.Hadoop Distributed File System (Hadoop分佈式文件系統)程序員
HDFS具備高容錯性,而且能夠被部署在低價的硬件設備之上。HDFS很適合那些有大數據集的應用,而且提供了對數據讀寫的高吞吐率。HDFS是一個master/slave的結構,就一般的部署來講,在master上只運行一個Namenode,而在每個slave上運行一個Datanode。編程
HDFS支持傳統的層次文件組織結構,同現有的一些文件系統在操做上很相似,好比你能夠建立和刪除一個文件,把一個文件從一個目錄移到另外一個目錄,重命名等等操做。Namenode管理着整個分佈式文件系統,對文件系統的操做(如創建、刪除文件和文件夾)都是經過Namenode來控制。分佈式
二、MapReduce的實現函數
MapReduce是Google 的一項重要技術,它是一個編程模型,用以進行大數據量的計算。對於大數據量的計算,一般採用的處理手法就是並行計算。至少現階段而言,對許多開發人員來講,並行計算仍是一個比較遙遠的東西。MapReduce就是一種簡化並行計算的編程模型,它讓那些沒有多少並行計算經驗的開發人員也能夠開發並行應用。oop
MapReduce的名字源於這個模型中的兩項核心操做:Map和 Reduce。簡單的說來,Map是把一組數據一對一的映射爲另外的一組數據,其映射的規則由一個函數來指定,好比對[1, 2, 3, 4]進行乘2的映射就變成了[2, 4, 6, 8]。Reduce是對一組數據進行歸約,這個歸約的規則由一個函數指定,好比對[1, 2, 3, 4]進行求和的歸約獲得結果是10,而對它進行求積的歸約結果是24。大數據