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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

NameNode机制和DataNode机制

發布時間:2024/4/14 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 NameNode机制和DataNode机制 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

首先我們看一下NAMENODE:

我們已經知道了NAMENODE作為DATANODE的管理者,其重要性不言而喻,那么NAMENODE是怎么管理數據的呢?

首先,我們看一下上面這張圖,每次客戶端讀寫數據都要先經過NAMENODE,其實就是先查詢NAMENODE中的元數據,那么問題來了,NAMENODE中的元數據究竟是存在內存中還是存在硬盤中呢?如果存在內存中,一旦斷電就意味著數據的丟失;但是存在硬盤中,讀寫速度必然下降。下面將對其細節進行詳盡的闡述。

通過看以上這幅圖,我們可以看到NAMENODE中的元數據既存在在內存中,也存在在硬盤中。我們先看一下元數據的存儲細節:

從左到右依次是存儲路徑,有哪些副本,每個副本在哪些主機上面存儲。NAMENODE是整個文件系統的管理節點。它維護著整個文件系統的文件目錄樹,文件/目錄的元信息和每個文件對應的數據塊列表,接受用戶的操作請求。

文件包括:

1.fsimage:元數據鏡像文件,存儲某一時段NAMENODE內存元數據信息。

2.edits:操作日志文件。

3.fstime:保存最近一次checkpoint的時間。

現在我們回到上一幅圖,

1.NAMENODE始終在內存中保存meta.data,用于處理“讀請求”。

2.到有“寫請求”到來時,NAMENODE會首先寫edits到磁盤,即向edits文件中寫日志,成功返回后,才會修改內存,并且向客戶端返回。

3.Hadoop會維護一個fsimage文件,也就是namenode中meta.data的鏡像,但是fsimage不會隨時與NAMENODE內存中的meta.data保持一致,而是每隔一段時間通過合并edits文件來更新內容。Secondary NAMENODE就是用來合并fsimage和edits文件來更新NAMENODE的meta.data的。

?

這里就用到了Secondary NAMENODE,我們再來看一張圖:

?

在這張圖中,我們可以看到SN的一些作用,當NN通知SN要進行checkpoint操作的時候,NN就停止向edits日志中寫數據了,但是寫操作又不能停止,這時候就會向一個edits.new日志文件中寫數據,而SN會把fsimage和edits里面的內容下載到SN中,在SN中進行合并,說白了,就是將日志格式轉化成要存儲的文件格式,產生fsimage.chkpoint文件,并將它上傳給NN,替換fsimage,并且重命名成fsimage,同時edits.new替換edits,并且重命名成edits。詳細過程就是:

那么什么時候checkpoint呢?有兩種判別方式:

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

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

兩種判定方式先達到哪個判定條件,則先采用哪個。

我們再來看一下DATANODE:

DataNode

提供真實文件數據的存儲服務

文件塊:最基本的存儲單位,對于文件內容而言,一個文件的長度大小是size,那么從文件的0偏移,按照固定的大小,順序對文件進行劃分并編號。劃分好的每一塊稱為一個Block,默認Block的大小是128M。開始不同于普通文件系統的是HDFS中,如果一個文件小于一個數據塊的大小,并不占用整個數據塊存儲空間。datanode與namenode保存心跳機制,當長時間未向namenode報告,則視為該datanode死機,namenode會重新備份該datanode上的數據塊。

?

讀程圖:

?

1、客戶端發送請求,調用DistributedFileSystem API的open方法發送請求到Namenode,獲得block的位置信息,因為真正的block是存在Datanode節點上的,而namenode里存放了block位置信息的元數據。

2、Namenode返回所有block的位置信息,并將這些信息返回給客戶端。

3、客戶端拿到block的位置信息后調用FSDataInputStream API的read方法并行的讀取block信息,圖中4和5流程是并發的,block默認有3個副本,所以每一個block只需要從一個副本讀取就可以。

4、datanode返回給客戶端。

?

寫流程:

1、客戶端發送請求,調用DistributedFileSystem API的create方法去請求namenode,并告訴namenode上傳文件的文件名、文件大小、文件擁有者。

2、namenode根據以上信息算出文件需要切成多少塊block,以及block要存放在哪個datanode上,并將這些信息返回給客戶端。

3、客戶端調用FSDataInputStream API的write方法首先將其中一個block寫在datanode上,每一個block默認都有3個副本,并不是由客戶端分別往3個datanode上寫3份,而是由

? ? ?已經上傳了block的datanode產生新的線程,由這個namenode按照放置副本規則往其它datanode寫副本,這樣的優勢就是快。

4、寫完后返回給客戶端一個信息,然后客戶端在將信息反饋給namenode。

5、需要注意的是上傳文件的擁有者就是客戶端上傳文件的用戶名,舉個例子用windows客戶端上傳文件,那么這個文件的擁有者就是administrator,和linux上的系統用戶名不是一樣的。

?

補充:

我們在文件系統寫內容,其實也是先在日志中寫,然后同步到內存,接著返回寫入成功,內存中的內容會在達到閾值后寫入到磁盤中。

?

推薦這篇文章:

深刻理解HDFS工作機制

總結

以上是生活随笔為你收集整理的NameNode机制和DataNode机制的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 日本三不卡 | a视频在线| 欧美极品在线视频 | 巨胸挤奶视频www网站 | 亚洲精品视频在线观看免费 | 成人午夜免费毛片 | 午夜免费播放观看在线视频 | 干欧美少妇 | 超污视频网站 | 亚洲国产日韩一区无码精品久久久 | av免费看片| 91视频第一页 | 深田咏美在线x99av | 午夜在线观看免费视频 | 国产欧美激情在线观看 | 乳色吐息免费看 | 成年人免费小视频 | 国产有码| 精品一区二区三区四 | 午夜黄色大片 | 日本国产高清 | 精品国产三级a∨在线 | 午夜影院一区 | 一本久久综合亚洲鲁鲁五月天 | kk视频在线观看 | 1024手机在线观看 | 青青草97国产精品免费观看 | 国产免费999| 日本黄色特级片 | 日韩欧美中字 | 国产精品99无码一区二区视频 | 影音先锋亚洲成aⅴ人在 | 五月天丁香社区 | 一级黄色在线观看 | 人妻在线一区 | 女人18毛片毛片毛片毛片区二 | 天天色成人网 | 手机在线观看av片 | 欧美日韩精品二区 | 在线观看中文字幕视频 | 天天cao| 国产天堂在线 | 国产在线播放av | 久久99成人 | 好大好爽视频 | 色亚洲天堂 | 色一区二区| 欧美一区二区三区四 | 亚洲精选中文字幕 | 欧美区一区二 | 18国产免费视频 | 国产伦精品一区二区三区免费视频 | 污到下面流水的视频 | 91伊人久久 | 国产精品色片 | 久久9精品区-无套内射无码 | 亚洲综合第一 | 国产女主播一区 | 99久久免费看精品国产一区 | 日本三级视频在线播放 | 熟女少妇一区二区三区 | 动漫av网站免费观看 | 亚洲欧美另类综合 | 国产激情对白 | 小萝莉末成年一区二区 | 久一在线| 日韩精品系列 | 奇米狠狠去啦 | 午夜婷婷在线观看 | 成人免费在线播放视频 | 日日夜夜精品免费视频 | 五月天视频 | 天天干夜夜爱 | 黄色免费版 | 中文字幕视频免费 | 国产又色又爽无遮挡免费动态图 | 悠悠av| 国产精品30p | 亚州av综合色区无码一区 | 天堂8在线天堂资源bt | 免费观看黄色一级片 | 亚洲熟女乱色综合亚洲小说 | 性猛交ⅹxxx富婆视频 | 手机在线观看毛片 | 鲁丝一区二区 | 久久国产福利 | 激情久久网站 | 欧美熟妇精品一区二区蜜桃视频 | 狠狠操网址 | 蜜芽在线视频 | 亚洲顶级毛片 | 中文字幕av一区二区三区谷原希美 | 日本国产一区二区 | 国精品一区二区三区 | 悟空影视大全免费高清观看在线 | 日韩欧美精品免费 | 中国吞精videos露脸 | 奶波霸巨乳一二三区乳 | 国产精品久久一区二区三区 |