原來map Reduce同做家務嘅原理一模一樣

Ching_Ho_Ball

4 回覆
3 Like 8 Dislike
Ching_Ho_Ball 2025-04-29 13:13:31
1 Map(洗衫階段):拆分與初步處理**
- **洗衣流程**:
- **分揀衣物**:將不同顏色、材質的衣物分類(類似 **資料分片**)。
- **多台洗衣機同時運作**:分開洗滌不同類別的衣物(**平行處理**)。
- **目標**:去除污漬(**初步處理原始資料**)。

- **Map 階段對應**:
- 將大數據集拆分成多個「分片」(如分揀衣物)。
- 多台伺服器同時處理不同分片,提取關鍵資訊(如清洗並標記衣物類型)。
- 輸出中間鍵值對(例如 { "襯衫": 1, "牛仔褲": 1 })。

---

### **2. Shuffle(分類整理):隱藏的過渡步驟**
- **晾衫前的準備**:
- 將洗好的衣物按類型(上衣、褲子)或顏色分類,方便後續處理。

- **Shuffle 階段對應**:
- 系統自動將相同鍵(如「襯衫」)的中間結果集中到同一節點,為 Reduce 做準備。
- 類似將所有「襯衫」集中到一個衣籃,方便統一晾曬。

---

### **3. Reduce(晾衫階段):整合與輸出結果**
- **晾衫流程**:
- **統一方式處理同類衣物**:例如用衣架晾襯衫、用夾子夾襪子(**按類別歸納**)。
- **節省空間與時間**:整齊排列提高效率(**匯總結果**)。

- **Reduce 階段對應**:
- 接收已分組的中間資料(如所有「襯衫」的數量)。
- 對同類資料進行聚合計算(如統計總件數)。
- 輸出最終結果(如 { "總衣物數": 15 })。

---



### **為何這個類比有效?**
- **分工協作**:如同家人分工洗衣晾衫,MapReduce 透過多台機器分工處理。
- **階段性處理**:洗滌(Map)與晾曬(Reduce)需按順序執行,避免混亂。
- **效率提升**:平行處理大量任務(同時洗多批衣物)節省總時間。

---

### **進階思考:容錯機制**
若類比中加入「意外處理」,例如:
- **洗衣機故障**:重新分配衣物到其他機器(MapReduce 的 **容錯重試**)。
- **晾衣時大風吹落**:重新晾曬(Reduce 階段的 **資料複製備份**)。
Stefan 2025-04-29 13:22:51
map filter reduce

javascript撚表示是常識吧

雖然呢啲嘢本身係haskell同ocaml呢啲fpp到嚟
CJP 2025-05-16 07:27:13
不寫程式的程式員 2025-05-18 11:23:17
你post錯wiki 了....
吹水台自選台熱 門最 新手機台時事台政事台World體育台娛樂台動漫台Apps台遊戲台影視台講故台健康台感情台家庭台潮流台美容台上班台財經台房屋台飲食台旅遊台學術台校園台汽車台音樂台創意台硬件台電器台攝影台玩具台寵物台軟件台活動台電訊台直播台站務台黑 洞