日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

hadoop的三大核心组件之HDFS和YARN

發布時間:2023/12/31 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 hadoop的三大核心组件之HDFS和YARN 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

Hadoop的三大核心組件之HDFS和YARN

Hadoop集群具體來說包含兩個集群:HDFS集群和YARN集群,兩者邏輯上分離,但物理上常在一起。

(1)HDFS集群:負責海量數據的存儲,集群中的角色(看jps)主要有?NameNode?/?DataNode/SecondaryNameNode。

(2)YARN集群:負責海量數據運算時的資源調度,集群中的角色(看jps)主要有?ResourceManager?/NodeManager

(3)MapReduce:它其實是一個應用程序開發包。

一、HDFS

HDFS是一個高度容錯性的系統,適合部署在廉價的機器上。HDFS采用master/slave架構。一個HDFS集群是由一個Namenode和一定數目的Datanodes組成。Namenode是一個中心服務器,負責管理文件系統的名字空間(namespace)以及客戶端對文件的訪問。集群中的Datanode一般是一個節點一個,負責管理它所在節點上的存儲。架構如下圖:

A、NameNode

NameNode管理著文件系統的命名空間,維護著文件系統樹,它不存儲真實數據,存儲元數據(MetaData)[元數據(FileName、副本數、每一個副本所在的位置...)],NameNode保存在內存中。

元數據信息通過以下文件和過程持久化到磁盤中。

a、fsimage--對元數據定期進行鏡像

b、edits--存放一定時間內對HDFS的操作記錄

c、checkpoint---檢查點

Namenode在內存中保存著整個文件系統的名字空間和文件數據塊映射(Blockmap)的映像。這個關鍵的元數據結構設計得很緊湊,因而一個有4G內存的Namenode足夠支撐大量的文件和目錄。當Namenode啟動時,它從硬盤中讀取Editlog和FsImage,將所有Editlog中的事務作用在內存中的FsImage上,并將這個新版本的FsImage從內存中保存到本地磁盤上,然后刪除舊的Editlog,因為這個舊的Editlog的事務都已經作用在FsImage上了。這個過程稱為一個檢查點(checkpoint)。在當前實現中,檢查點只發生在Namenode啟動時,在不久的將來將實現支持周期性的檢查點。

B、DataNode---存儲節點,真正存放數據的節點,用于保存數據,保存在磁盤上(在HDFS上保存的數據副本數默認是3個,這個副本數量是可以設置的)。基本單位是塊(block),默認128M。

Block塊的概念

先不看HDFS的Block,每臺機器都有磁盤,機器上的所有持久化數據都是存儲在磁盤上的。磁盤是通過塊來管理數據的,一個塊的數據是該磁盤一次能夠讀寫的最小單位,一般是512個字節,而建立在磁盤之上的文件系統也有塊的概念,通常是磁盤塊的整數倍,例如幾kb。

HDFS作為文件系統,一樣有塊的概念,對于分布式文件系統,使用文件塊將會帶來這些好處:

1.一個文件的大小不限制于集群中任意機器的磁盤大小?

2.因為塊的大小是固定的,相對比不確定大小的文件,塊更容易進行管理和計算?

3.塊同樣方便進行備份操作,以提高數據容錯性和系統的可靠性

為什么HDFS的塊大小會比文件系統的塊大那么多呢?

操作數據時,需要先從磁盤上找到指定的數據塊然后進行傳輸,而這就包含兩個動作:

1)數據塊尋址:找到該數據塊的起始位置

2)數據傳輸:讀取數據

也就是說,操作數據所花費的時間是由以上兩個步驟一起決定的,步驟1所花費的時間一般比步驟2要少很多,那么當操作的數據塊越多,尋址所花費的時間在總時間中就越小的可以忽略不計。所以塊設置的大,可以最小化磁盤的尋址開銷。但是HDFS的Block塊也不能設置的太大,會影響到map任務的啟動數,并行度降低,任務的執行數據將會變慢。

★名詞擴展:心跳機制、宕機、安全模式(zzy至理名言--“自己看網上都有”)

Datanode負責處理文件系統客戶端的讀寫請求。在Namenode的統一調度下進行數據塊的創建、刪除和復制。集群中單一Namenode的結構大大簡化了系統的架構。Namenode是所有HDFS元數據的仲裁者和管理者,這樣,用戶數據永遠不會流過Namenode。

C、SecondaryNameNode---輔助節點,用于同步元數據信息。輔助NameNode對fsimage和edits進行合并(冷備份),下面用SNN代替

NameNode?的元數據信息先往?edits?文件中寫,當?edits?文件達到一定的閾值(3600?秒或大小到?64M)的時候,會開啟合并的流程。合并流程如下:

①當開始合并的時候,SNN 會把?edits?和?fsimage?拷貝到自己服務器所在內存中,開始合并,合并生成一個名為?fsimage.ckpt?的文件。

②將?fsimage.ckpt?文件拷貝到?NameNode?上,成功后,再刪除原有的?fsimage,并將?fsimage.ckpt文件重命名為?fsimage。

????? ③當?SNN 將?edits?和?fsimage?拷貝走之后,NameNode?會立刻生成一個?edits.new?文件,用于記錄新來的元數據,當合并完成之后,原有的?edits?文件才會被刪除,并將?edits.new?文件重命名為?edits?文件,開啟下一輪流程。

?

二、YARN

A、ResourceManager

B、NodeManager

?

◆MapReduce?在?YARN?上的執行流程:

①client?提交?job,首先找?ResourceManager(ApplicationsManager)分配資源,同時將?jar?包默認拷貝10?份到?hdfs。

②ResourceManager?指?定?一?個?NodeManager?開?啟?一?個?container?,?在?Container?中?運?行?一?個ApplicationMaster?來管理這個應用程序。

③ApplicationMaster?會計算此個應用所需資源,向?ResourceManager(ResourceScheduler)申請資源。

④ResourceManager?會分配資源,在?NodeManager上開啟不同的?container,在container中來運行?map任務或者?reduce?任務

⑤當所有的?task?都執行完了,ApplicationMaster會將結果反饋給客戶端,所有工作執行完成之后,ApplicationMaster?就會自行關閉。

⑥如果某個?map?任務或者?reduce?任務失敗,ApplicationMaster會重新申請新的?container?來執行這個task。

總結

以上是生活随笔為你收集整理的hadoop的三大核心组件之HDFS和YARN的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。