真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

HDFS中讀寫過程的示例分析

小編給大家分享一下HDFS中讀寫過程的示例分析,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

10年積累的成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站設(shè)計(jì)后付款的網(wǎng)站建設(shè)流程,更有瓊結(jié)免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

 讀文件的過程

  1 客戶端(client)用 FileSystem 的open() 函數(shù)打開文件

  2 DistributedFileSystem 用RPC 調(diào)用元數(shù)據(jù)節(jié)點(diǎn),得到文件的數(shù)據(jù)塊信息 。對(duì)于每一個(gè)數(shù)據(jù)塊,元數(shù)據(jù)節(jié)點(diǎn)返回保存數(shù)據(jù)塊的數(shù)據(jù)節(jié)點(diǎn)的地址 ,DistributedFileSystem 返回FSDataInputStream給客戶端,用來讀取數(shù)據(jù)。

 3 客戶端調(diào)用stream的read() 函數(shù)開始讀取數(shù)據(jù) ,DFSInputSteam 連接保存此文件第一個(gè)數(shù)據(jù)塊的最近的數(shù)據(jù)節(jié)點(diǎn)

 4 Data 從數(shù)據(jù)節(jié)點(diǎn)讀到客戶端(client) ,當(dāng)此數(shù)據(jù)塊讀取完畢時(shí),DFSInputStream關(guān)閉和此數(shù)據(jù)節(jié)點(diǎn)的連接,然后連接此文件下一個(gè)數(shù)據(jù)塊的最近的數(shù)據(jù)節(jié)點(diǎn)。

 5 當(dāng)客戶端讀取完畢數(shù)據(jù)的時(shí)候,調(diào)用FSDataInputStream 的close()函數(shù) 

    在讀取數(shù)據(jù)的過程中,如果客戶端在與數(shù)據(jù)節(jié)點(diǎn)通信出現(xiàn)錯(cuò)誤,則嘗試連接包含此數(shù)據(jù)塊的下一個(gè)數(shù)據(jù)節(jié)點(diǎn)。

失敗的數(shù)據(jù)節(jié)點(diǎn)將被記錄,以后不再連接。

HDFS中讀寫過程的示例分析

自簡(jiǎn)單總結(jié) :  client 用FileSystem open  打開文件---> FileSystem從namenode 獲取文件的bloc location位置 返回 FSDataInputStream 給client  ---->  client 利用 FSDataInputStream 讀取數(shù)據(jù) --->每讀完一個(gè)數(shù)據(jù)塊關(guān)閉與此 datanode的連接 ---->直到文件所有數(shù)據(jù)塊 讀完,關(guān)閉 FSDataInputStream 的close()

寫文件的過程

 1、客戶端調(diào)用create()來創(chuàng)建文件

 2、 DistributedFileSystem 用RPC 調(diào)用元數(shù)據(jù)元數(shù)據(jù)節(jié)點(diǎn),在文件系統(tǒng)的命名空間創(chuàng)建一個(gè)新的文件。

       元數(shù)據(jù)節(jié)點(diǎn)首先確定文件原來不存在,并且客戶端有創(chuàng)建文件的權(quán)限,然后創(chuàng)建文 件。  DistributedFileSystem 返回DFSOutputStream 客戶端用于寫數(shù)據(jù)  

 3、 客戶端開始寫入數(shù)據(jù),DFSOutputStream 將數(shù)據(jù)分成塊,寫入 data queue 。

 4、 Data queue 由 Data Streamer讀取,并通知元數(shù)據(jù)節(jié)點(diǎn)分配數(shù)據(jù)節(jié)點(diǎn),用來存儲(chǔ)數(shù)據(jù)塊(每塊默認(rèn)復(fù)制3塊) 分配的數(shù)據(jù)節(jié)點(diǎn)放在一個(gè)pipeline里  。也即 (DFSOutputStream寫入 data queue里的block 即將要寫入pipeline 中的數(shù)據(jù)節(jié)點(diǎn)上 ,這塊的讀寫數(shù)據(jù)工作是由Data Streamer來負(fù)責(zé)的)

     Data Streamer 將數(shù)據(jù)塊寫入pipeline中的 第一個(gè)數(shù)據(jù)節(jié)點(diǎn)。 第一個(gè)數(shù)據(jù)節(jié)點(diǎn)將數(shù)據(jù)塊發(fā)送給第二個(gè)數(shù)據(jù)節(jié)點(diǎn)。第二個(gè)數(shù)據(jù)節(jié)點(diǎn)將數(shù)據(jù)發(fā)送給第三個(gè)數(shù)據(jù)節(jié)點(diǎn)。依次。。

5、DFSOutputStream 為發(fā)出去的數(shù)據(jù)塊保存了 ack queue ,等待pipeline中的數(shù)據(jù)節(jié)點(diǎn)告知數(shù)據(jù)已經(jīng)寫入成功。

         如果數(shù)據(jù)節(jié)點(diǎn)在寫入的過程中失?。?/p>

         關(guān)閉pipeline ,將ack queue 中的數(shù)據(jù)塊放入 data queue的開始

         當(dāng)前的數(shù)據(jù)塊在已經(jīng)寫入的數(shù)據(jù)節(jié)點(diǎn)中被元數(shù)據(jù)節(jié)點(diǎn)賦予新的標(biāo)示,則錯(cuò)誤節(jié)點(diǎn)重啟后能夠察覺其數(shù)據(jù)時(shí)過期的,會(huì)被刪除。

         失敗的數(shù)據(jù)節(jié)點(diǎn)從pipeline 中移除,另外的數(shù)據(jù)塊則寫入pipeline中的另外兩個(gè)數(shù)據(jù)節(jié)點(diǎn)。

        元數(shù)據(jù)節(jié)點(diǎn)則被通知此數(shù)據(jù)塊是復(fù)制塊數(shù)不足,將來會(huì)再創(chuàng)建第三份備份

6、當(dāng)客戶端結(jié)束寫入數(shù)據(jù),則調(diào)用stream 的 close函數(shù) 。此操作將所有的數(shù)據(jù)塊寫入 pipeline中的數(shù)據(jù)節(jié)點(diǎn),并等待ack queue 返回成功 。最后通知元數(shù)據(jù)節(jié)點(diǎn)寫入完畢。

 HDFS中讀寫過程的示例分析

自總結(jié)

client create --> FileSystem create調(diào)用namnode 創(chuàng)建 fsimage文件 --> 返回DFSOutputStream給客戶端 ---> 客戶端利用DFSOutputStream 開始 將block(數(shù)據(jù)分塊)寫入data queue里
--->Data Streamer來負(fù)責(zé)從data queue取數(shù)據(jù)寫入pipeline (數(shù)據(jù)節(jié)點(diǎn)列表)--->DFSOutputStream 等待pipeline 返回的ack queue -->最后通知元數(shù)據(jù)節(jié)點(diǎn)寫入完畢

安全模式

1:Name 啟動(dòng)的時(shí)候首先將fsimage(鏡像)載入內(nèi)存,并執(zhí)行(replay)編輯日志editlog的各項(xiàng)操作

2:一旦內(nèi)存中建立文件系統(tǒng)元數(shù)據(jù)映射,則創(chuàng)建一個(gè)新的fsimage 文件(這個(gè)過程不需要secondaryNamenode)和一個(gè)空的editlog

3:在安全模式下 ,各個(gè) datanode 會(huì)向namenode發(fā)送塊列表的最新情況

4:此刻namenode 運(yùn)行在安全模式 。即  namenode 的文件系統(tǒng)對(duì)于客戶端來說是只讀的(顯示目錄,顯示文件內(nèi)容等 ,寫,刪除 ,重命名都會(huì)失敗)

5:NameNode 開始監(jiān)聽RPC 和HTTP請(qǐng)求

 解釋RPC:RPC(Remote Procedure Call Protocol)——遠(yuǎn)程過程通過協(xié)議,它是一種通過網(wǎng)絡(luò)從遠(yuǎn)程

   計(jì)算機(jī)程序上請(qǐng)求服務(wù),而不需要了解底層網(wǎng)絡(luò)技術(shù)的協(xié)議.

6: 系統(tǒng)中數(shù)據(jù)塊的位置并不是由namenode  維護(hù)的,而是以列表形式存儲(chǔ)在datanode 中

7: 在系統(tǒng)的正常操作期間,namenode 會(huì)在內(nèi)存中保留所有塊信息的映射信息(塊在datanode什么位置)

8 : 進(jìn)入和離開安全模式:

     查看namenode處于哪個(gè)狀態(tài)

       hadoop dfsadmin -safemode get

進(jìn)入安全模式(hadoop啟動(dòng)的時(shí)候是在安全模式)

             hadoop dfsadmin –safemode enter

        離開安全模式

             hadoop dfsadmin  -safemode leave

看完了這篇文章,相信你對(duì)“HDFS中讀寫過程的示例分析”有了一定的了解,如果想了解更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!


本文標(biāo)題:HDFS中讀寫過程的示例分析
本文地址:http://weahome.cn/article/jphdpo.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部