3分鐘讓你讀懂Hadoop都做了什麼

寫這篇文章的原因是給那些看了很多幹貨,但是覺得說的太多,對於剛入門的同學看起來是比較枯燥的事情,那麼筆者就對此總結了hadoop簡潔版。希望能夠幫助初學的小夥伴。分享之前我還是要推薦下我自己創建的大數據學習交流Qun: 710219868 進Qun聊邀請碼填寫 南風(必填)我就知道是你了

Hadoop可以說是大數據儲存和計算的開山鼻祖了,現在大多數的開源框架都依賴於Hadoop,或者能與它更好的兼容。

Hadoop的由來:

Hadoop是一個由Apache基金會所開發的分佈式系統基礎架構。

Hadoop實現了一個分佈式文件系統(Hadoop Distributed File System),簡稱HDFS。HDFS有高容錯性的特點,並且設計用來部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)來訪問應用程序的數據,適合那些有着超大數據集(large data set)的應用程序。HDFS放寬了(relax)POSIX的要求,可以以流的形式訪問(streaming access)文件系統中的數據。

hadoop的核心總共有兩個:HDFS(爲海量數據提供儲存)、MapReduce(爲海量數據提供了計算)
hadoop的優點: 是一個能對大數據進行分佈式處理的軟件框架、是一種可靠、高效、高伸縮的方式進行處理數據.
哪裏可靠:因爲它假設了計算元素或儲存失敗,因此它維護了多個工作數據和副本,確保能夠針對失敗的節點進行重新分佈處理
哪裏高效:因爲它是以並行的方式進行工作,通過並行處理加快處理速度
還是可伸縮的,因爲可以處理PB級數據
那麼說了這麼多幹貨,究竟hadoop是幹嘛的。具體能做什麼呢

hadoop就是適用於大數據存儲和大數據分析的應用,適用於幾千臺或者幾萬臺服務器的集羣運行,支持PB級的存儲容量。

hadoop提供了什麼功能呢?

        利用服務器集羣,根據用戶自定義的業務邏輯對海量數據進行分佈式處理!

hadoop運用於什麼場景呢?

        目前最典型是運用於對 數據量特別大、數據類型複雜,無法用傳統數據庫進行儲存和處理的的文本、日誌、視頻、圖片、地理位置等.

技術介紹:

HDFS:
那麼顧名思義大數據首先是要把數據儲存下來。而HDFS的設計本質就是爲了大量數據能夠橫跨成千上萬個服務器存儲。

    比如說你獲取了/hdfs/tmp/a1的數據,雖然你看到的只是一個路徑的數據,但是很可能這個數據存儲在很多不同的機器上。

作爲用戶根本不關注你這些數據儲存在了哪裏和儲存在多少個地方,更多關注數據的使用和處理,這些就要交給HDFS管理。

MapReduce:
那麼我們能夠存儲數據了,就要考慮如何處理數據了,一臺計算機處理T或者P以上的數據可能需要好幾天,這種效率明顯公司是不能接受的,但是我們如果使用很多臺計算機處理的話就面臨了計算機之間如何分配的任務,如何通信、數據交換。這就是MapReduce/Spack要處理的問題了。提供了可靠的能在集羣上運行的計算模型。

Hive:
簡單來說就是程序員在寫MapReduce程序的時候發現很麻煩,但是可以通過Hive解決這個事情。

hive是通過SQL的方式自動把腳本或者SQL翻譯成MapReduce程序,然後丟給計算引擎去處理

因爲SQL比較容易上手,容易修改,可能一兩行的SQL語句換成MapReduce可能幾十行,幾百行

上面介紹的就是數據倉庫的基本架構了,底層是 HDFS,上面運行的是 MapReduce/Spark,在往上封裝的是Hive。

Storm:
想要更快的計算處理速度!Storm 是最流行的流計算平臺。流處理的思路就是在數據進入系統的時候就進行處理,基本無延遲。缺點是不靈活,必須事先直到需要統計的數據,數據流過就沒有了,沒法進行補算。因此它是個好東西,但還是無法代替上述體系的。

HBase:
HBase 是一個構建與 HDFS 的分佈式,面向列的存儲系統。以 key value 對的方式存儲數據並對存取操作做了優化,能夠飛快的根據 key 獲取綁定的數據。例如從幾個 P 的數據中找×××號只需要零點幾秒。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章