1、mapreduce是乙個程式設計模型,既不是平台也不是特定的語言。面向記錄的資料處理(鍵和值),便於跨多個節點分配任務
2、 集群上的資源管理取決於版本
1)mapreduce v1(mrv1,經典mapreduce)使用jobtracker和tasktracker(架構)守護程序啟動和管理map任務,shuffle和sort,以及reduce任務
2)mapreduce v2(mrv2,yarn)
3、mrv1守護程序
jobtracker每個群集乙個。管理mapreduce作業,將各個任務分配給tasktracker
tasktracker每個從節點乙個。啟動和監視單個map和reduce任務
4、mapreduce v2
1)集群上的資源由yarn管理:resourcemanager排程資源和管理應用程式生命週期;nodemanager啟動容器任務
2)單個作業任務由applicationmaster管理
5、mrv1與mrv2
1)資源分配
mrv1 從節點配置為執行固定數量的map任務和固定數量的reduce任務
mrv2 根據需要為任何型別的任務分配容器
2)資源管理守護程式
mrv1 每個群集乙個jobtracker,可以支援大約4000個節點
mrv2 每個集群乙個resourcemanager,可以支援數萬個節點
3)工作組合
mrv1 僅限mapreduce作業
mrv2 支援其他框架和應用程式(例如impala,spark,giraph等),在同一集群上執行的不同型別的應用程式之間協商資源
6、mapreduce作業有三個階段
1)map階段,mappers將hdfs資料作為輸入並產生中間資料
2)shuffle和sort階段(嚴格意義上屬於map階段),將資料從mappers傳送到reducers
3)reduce階段,reducers彙總mappers的結果
4)過程可以被認為是類似於unix管道。
如:cat /my/log | grep '\.html' (map)| sort (shuffle and sort)| uniq –c(reduce) > /my/outfile
MapReduce計數例項
mapreduce 是hadoop的分布式計算系統,是乙個分布式運算程式的程式設計框架。為什麼需要mapreduce 本例項是基於hadoop2.8.5的偽分布式平台。如果jps命令執行後如下圖所示,則偽分布式搭建完成。hadoop偽分布式和完全分布式的搭建後續會進行更新?先將本地乙個檔案上傳到hd...
MapReduce例項 多表關聯
多表關聯和單錶關聯類似,它也是通過對原始資料進行一定的處理,從其中挖掘出關心的資訊。輸入是兩個檔案,乙個代表工廠表,包含工廠名列和位址編號列 另乙個代表位址表,包含位址名列和位址編號列。要求從輸入資料中找出工廠名和位址名的對應關係,輸出 工廠名 位址名 表。1.源資料 factory factory...
03 Mapreduce例項 排序
實驗原理 map reduce任務中shuffle和排序的過程圖如下 流程分析 1.map端 1 每個輸入分片會讓乙個map任務來處理,預設情況下,以hdfs的乙個塊的大小 預設為64m 為乙個分片,當然我們也可以設定塊的大小。map輸出的結果會暫且放在乙個環形記憶體緩衝區中 該緩衝區的大小預設為1...