hadoop Map-Reduce體系架構node
1. map-reduce的編程模型apache
2. 沒有reduce的編程模型編程
3. 複雜的編程模型性能優化
4.mapper網絡
Map-Reduce的思想就是「分而治之」架構
mapper負責「分」,即把複雜的任務分解爲若干個「簡單的任務」執行app
「簡單的任務」有幾個含義: 1)數據或計算規模至關於緣任務要大大縮小;2)就近計算,即會被分配到存放了所需數據的節點進行計算;3)這些小任務能夠並行計算,彼此間幾乎沒有依賴關係工具
5.Reduceroop
對map階段的結果進行彙總性能
Reducer的數目由mapred-site.xml配置文件裏的項目mapred.reduce.tasks決定。缺省值爲1,用戶能夠覆蓋之
6.Shuttler
在mapper和reducer中間的一個步驟(能夠沒有)
能夠把mapper的輸出結果按照某種key值從新切分和組合n份
把key值符合某種範圍的輸出送到特定的reducer那裏去處理
能夠簡化reducer過程
7.M-R的現實例子
流程原理圖
Mapper
8. 性能優化
究竟須要多少個reducer
輸入:大文件優於小文件
減小網絡傳輸:壓縮map的輸出
優化每一個節點能運行的任務數:mapred.tasktracker.map.tasks.maximum和mapred.tasktracker.reduce.tasks.maximum(缺省值均爲2)
9.map-reduce工做機制剖析圖
10.調度機制
缺省爲先入先出做業隊列調度
支持公平調度器
支持容量調度器
11.任務執行優化
12.錯誤處理機制:硬件故障
13.錯誤處理機制:任務失敗
14.hadoop命令大全和hadoop API大全
15.審計日誌
把log4j.properties配置文件中的log4j.logger.org.apache.hadoop.fs.FSNamesytem.audit=WARN改成「INFO」能夠打開審計日誌。每一個HDFS事件都會在namenode的log中寫入一行記錄
16.監控日誌
17.第三方工具
Ganglia
Chukwa
Openstack