Hadoop学习之MapReduce(一)
在學習過了HDFS架構和Hadoop的配置管理后,現在學習MapReduce應用程序的編寫和管理。首先簡單介紹一下MapReduce框架。
MapReduce是一個易于編寫程序的軟件框架,這些應用程序以可靠的、容錯的模式并行的運行在很大規模的商用硬件集群上(數以千計的節點),處理超大數量的數據(超過TB的數據集)。一個MapReduce作業通常將輸入數據集分割為獨立的數據塊,這些數據塊被map任務以完全并行的方式處理,MapReduce框架整理map任務的輸出結果,然后map的輸出結果做為reduce任務的輸入。典型地,作業的輸入和輸出都存儲在文件系統中。MapReduce框架處理調度任務,監控任務和重新執行失敗的任務。
通常地,計算節點和存儲節點是相同的節點,也就是MapReduce框架和HDFS運行在相同的節點集之上。這種配置方式允許MapReduce框架在數據存放的節點上有效地調度任務,導致集群中非常高的帶寬傳輸率。MapReduce由單一的主JobTracker和每個集群節點上一個的從TaskTracker組成。主節點負責調度作業在從節點上的組件任務,監控任務和重新執行失敗的任務,從節點執行由主節點指示的任務。
最低限度地,應用程序指定輸入輸出位置,通過實現恰當地的接口和(或者)抽象類提供map和reduce函數,這些信息和其它的作業參數組成了作業的配置管理(jobconfiguration)。Hadoop的作業客戶端提交作業(jar文件或者可執行文件等)和JobTrackerde 配置信息,JobTracker開始承擔分發軟件/配置信息到從節點上,調度任務和監控任務,向作業客戶端提供狀態和診斷信息。
雖然Hadoop框架是用Java語言實現的,但是MapReduce應用程序不
總結
以上是生活随笔為你收集整理的Hadoop学习之MapReduce(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 分布式计算Hadoop系列之如何修改Ec
- 下一篇: Hadoop学习之MapReduce(二