大資料測試之hadoop初探

testingbang發表於2019-08-07

Hadoop的歷史


這裡就不多說了,網上很多資料,總而言之對於hadoop谷歌和雅虎對於ta的貢獻功不可沒。更多介紹請自行檢視這裡:


Hadoop的應用場景


資料分析,如日誌系統、推薦系統

離線計算

海量資料儲存


Hadoop的核心


Hadoop的框架最核心的設計就是:HDFS和MapReduce。HDFS為海量的資料提供了儲存,則MapReduce為海量的資料提供了計算。

這裡特別需要注意的是hadoop是一個總稱,主要由HDFS和MapReduce組成。其中MapReduce可以獨立使用, 使用者只要繼承MapReduceBase,提供分別實現Map和Reduce的兩個類,並註冊Job即可自動分散式執行


HDFS


ta是 Hadoop分散式檔案系統,是一個高度容錯性的系統,適合部署在廉價的機器上。HDFS能提供高吞吐量的資料訪問,適合那些有著超大資料集的應用程式。可以加入QQ交流群 522720170一起來學習。

那麼HDFS有什麼優勢嗎?顯然非常多,大致有如下幾點:

1、適合儲存大資料的檔案,T級別以上或者一大坨的資料

2、這些大資料檔案被打散儲存,儲存在不同的計算器上,這樣方便快速的讀取

3、一次寫入不能做變化了,如果變化也只能在末尾新增,也就是不支援動態改變檔案內容

4、 同一個檔案塊副本會分配到其它某幾個主機上,如果其中一臺主機失效,可以迅速找另一塊副本取檔案

5、不用多說了,一堆廉價的機器就可以撐起大資料叢集

瞭解HDFS之後我們來看看他的儲存結構,看圖說話

1.png

上圖的解釋如下:

  • HDFS 內部的所有通訊都基於標準的  TCP/IP  協議

  • NameNode(僅一個), 儲存整個檔案系統的目錄資訊、檔案資訊及分塊資訊。以前如果NameNode掛了那就完蛋了,但是hadoop2.x之後可以有備用使用了。

  • DataNode可以分佈在不同的機器上,用來儲存在 HDFS 中的檔案被分成塊(block)

  • block塊的大小(通常為 64MB)和複製的塊數量在建立檔案時由客戶機決定。

  • NameNode 依賴來自每個 DataNode 的定期心跳訊息。如果 DataNode 不能傳送心跳訊息,NameNode 將採取修復措施,重新複製在該節點上丟失的塊


MapReduce


ta大家可以理解為程式設計模型,主要就是完成對資料的處理的。當HDFS完成儲存之後,對海量資料的分析處理就要依靠MapReduce了。簡單來理解就是先對資料進行map劃分,在對資料進行reduce合併,如下圖。

2.png

為了讓大家更好的理解,這裡舉個例子。假設小強測試品牌學員群有上億的學員(這是我們的目標,嘿嘿,官網)我們想找出其中薪水最高的那個人。放到MapReduce裡大概是這樣的過程:將資料扔到block中,然後進行map找到最高的,然後再reduce彙總分析找出最大的。這個過程非常複雜要經歷key-value的產生重組等過程,但是hadoop已經幫我們實現了,我們只需要編寫相應的命令即可。


hadoop大資料處理的意義


Hadoop得以在大資料處理應用中廣泛應用得益於其自身在資料提取、變形和載入(ETL)方面上的天然優勢。

Hadoop的分散式架構,將大資料處理引擎儘可能的靠近儲存,對例如像ETL這樣的批處理操作相對合適,因為類似這樣操作的批處理結果可以直接走向儲存。

Hadoop的MapReduce功能實現了將單個任務打碎,並將碎片任務(Map)傳送到多個節點上,之後再以單個資料集的形式載入(Reduce)到資料倉儲裡


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

相關文章