mapreduce應用例項

2021-12-30 12:17:45 字數 1219 閱讀 5004

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...