[Hadoop入门] - 1 Ubuntu系统 Hadoop介绍 MapReduce编程思想
Ubuntu系統 (我用到版本號是140.4)
ubuntu系統是一個以桌面應用為主的Linux操作系統,Ubuntu基于Debian發行版和GNOME桌面環境。Ubuntu的目標在于為一般用戶提供一個最新的、同時又相當穩定的主要由自由軟件構建而成的操作系統,它可免費使用,并帶有社團及專業的支持應。
作為Hadoop大數據開發測試環境, 建議大家不要在windows上安裝CgyWin來學習或研究, 直接用Vmware+ubuntu來學習。
下載?www.vmware.com這里下載vmware,?www.ubuntu.com這里下載ubuntu。
?
Hadoop介紹(我用到版本號是1.2.1)
Hadoop是一個由Apache基金會所開發的分布式系統基礎架構。用戶可以在不了解分布式底層細節的情況下,開發分布式程序。充分利用集群的威力進行高速運算和存儲。Hadoop實現了一個分布式文件系統(Hadoop Distributed File System),簡稱HDFS。HDFS有高容錯性的特點,并且設計用來部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)來訪問應用程序的數據,適合那些有著超大數據集(large data set)的應用程序。HDFS放寬了(relax)POSIX的要求,可以以流的形式訪問(streaming access)文件系統中的數據。Hadoop的框架最核心的設計就是:HDFS和MapReduce。HDFS為海量的數據提供了存儲,則MapReduce為海量的數據提供了計算。
?
MapReduce編程思想
MapReduce是一種編程模型,用于大規模數據集(大于1TB)的并行運算。概念"Map(映射)"和"Reduce(歸約)",和它們的主要思想,都是從函數式編程語言里借來的,還有從矢量編程語言里借來的特性。它極大地方便了編程人員在不會分布式并行編程的情況下,將自己的程序運行在分布式系統上。 當前的軟件實現是指定一個Map(映射)函數,用來把一組鍵值對映射成一組新的鍵值對,指定并發的Reduce(歸約)函數,用來保證所有映射的鍵值對中的每一個共享相同的鍵組。
?
Hadoop能做什么?
很多人或許沒接觸過大量數據的開發,例如一個網站日訪問量達幾千萬以上, 網站服務器會產生大量的各種日志, 某天上班老板問我想要統計一下什么區域的人訪問網站最多, 具體數據大概是多少? 我曾經在一個Hadoop群里提問過, 很多人說我寫個程序就能實現, 有人說我自己寫一個分布式的系統來專門計算。 能自己寫一個出來當然能證明你的能力, 但某一天老板又問我想知道什么年齡段的人訪問最多, 難道又寫一個分布式的系統來計算? 這是浪費人力物力的事情。 而且就算寫得很完美, 也沒經過市場用戶的考查, 存在不確定性。 hadoop就完全可以幫你實現各方面的問題, 自己只需要編寫一些特定的java業務流程代碼就可以, 穩定又可以不斷的隨著業務與數據的增大而擴大。hadoop常用在數據統計方面, 例如在幾十G文件中統計某一個單詞出現幾次, 在無數個數字當中查找最大的值,通過你的程序收集的日志統計出各方營銷的數據,幫助你實現市場定位與推廣方向。
?
總結
以上是生活随笔為你收集整理的[Hadoop入门] - 1 Ubuntu系统 Hadoop介绍 MapReduce编程思想的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 怎样在Ubuntu系统安装可用的QQ
- 下一篇: ubuntu设置自启动服务程序