一、什麼是大數據,本質?
1.數據的存儲:分佈式文件系統(分佈式存儲)----HDFS:Hadoop Distributed File System
2.數據的計算:分佈式計算
大數據應用場景?
例如:
1、商品推薦中:大量的訂單如何存儲以及大量的訂單如何計算?
2、天氣預報場景中:大量的天氣數據存儲、大量的天氣如何計算問題
使用大數據的分佈式文件系統與分佈式計算可以很好的解決此類場景問題。
如何解決大數據的存儲?—分佈式文件系統(HDFS,來源於GFS)
問題1:(硬盤不夠大怎麼解決?)
如果數據有10G大小,而我們一塊硬盤只有6G,如何解決?多搞幾塊硬盤就解決了。
問題2:(數據不夠安全問題)
將同一份數據分別存到1/2/3硬盤中都存一份,這樣的話即使1/2號硬盤壞了,我們也可以使用3號硬盤中的數據。
問題3:(效率問題)
上傳一份數據完成後,然後將其水平復制到其他2個硬盤內。
問題4:(安全問題)
上傳輸數據過程中按照數據塊的方式進行傳輸
如下圖所示:
如何解決大數據的計算?—分佈式計算
1、什麼是PageRank?(MapReduce的問題來源)
(1) PageRank是解決網頁搜索排名問題
2、MapReduce(Java語言實現)基礎編程模型: 把一個大任務拆分成小任務,小任務分別計算出結果後再進行彙總。
MapReduce模型分爲2個階段:Map階段和Reduce階段
如下圖所示: