大數(shù)據(jù)關(guān)于HDFS、YARN及MapReduce的總結(jié)

前言:

有很多小伙伴對這幾個東西的概念有些模糊,這里我做一個總結(jié),希望大家能一篇看懂。

一、HDFS

HDFS是分布式文件系統(tǒng),有高容錯性的特點,可以部署在價格低廉的服務器上,主要包含namenode和datanode。

Namenode是hdfs中文件目錄和文件分配管理者,它保存著文件名和數(shù)據(jù)塊的映射管理,數(shù)據(jù)塊和datanode列表的映射關(guān)系。其中文件名和數(shù)據(jù)塊的關(guān)系保存在磁盤上,但是namenode上不保存數(shù)據(jù)塊和datanode列表的關(guān)系,該列表是通過datanode上報建立起來的。

Namenode上的有三種交互,1、client訪問namenode獲取的相關(guān)datanode的信息。2、datanode心跳匯報當前block的情況。3、secondarynamenode做checkpoint交互。

? DataNode它負責實際的數(shù)據(jù)存儲,并將數(shù)據(jù)息定期匯報給NameNode。DataNode以固定大小的block為基本單位組織文件內(nèi)容,默認情況下block大小為128MB。當用戶上傳一個大的文件到HDFS上時,該文件會被切分成若干個block,分別存儲到不同的DataNode;同時,為了保證數(shù)據(jù)可靠,會將同一個block以流水線方式寫到若干個(默認是3,該參數(shù)可配置)不同的DataNode上。這種文件切割后存儲的過程是對用戶透明的。

?CheckPoint的時間點

fs.checkpoint.period 指定兩次checkpoint的最大時間間隔,默認3600秒。?

fs.checkpoint.size 規(guī)定edits文件的最大值,一旦超過這個值則強制checkpoint,不管是否到達最大時間間隔。默認大小是64M。

流程解析

1、每隔兩個小時,或者edits文件超過最大值時,SecondaryNameNode通知NameNode切換edits,

此時在NameNode中生成一個名為edits.new的新edits,在fsimage被替換之前,所有的操作都會寫到edits.new中。

2、SecondaryNameNode通過Http協(xié)議復制edits和fsimage到SecondaryNameNode中

3、SecondaryNameNode將fsimage導入內(nèi)存,用edits中的操作,生成新的fsimage.ckpt文件

4、SecondaryNameNode將新的fsimage復制,并通過http Post傳給NameNode

5、NameNode將接收到的新的fsimage.ckpt替換掉之前的fsimage,同時將新的edits.new重命名為edits,將之前的替換掉

?SecondaryNameNode,用來輔助namenode進行元數(shù)據(jù)的合并,并且傳回到namenode。

二、YARN

YARN主要包括幾種角色

ResourceManager(RM):主要接收客戶端任務請求,接收和監(jiān)控NodeManager(NM)的資源情況匯報,負責資源的分配與調(diào)度,啟動和監(jiān)控ApplicationMaster(AM),一個集群只有一個。

NodeManager:主要是節(jié)點上的資源管理,啟動Container運行task計算,上報資源、container情況給RM和任務處理情況給AM,整個集群有多個。

ApplicationMaster:主要是單個Application(Job)的task管理和調(diào)度,向RM進行資源的申請,向NM發(fā)出launch Container指令,接收NM的task處理狀態(tài)信息。每個應用有一個。

Container:是YARN中資源的抽象,它封裝了某個節(jié)點上一定量的資源(CPU和內(nèi)存兩類資源)



三、MapReduce

MapReduce是hadoop的一種離線計算框架,適合離線批處理,具有很好的容錯性和擴展性,適合簡單的批處理任務。缺點啟動開銷大,任務多使用磁盤效率比較低。

一個MapReduce?作業(yè)通常會把輸入的數(shù)據(jù)集切分為若干獨立的數(shù)據(jù)塊,由?map任務(task)以完全并行的方式處理它們??蚣軙ap的輸出先進行排序,然后把結(jié)果輸入給reduce任務。通常作業(yè)的輸入和輸出都會被存儲在文件系統(tǒng)中。整個框架負責任務的調(diào)度和監(jiān)控,以及重新執(zhí)行已經(jīng)失敗的任務。通常,MapReduce框架和分布式文件系統(tǒng)是運行在一組相同的節(jié)點上的,計算節(jié)點和存儲節(jié)點通常在一起。這種配置允許框架在那些已經(jīng)存好數(shù)據(jù)的節(jié)點上高效地調(diào)度任務,這可以使整個集群的網(wǎng)絡帶寬被非常高效地利用。

一個MapReduce任務包含一般會這幾個部分:Map、Shuffle(Sort、Partitioner、?Combiner、Merge、Sort)、Reduce。

Mapreduce工作原理如下圖:


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

  • 翻譯: http://hadoop.apache.org/docs/stable/hadoop-project-d...
    金剛_30bf閱讀 544評論 0 0
  • 龐哈哈哈12138閱讀 628評論 0 1
  • 母親節(jié)快到了,感謝阿姨在N年前生下了全國限量版的你,并讓你很榮幸的認識全球獨一無二的我,在此我僅代表我個人向阿姨問...
    紅臉閱讀 357評論 1 1
  • 畢業(yè)不到一年,好朋友小佳被男朋友分手了。那一天的朋友圈幾乎要爆炸,幾乎都是給她的留言,"怎么回事?" 我細心看了朋...
    妮可日記閱讀 292評論 0 1

友情鏈接更多精彩內(nèi)容