1、MR是一種用於數據處理的編程模型,MapReduce和關係型數據庫之間的區別是:
MapReduce |
關係型數據庫 |
一次寫入多次讀寫 |
多次讀寫 |
PB |
GB |
非結構化 |
結構化 |
2、MR具有"數據本地化"功能,即嘗試在計算節點本地存儲數據,通常MR處理的結果會送到Reduce繼續處理得到最終的結果,
Reduce輸出結果爲了長久穩定保存,一般存儲在HDFS上,其輸入往往來自於所有maper輸出
3、Hadoop把作業分成若干小任務來工作,其中包括:Map任務和Reduce任務。
jobtracker和tasktracker共同協調來完成整個作業的調度,jobtracker主要用來控制、分配在tasktracker的調度,tasktracker用於運行任務並將運行進度報告返回給jobtracker。
4、Hadoop會將輸入數據分成小數據塊發到MR(簡稱分片),如果有多個reducer,maper任務會對其輸出進行分區,爲每個reducer任務創建一個分區,分區包含許多鍵,每個鍵都在同一個分區中
5、hadoop允許在map和reduce之間建立combiner,是一個優化方法
6、hadoop流提供一個API來運行MR,其允許任何只要能夠編寫標準輸入並給出標準輸出的語言,因爲他使用unix標準流作爲與程序之間的藉口。
7、hadoop管道是hadoop mapreduce的c++接口的代稱,管道使用sockets作爲tasktracker與c++編寫的map或者reduce函數的進程之間的管道。