成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

基于Hadoop云盤系統(tǒng)1:上傳和下載效率優(yōu)化

大數(shù)據(jù) Hadoop
基于任何平臺(tái)實(shí)現(xiàn)的云盤系統(tǒng),面臨的首要的技術(shù)問題就是客戶端上傳和下載效率優(yōu)化問題。基于Hadoop實(shí)現(xiàn)的云盤系統(tǒng),受到Hadoop文件讀寫機(jī)制的影響,采用Hadoop提供的API進(jìn)行HDFS文件系統(tǒng)訪問,文件讀取時(shí)默認(rèn)是順序、逐block讀取;寫入時(shí)是順序?qū)懭搿?/div>

 一、讀寫機(jī)制  

首先來看文件讀取機(jī)制:盡管DataNode實(shí)現(xiàn)了文件存儲(chǔ)空間的水平擴(kuò)展和多副本機(jī)制,但是針對(duì)單個(gè)具體文件的讀取,Hadoop默認(rèn)的API接口并沒有提供多DataNode的并行讀取機(jī)制。基于Hadoop提供的API接口實(shí)現(xiàn)的云盤客戶端也自然面臨同樣的問題。Hadoop的文件讀取流程如下圖所示:

  1. 使用HDFS提供的客戶端開發(fā)庫(kù),向遠(yuǎn)程的Namenode發(fā)起RPC請(qǐng)求;
  2. Namenode會(huì)視情況返回文件的部分或者全部block列表,對(duì)于每個(gè)block,Namenode都會(huì)返回有該block拷貝的datanode地址;
  3. 客戶端開發(fā)庫(kù)會(huì)選取離客戶端最接近的datanode來讀取block;
  4. 讀取完當(dāng)前block的數(shù)據(jù)后,關(guān)閉與當(dāng)前的datanode連接,并為讀取下一個(gè)block尋找***的datanode;
  5. 當(dāng)讀完列表的block后,且文件讀取還沒有結(jié)束,客戶端開發(fā)庫(kù)會(huì)繼續(xù)向Namenode獲取下一批的block列表。
  6. 讀取完一個(gè)block都會(huì)進(jìn)行checksum驗(yàn)證,如果讀取datanode時(shí)出現(xiàn)錯(cuò)誤,客戶端會(huì)通知Namenode,然后再?gòu)南乱粋€(gè)擁有該block拷貝的datanode繼續(xù)讀取。

  這里需要注意的關(guān)鍵點(diǎn)是:多個(gè)Datanode順序讀取。

  其次再看文件的寫入機(jī)制:

 

  1. 使用HDFS提供的客戶端開發(fā)庫(kù),向遠(yuǎn)程的Namenode發(fā)起RPC請(qǐng)求;
  2. Namenode會(huì)檢查要?jiǎng)?chuàng)建的文件是否已經(jīng)存在,創(chuàng)建者是否有權(quán)限進(jìn)行操作,成功則會(huì)為文件創(chuàng)建一個(gè)記錄,否則會(huì)讓客戶端拋出異常;
  3. 當(dāng)客戶端開始寫入文件的時(shí)候,開發(fā)庫(kù)會(huì)將文件切分成多個(gè)packets,并在內(nèi)部以"data queue"的形式管理這些packets,并向Namenode申請(qǐng)新的blocks,獲取用來存儲(chǔ)replicas的合適的datanodes列表, 列表的大小根據(jù)在Namenode中對(duì)replication的設(shè)置而定。
  4. 開始以pipeline(管道)的形式將packet寫入所有的replicas中。開發(fā)庫(kù)把packet以流的方式寫入***個(gè) datanode,該datanode把該packet存儲(chǔ)之后,再將其傳遞給在此pipeline中的下一個(gè)datanode,直到***一個(gè) datanode,這種寫數(shù)據(jù)的方式呈流水線的形式。
  5. ***一個(gè)datanode成功存儲(chǔ)之后會(huì)返回一個(gè)ack packet,在pipeline里傳遞至客戶端,在客戶端的開發(fā)庫(kù)內(nèi)部維護(hù)著"ack queue",成功收到datanode返回的ack packet后會(huì)從"ack queue"移除相應(yīng)的packet。
  6. 如果傳輸過程中,有某個(gè)datanode出現(xiàn)了故障,那么當(dāng)前的pipeline會(huì)被關(guān)閉,出現(xiàn)故障的datanode會(huì)從當(dāng)前的 pipeline中移除,剩余的block會(huì)繼續(xù)剩下的datanode中繼續(xù)以pipeline的形式傳輸,同時(shí)Namenode會(huì)分配一個(gè)新的 datanode,保持replicas設(shè)定的數(shù)量。

  關(guān)鍵詞:開發(fā)庫(kù)把packet以流的方式寫入***個(gè)datanode,該datanode將其傳遞給pipeline中的下一個(gè)datanode,知道***一個(gè)Datanode,這種寫數(shù)據(jù)的方式呈流水線方式。

二、解決方案

  1.下載效率優(yōu)化

  通過以上讀寫機(jī)制的分析,我們可以發(fā)現(xiàn)基于Hadoop實(shí)現(xiàn)的云盤客戶段下載效率的優(yōu)化可以從兩個(gè)層級(jí)著手:

  1.文件整體層面:采用并行訪問多線程(多進(jìn)程)份多文件并行讀取。

  2.Block塊讀取:改寫Hadoop接口擴(kuò)展,多Block并行讀取。

  2.上傳效率優(yōu)化

  上傳效率優(yōu)化只能采用文件整體層面的并行處理,不支持分Block機(jī)制的多Block并行讀取。

原文鏈接:http://www.cnblogs.com/hadoopdev/archive/2013/03/07/2947447.html

【編輯推薦】

責(zé)任編輯:彭凡 來源: 博客園
相關(guān)推薦

2013-03-11 14:42:08

Hadoop

2013-03-08 10:09:30

Hadoop

2011-05-17 17:51:43

SEO網(wǎng)站優(yōu)化

2022-08-12 22:53:32

HadoopHDFS分布式

2020-08-23 11:48:44

Python云盤updog

2012-05-21 16:08:07

Hadoop云計(jì)算

2016-10-25 13:05:54

360云盤關(guān)閉下載

2009-10-23 10:45:33

linux系統(tǒng)文件下載

2012-11-29 09:54:53

移動(dòng)網(wǎng)絡(luò)云計(jì)算網(wǎng)絡(luò)優(yōu)化

2021-10-12 10:37:58

云計(jì)算效率云平臺(tái)

2016-09-21 13:17:31

LibreOfficeJava緩沖區(qū)

2009-08-27 11:09:52

ibmdw云計(jì)算

2011-03-24 10:11:59

Linux虛擬內(nèi)存優(yōu)化

2012-07-18 10:11:58

Win 7系統(tǒng)盤

2018-10-18 10:30:50

樹莓派NAS數(shù)據(jù)庫(kù)

2021-03-12 08:35:13

開源Nextcloud私有云

2023-09-19 10:31:09

算法數(shù)據(jù)

2010-05-24 14:59:29

Hadoop集群

2024-07-02 10:18:18

點(diǎn)贊
收藏

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

主站蜘蛛池模板: 日本精品一区二区三区在线观看视频 | 91免费在线看 | 久久久国产一区二区三区四区小说 | 网站黄色av | 一区二区av | 国产污视频在线 | 日韩成人精品 | 人人玩人人干 | 日韩视频在线观看一区二区 | 亚洲一区二区免费 | 亚洲成人午夜在线 | 久久在线看 | 91久久国产综合久久91精品网站 | 亚洲成人免费视频在线 | 国产精品亚洲欧美日韩一区在线 | 久久久久久影院 | 国产一二区在线 | 久久av一区| 日韩在线精品视频 | 日韩精品一区二区三区在线播放 | 日韩视频在线免费观看 | 在线播放一区 | 日韩欧美在线观看 | 狠狠干美女 | 亚洲激情第一页 | 日韩视频一区二区三区 | 国产aⅴ| 日本三级精品 | 国产97在线视频 | 国产99免费 | 免费在线黄色av | 国产精品国产三级国产a | 日韩av免费在线观看 | 美国黄色毛片 | 亚洲综合在线一区 | 日韩欧美在线一区 | 一级片网址| 国产精品欧美一区二区三区 | 欧美福利精品 | 美女黄网| 视频一区在线播放 |