Hadoop相關(guān)概念

Hadoop是什么
  • Hadoop是一個(gè)開源的大數(shù)據(jù)框架
  • Hadoop是一個(gè)分布式計(jì)算的解決方案
  • Hadoop = HDFS(分布式文件系統(tǒng))+ MapReduce(分布式計(jì)算)
Hadoop核心
  • HDFS分布式文件系統(tǒng):存儲(chǔ)是大數(shù)據(jù)技術(shù)的基礎(chǔ)
  • MapReduce編程模型:分布式計(jì)算是大數(shù)據(jù)應(yīng)用的解決方案
Hadoop基礎(chǔ)架構(gòu)

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

成都創(chuàng)新互聯(lián),是成都地區(qū)的互聯(lián)網(wǎng)解決方案提供商,用心服務(wù)為企業(yè)提供網(wǎng)站建設(shè)、成都app軟件開發(fā)微信小程序、系統(tǒng)按需開發(fā)網(wǎng)站和微信代運(yùn)營(yíng)服務(wù)。經(jīng)過數(shù)10年的沉淀與積累,沉淀的是技術(shù)和服務(wù),讓客戶少走彎路,踏實(shí)做事,誠(chéng)實(shí)做人,用情服務(wù),致力做一個(gè)負(fù)責(zé)任、受尊敬的企業(yè)。對(duì)客戶負(fù)責(zé),就是對(duì)自己負(fù)責(zé),對(duì)企業(yè)負(fù)責(zé)。

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

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

1、HDFS模塊

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

2、YARN模塊

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

3、MapReduce模塊

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

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

HDFS寫流程

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

HDFS讀流程

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

MapReduce

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

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

MapReduce四個(gè)階段

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

文章標(biāo)題:Hadoop相關(guān)概念
路徑分享:http://bm7419.com/article30/igsepo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號(hào)、手機(jī)網(wǎng)站建設(shè)、商城網(wǎng)站網(wǎng)站建設(shè)、ChatGPT、做網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運(yùn)營(yíng)