偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

大數(shù)據(jù)HDFS讀寫(xiě)數(shù)據(jù)的過(guò)程探究

大數(shù)據(jù)
跟namenode通信查詢?cè)獢?shù)據(jù),找到文件塊所在的datanode服務(wù)器,挑選一臺(tái)datanode(就近原則,然后隨機(jī))服務(wù)器,請(qǐng)求建立socket流。

讀數(shù)據(jù)

  1. 跟namenode通信查詢?cè)獢?shù)據(jù),找到文件塊所在的datanode服務(wù)器
  2. 挑選一臺(tái)datanode(就近原則,然后隨機(jī))服務(wù)器,請(qǐng)求建立socket流
  3. datanode開(kāi)始發(fā)送數(shù)據(jù)(從磁盤(pán)里面讀取數(shù)據(jù)放入流,以packet為單位來(lái)做校驗(yàn))
  4. 客戶端以packet為單位接收,現(xiàn)在本地緩存,然后寫(xiě)入目標(biāo)文件 
大數(shù)據(jù)HDFS讀寫(xiě)數(shù)據(jù)的過(guò)程探究

寫(xiě)數(shù)據(jù)

  1. 根namenode通信請(qǐng)求上傳文件,namenode檢查目標(biāo)文件是否已存在,父目錄是否存在
  2. namenode返回是否可以上傳
  3. client請(qǐng)求第一個(gè) block該傳輸?shù)侥男ヾatanode服務(wù)器上
  4. namenode返回3個(gè)datanode服務(wù)器ABC
  5. client請(qǐng)求3臺(tái)dn中的一臺(tái)A上傳數(shù)據(jù)(本質(zhì)上是一個(gè)RPC調(diào)用,建立pipeline),A收到請(qǐng)求會(huì)繼續(xù)調(diào)用B,然后B調(diào)用C,將真?zhèn)€pipeline建立完成,逐級(jí)返回客戶端
  6. client開(kāi)始往A上傳第一個(gè)block(先從磁盤(pán)讀取數(shù)據(jù)放到一個(gè)本地內(nèi)存緩存),以packet為單位,A收到一個(gè)packet就會(huì)傳給B,B傳給C;A每傳一個(gè)packet會(huì)放入一個(gè)應(yīng)答隊(duì)列等待應(yīng)答
  7. 當(dāng)一個(gè)block傳輸完成之后,client再次請(qǐng)求namenode上傳第二個(gè)block的服務(wù)器。 
大數(shù)據(jù)HDFS讀寫(xiě)數(shù)據(jù)的過(guò)程探究

網(wǎng)絡(luò)故障,臟數(shù)據(jù)如何解決?

DataNode 失效等問(wèn)題,這些問(wèn)題 HDFS 在設(shè)計(jì)的時(shí)候都早已考慮到了。下面來(lái)介紹一下數(shù)據(jù)損壞處理流程:

  • 當(dāng) DataNode 讀取 block 的時(shí)候,它會(huì)計(jì)算 checksum。
  • 如果計(jì)算后的 checksum,與 block 創(chuàng)建時(shí)值不一樣,說(shuō)明該 block 已經(jīng)損壞。
  • Client 讀取其它 DataNode上的 block。
  • NameNode 標(biāo)記該塊已經(jīng)損壞,然后復(fù)制 block 達(dá)到預(yù)期設(shè)置的文件備份數(shù) 。
  • DataNode 在其文件創(chuàng)建后驗(yàn)證其 checksum。

讀寫(xiě)過(guò)程,數(shù)據(jù)完整性如何保持?

通過(guò)校驗(yàn)和。因?yàn)槊總€(gè)chunk中都有一個(gè)校驗(yàn)位,一個(gè)個(gè)chunk構(gòu)成packet,一個(gè)個(gè)packet最終形成block,故可在block上求校驗(yàn)和。

HDFS 的client端即實(shí)現(xiàn)了對(duì) HDFS 文件內(nèi)容的校驗(yàn)和 (checksum) 檢查。當(dāng)客戶端創(chuàng)建一個(gè)新的HDFS文件時(shí)候,分塊后會(huì)計(jì)算這個(gè)文件每個(gè)數(shù)據(jù)塊的校驗(yàn)和,此校驗(yàn)和會(huì)以一個(gè)隱藏文件形式保存在同一個(gè) HDFS 命名空間下。當(dāng)client端從HDFS中讀取文件內(nèi)容后,它會(huì)檢查分塊時(shí)候計(jì)算出的校驗(yàn)和(隱藏文件里)和讀取到的文件塊中校驗(yàn)和是否匹配,如果不匹配,客戶端可以選擇從其他 Datanode 獲取該數(shù)據(jù)塊的副本。

HDFS中文件塊目錄結(jié)構(gòu)具體格式如下: 

  1. ${dfs.datanode.data.dir}/  
  2. ├── current  
  3. │ ├── BP-526805057-127.0.0.1-1411980876842  
  4. │ │ └── current  
  5. │ │ ├── VERSION  
  6. │ │ ├── finalized  
  7. │ │ │ ├── blk_1073741825  
  8. │ │ │ ├── blk_1073741825_1001.meta  
  9. │ │ │ ├── blk_1073741826  
  10. │ │ │ └── blk_1073741826_1002.meta  
  11. │ │ └── rbw  
  12. │ └── VERSION  
  13. └── in_use.lock 

in_use.lock表示DataNode正在對(duì)文件夾進(jìn)行操作

rbw是“replica being written”的意思,該目錄用于存儲(chǔ)用戶當(dāng)前正在寫(xiě)入的數(shù)據(jù)。

Block元數(shù)據(jù)文件(*.meta)由一個(gè)包含版本、類型信息的頭文件和一系列校驗(yàn)值組成。校驗(yàn)和也正是存在其中。

 

責(zé)任編輯:未麗燕 來(lái)源: 今日頭條
相關(guān)推薦

2013-10-09 09:39:34

大數(shù)據(jù)

2019-12-24 08:11:39

大數(shù)據(jù)架構(gòu)數(shù)據(jù)開(kāi)發(fā)

2021-04-14 09:04:03

大數(shù)據(jù)HDFS大數(shù)據(jù)開(kāi)發(fā)

2017-02-27 16:35:00

HDFS大數(shù)據(jù)分析

2018-02-05 08:26:11

大數(shù)據(jù)云存儲(chǔ)安全性

2018-12-07 14:50:35

大數(shù)據(jù)數(shù)據(jù)采集數(shù)據(jù)庫(kù)

2023-05-11 00:17:44

分區(qū)HiveReduce

2019-08-14 17:13:23

大數(shù)據(jù)MapReduce框架

2022-04-06 15:59:11

大數(shù)據(jù)HDFS存儲(chǔ)系統(tǒng)

2018-12-21 11:01:05

存儲(chǔ)大數(shù)據(jù)RAID

2017-03-06 10:45:29

HadoopHDFS大數(shù)據(jù)

2017-12-20 15:10:09

HBaseHadoop數(shù)據(jù)

2019-07-04 14:22:56

大數(shù)據(jù)數(shù)據(jù)挖掘數(shù)量級(jí)

2015-06-29 13:38:31

大數(shù)據(jù)大價(jià)值

2021-10-29 22:45:47

大數(shù)據(jù)算法技術(shù)

2013-11-12 09:28:47

大數(shù)據(jù)

2013-11-12 10:11:56

大數(shù)據(jù)隱私保護(hù)

2018-04-08 09:31:57

大數(shù)據(jù)

2023-05-08 23:20:49

WebYARN管理

2019-04-22 15:24:24

HadoopSuffleMap端
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)