Skip to content

QueenieCplusplus/MapReducer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 

Repository files navigation

MapReducer

Hadoop 運算架構 Divide & Conquer 分而治之!

運算框架請詳見 Spark (可使用 Python), 單純使用 Hadoop 則是僅支援 Java 和 C。

https://github.com/apache/hadoop (Java 後端程式設計師)

https://github.com/QueenieCplusplus/DataMining_Spark (Python 資料分析師)

     HDFS          Map ->  spill ->  Shuffle, copy and sort -> Reduce   ->   HDFS


     split1                                                                part1
     split2                                                                part2
     split3                                                                part3
  • Split 將輸入的資料劃分成同等長度的小資料區塊 chunk -> split

  • Shuddle 洗牌,指把 Map 的輸出匯入到 Reduce 的程式的過渡期。

傳統的運算架構是集中處理,而現在未來趨勢相反,是將運算作為工作分散(發送)到儲存的資料上,然而這項技術很需要快速的網路 ~

     Input Chunks ----->    x                                  /
                                                              /
                                                             /
                            y    ------>     (k, v) pairs    ------>    Combined Output
                                                             \
                                                              \
                                                               \
                            z                               Tasks Reducer
                         Tasks Mapper
  • Map 工作節點對本機資料應用了 map() 函數

  • Shuffle 重新分配

  • Reduce 所有節點同時處理資料組


  • Map 映射

利用映射產生列表

  Map(k1, v1) -> list(k2, v2)
  • Reducer 減化

利用 Key Value 放到多個 node 中用撰寫的 Reducer 操作處理,歸併成一列表。

  Reduce(k2, list(v2)) -> list(v3)
  • DataLocalization 資料在地化

    將分散於節點上的資料,就近處理,就是資料在地化處理(或稱資料當地語系化)。
    

Releases

No releases published

Packages

No packages published