Hadoop——大數(shù)據(jù)框架卖子,有多種語言版本夏伊,包括python,JAVA等
為什么需要Hadoop刻肄?
數(shù)據(jù)量大瓤球,計(jì)算量大,單個(gè)機(jī)器無法完成
可將數(shù)據(jù)分布在多個(gè)機(jī)器上由多個(gè)機(jī)器共同完成計(jì)算
大數(shù)據(jù)計(jì)算需要各個(gè)機(jī)器相互協(xié)調(diào)工作敏弃,大數(shù)據(jù)算法有共同點(diǎn)卦羡,可將其做成框架,Hadoop就是這樣的框架
MapReduce,Google提出的框架
以下面的例子來解釋MapReduce的概念
樣例:Google搜索引擎绿饵,想知道大家對(duì)哪些關(guān)鍵字感興趣欠肾,以天為單位,收集所有人搜過的關(guān)鍵字拟赊,統(tǒng)計(jì)其出現(xiàn)的次數(shù)刺桃,用戶搜索的關(guān)鍵字?jǐn)?shù)據(jù)文件存在多臺(tái)機(jī)器上。
- Map階段:每臺(tái)機(jī)器處理本機(jī)的數(shù)據(jù)吸祟,計(jì)算本機(jī)文件中的關(guān)鍵字個(gè)數(shù)
- Shuffing階段:機(jī)器A, B, C, D......從1-n所有機(jī)器上取出Map的結(jié)果瑟慈,并按關(guān)鍵字組合
- Reduce階段:對(duì)每一個(gè)搜索關(guān)鍵字統(tǒng)計(jì)出現(xiàn)總次數(shù)
MapReduce Model
使用Hadoop時(shí)只需要編寫Map函數(shù)和Reduce函數(shù),其他的框架已經(jīng)幫我們實(shí)現(xiàn)了
參考文章
- https://zhuanlan.zhihu.com/p/20176725
- Hadoop權(quán)威指南