淺談 Map-Reduce 概念

本文介绍了Map-Reduce的概念,作为Hadoop大数据分析的核心,它包括input、split、map、combine、shuffle & sort、reduce和output等步骤。Map阶段进行filtering和sorting,Reduce阶段进行整合和加总,形成最终结果。
摘要由CSDN通过智能技术生成

前言

在提到大數據分析時,常常會提到 Hadoop 或是 Spark 等工具,而對於 Hadoop 稍微了解的朋友就會知道 Hadoop 的兩大核心就是 HDFS(Hadoop Distributed File System) 和 Map-Reduce。本篇就來介紹 Map-Reduce 到底是甚麼 !

正文

Map-Reduce 基本概念

其實 Map-Reduce 是一種開發模式,或是可以理解為一種編程範式。過程其實可以拆解為許多步驟,而最主要的核心就是 Map 和 Reduce 兩步驟。

下圖以一個例子和流程說明 Map-Reduce 模型的完整流程。

以下來一一分析每一步驟的目的和做法。

input

input的是要計算的原始信息,以上圖為例其實就是一堆文字清單。

split

split做的就是將原始信息分組,作分散處理。以 Hadoop 而言,就會把原始信息 split 到不同的 cluster 等待近一步處理。

map

map 就是一直提到的 Map-Reduce 模型的 Map 操作。map 操作會把經過 split 的 cluster 建立形如 (key, value) 的鍵值對。key 就是信息本身,value 都為 1 表示出現一次。

combine

combine 其實可以看成 map 操作的一部份,要先將每個 cluster 中 key 一樣的鍵值對先進行一次加總,避免傳出過多冗余得信息。

shuffle & sort

shuffle & sort 就是在 reduce 前一步,會將每個 cluster 中 key 相同的先合併成一個新的 cluster,並按 key 大小(自定義)先進行一次排序(為了使提高結果可讀性)。

reduce

reduce 就是一直提到的 Map-Reduce 模型的 reduce 操作。做的是實際的加總,將每個 cluster 中的 value 進行一次加總化簡,使每個 cluster 被 reduce 成只剩一個鍵值對。

output

將每個 cluster 合併作為最終結果輸出。

簡單來說,可以將整個 Map-Reduce 模型拆分為 Map 和 Reduce 兩階段。

Map 階段基本上會做 filtering 和 sorting 並且傳出一個(key, value)做結果(以wordcount為例,每一個字會作為最後的key,而value則是1代表有一筆)

Reduce階段基本上會做整合(以wordcount為例,從Map傳過來的key如果一樣,表示同一個字,因此把一樣的key做加總最後的出總筆數

結語

最近小白我也才剛開始接觸大數據相關的技術棧,學習到 Hadoop 似乎必須得清楚 Map-Reduce 的概念,所幸整理了下自己的理解。希望這篇對同是初學者的你們有幫助,若有錯誤也歡迎各位大老們指教。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值