溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Hadoop相關(guān)概念

發(fā)布時間:2020-07-22 06:54:33 來源:網(wǎng)絡(luò) 閱讀:279 作者:么啥好說的 欄目:大數(shù)據(jù)
Hadoop是什么
  • Hadoop是一個開源的大數(shù)據(jù)框架
  • Hadoop是一個分布式計算的解決方案
  • Hadoop = HDFS(分布式文件系統(tǒng))+ MapReduce(分布式計算)
Hadoop核心
  • HDFS分布式文件系統(tǒng):存儲是大數(shù)據(jù)技術(shù)的基礎(chǔ)
  • MapReduce編程模型:分布式計算是大數(shù)據(jù)應(yīng)用的解決方案
Hadoop基礎(chǔ)架構(gòu)

 HDFS概念
  數(shù)據(jù)塊
  NameNode
  DataNode

數(shù)據(jù)塊:抽象塊而非整個文件作為存儲單;默認大小64MB一般設(shè)置為128M,備份X3。
NameNode:管理文件系統(tǒng)的命名空間,存放文件元數(shù)據(jù);維護著文件系統(tǒng)的所有文件和目錄,文件與數(shù)據(jù)塊的映射;記錄每個文件中各個塊所在數(shù)據(jù)節(jié)點的信息。
DataNode:存儲并檢索數(shù)據(jù)塊;向NameNode更新所存儲塊的列表。

HDFS優(yōu)點
  • 適合大文件存儲,支持TB、PB級的數(shù)據(jù)存儲,并有副本策略。
  • 可以構(gòu)建在廉價的機器上,并有一定的容錯和恢復(fù)機制。
  • 支持流式數(shù)據(jù)訪問,一次寫入多次讀取最高效。
HDFS缺點
  • 不適合大量小文件存儲
  • 不適合并發(fā)寫入,不支持文件隨機修改。
  • 不支持隨機讀取等低延時的訪問方式。
Hadoop各個功能模塊的理解

1、HDFS模塊

HDFS負責(zé)大數(shù)據(jù)的存儲,通過將大文件分塊后進行分布式存儲方式,突破了服務(wù)器硬盤大小的限制,解決了單臺機器無法存儲大文件的問題,HDFS是個相對獨立的模塊,可以為YARN提供服務(wù),也可以為HBase等其他模塊提供服務(wù)。

2、YARN模塊

YARN是一個通用的資源協(xié)同和任務(wù)調(diào)度框架,是為了解決Hadoop1.x中MapReduce里NameNode負載太大和其他問題而創(chuàng)建的一個框架。
YARN是個通用框架,不止可以運行MapReduce,還可以運行Spark、Storm等其他計算框架。

3、MapReduce模塊

MapReduce是一個計算框架,它給出了一種數(shù)據(jù)處理的方式,即通過Map階段、Reduce階段來分布式地流式處理數(shù)據(jù)。它只適用于大數(shù)據(jù)的離線處理,對實時性要求很高的應(yīng)用不適用。

延伸思考
  • 如何通過Hadoop存儲小文件?
    a、在客戶端將小文件合并為大文件。
    Hadoop會把每一個小文件傳遞給map()函數(shù),而Hadoop在調(diào)用map()函數(shù)時會創(chuàng)建一個映射器,這樣就會創(chuàng)建了大量的映射器,應(yīng)用的運行效率并不高。如果使用和存儲小文件,通常就會創(chuàng)很多的映射器。解決小文件問題的主要目的就是通過合并小文件為更大的文件來加快Hadoop的程序的執(zhí)行,解決小文件問題可以減少map()函數(shù)的執(zhí)行次數(shù),相應(yīng)地提高hadoop作業(yè)的整體性能。
    b、使用Hadoop的CombineFileInputFormat<K,V>實現(xiàn)小文件的合并。
    使用Hadoop API(抽象類CombineFileInputFormat)來解決小文件的問題。抽象類CombineFileInputFormat的基本思想是通過使用一個定制的InputFormat允許將小文件合并到Hadoop的分片(split)或塊(chunk)中。
  • 當(dāng)有節(jié)點故障的時候,集群是如何繼續(xù)提供服務(wù)的,如何讀、寫?
  • 哪些是影響MapReduce性能的因素?
    a、硬件(或者資源)因素,如CPU、磁盤I/O、網(wǎng)絡(luò)帶寬和內(nèi)存大小。
    b、底層存儲系統(tǒng)。
    c、輸入數(shù)據(jù)、分揀(shuffle)數(shù)據(jù)以及輸出數(shù)據(jù)的大小,這與作業(yè)的運行時間緊密相關(guān)。
    d、作業(yè)算法(或者程序),如map、reduce、partition、combine和compress。有些算法很難在MapReduce中概念化,或者在MapReduce中效率可能會降低。

HDFS寫流程

Hadoop相關(guān)概念
1、客戶端想NameNode發(fā)起寫數(shù)據(jù)請求
2、分塊寫入DataNode節(jié)點,DataNode自動完成副本備份
3、DataNode向NameNode匯報存儲完成,NameNode通知客戶端

HDFS讀流程

Hadoop相關(guān)概念
1、客戶端向NameNode發(fā)起讀數(shù)據(jù)請求
2、NameNode找出距離最近的DataNode節(jié)點信息
3、客戶端從DataNode分塊下載文件

MapReduce

MapReduce是一種編程模型,是一種編程方法,是抽象的理論。

  • YARN概念(通用的資源協(xié)同和任務(wù)調(diào)度框架)
    • ResourceManager
      分配和調(diào)度資源、啟動并監(jiān)控ApplicationMaster、監(jiān)控NodeManager
    • ApplicationMaster
      為MR類型的程序申請資源,并分配給內(nèi)部任務(wù)、負責(zé)數(shù)據(jù)的切分、監(jiān)控任務(wù)的執(zhí)行及容錯
    • NodeManager
      管理單個節(jié)點的資源、處理來自ResourceManager的命令、處理來自ApplicationMaster的命令

MapReduce四個階段

  • Split階段
  • Map階段(需要編碼)
  • Shuffle階段
  • Reduce階段(需要編碼)
MapReduce編程模型
- 輸入一個大文件,通過split之后將其分為多個分片    
- 每個文件分片由單獨的機器去處理,這就是Map方法    
- 將各個機器計算的結(jié)果進行匯總并得到最終的結(jié)果,這就是Reduce方法。    
向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI