假設現在高考成績出來了,領導讓你統計學校有多少考生上了一本線,考生的成績列印在20張紙上。格式如下:
姓名 成績
張三 600
李四 580
王五 610
...
你找來了4位學生(甲乙丙丁)來幫忙。首先,你把20張成績單分成了4份,每份交給1位學生,同時還給了他們一張白紙。你告訴他們,數一下有多少人過了一本線,把結果用「正」字的形式寫在白紙上,完成後把結果交還給你。等到4位學生都完成後,你數一下有多少個「正」字就統計出多少考生上了一本線。
在這個例子中,
假設領導讓你統計有多少考生上了一本線,有多少考生上了二本線而沒有上一本線,同時又有多少考生上了三本線而沒有上二本線。你覺得這有點複雜了,所以除了前面的4位學生(甲乙丙丁)外,你又另外找了3位學生(abc)來幫忙。你還是先把成績分成4份,分別交給前面甲乙丙丁,同時給了他們每人三張白紙,告訴他們分別在每張白紙上用「正」字的形式統計上了一本線、二本線和三本線的人數。待完成後,將包含有一本考生的人數的紙交給學生a,二本考生的人數的紙交給學生b,三本學生的人數交給學生c。學生abc在拿到甲乙丙丁的結果後,學生a統計有多少考生上一本線,學生b統計有多少考生上了二本線,學生c統計有多少考生上了三本線。而你在分配完任務後
就在旁邊喝茶,等到學生abc向你報告結果。
在這個例子中:
學生甲乙丙丁將其統計結果分別交給學生abc的過程就是shuffle。
學生abc所做的事情就是reducer。
後記:領導知道你這樣統計結果後大怒,這點小事還要找那麼多學生來幫忙,遂一怒之下將你解雇了。後來統計局知道後,這就是我們要找的處理大資料人才啊,然後你就直接進了統計局工作了。
MapReduce計數例項
mapreduce 是hadoop的分布式計算系統,是乙個分布式運算程式的程式設計框架。為什麼需要mapreduce 本例項是基於hadoop2.8.5的偽分布式平台。如果jps命令執行後如下圖所示,則偽分布式搭建完成。hadoop偽分布式和完全分布式的搭建後續會進行更新?先將本地乙個檔案上傳到hd...
mapreduce應用例項
1 mapreduce是乙個程式設計模型,既不是平台也不是特定的語言。面向記錄的資料處理 鍵和值 便於跨多個節點分配任務 2 集群上的資源管理取決於版本 1 mapreduce v1 mrv1,經典mapreduce 使用jobtracker和tasktracker 架構 守護程序啟動和管理map任...
MapReduce例項 多表關聯
多表關聯和單錶關聯類似,它也是通過對原始資料進行一定的處理,從其中挖掘出關心的資訊。輸入是兩個檔案,乙個代表工廠表,包含工廠名列和位址編號列 另乙個代表位址表,包含位址名列和位址編號列。要求從輸入資料中找出工廠名和位址名的對應關係,輸出 工廠名 位址名 表。1.源資料 factory factory...