Hadoop簡介!

開發者學習指南發表於2019-07-09


Hadoop 是什麼 ?

隨著資料量的急劇增加,遇到的兩個最直接的問題就是資料儲存和計算 ( 分析 / 利用 )

Hadoop 是由 Apache 基金會所開發的一個用 Java 實現的分散式基礎框架,也可以看做是一個支援開發、執行由通用計算裝置組成的大型叢集上的分散式應用的平臺。 Hadoop 中的兩個最重要的元件— HDFS MapReduce 就是用來解決海量資料 ( 分散式 ) 儲存、海量資料 ( 分散式 ) 計算的。使用者可以在不瞭解分散式底層細節的情況下,開發分散式程式。充分利用叢集的威力進行高速運算和儲存。

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

HDFS 有兩種節點, NameNode DataNode DataNode 主要用來儲存資料, NameNode 管理著整個檔案系統的互動。相對於普通的檔案系統, HDFS 顯著的特點是分散式海量儲存、備份機制。

Hadoop 的框架最核心的設計就是: HDFS MapReduce HDFS 為海量的資料提供了儲存,則 MapReduce 為海量的資料提供了計算。 MapReduce :平行計算框架, MapReduce 其實是一種分散式計算模型,多個計算機平行計算,共同做一件事情。

 

Hadoop 的應用場景:

簡單認識了什麼是 Hadoop ,再來了解一下 Hadoop 一般都適用於哪些場景。

Hadoop 主要應用於大資料量的離線場景,特點是大資料量、離線。

資料量大:一般真正線上用 Hadoop 的,叢集規模都在上百臺到幾千臺的機器。這種情況下, T 級別的資料也是很小的。

離線: Mapreduce 框架下,很難處理實時計算,作業都以日誌分析這樣的線下作業為主。另外,叢集中一般都會有大量作業等待被排程,保證資源充分利用。

另外,由於 HDFS 設計的特點, Hadoop 適合處理檔案塊大的檔案。大量的小檔案使用 Hadoop 來處理效率會很低。

 

Hadoop 常用的場景有:

大資料量儲存:分散式儲存(各種雲盤,百度, 360~ 還有云平臺均有 hadoop 應用)

l   日誌處理

l   海量計算,平行計算

l   資料探勘 ( 比如廣告推薦等)

l   行為分析,使用者建模等

l   ……

 

更多 Hadoop 課程:


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69926013/viewspace-2650008/,如需轉載,請註明出處,否則將追究法律責任。