欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

好程序員大數(shù)據(jù)學(xué)習(xí)路線分享分布式文件系統(tǒng)HDFS-創(chuàng)新互聯(lián)

好程序員大數(shù)據(jù)學(xué)習(xí)路線分享分布式文件系統(tǒng)HDFS,設(shè)計(jì)目標(biāo):

創(chuàng)新互聯(lián)業(yè)務(wù)包括:成品網(wǎng)站、企業(yè)產(chǎn)品展示型網(wǎng)站建設(shè)、品牌網(wǎng)站建設(shè)、電子商務(wù)型網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站制作(多語(yǔ)言)、商城網(wǎng)站建設(shè)、按需網(wǎng)站開(kāi)發(fā)、營(yíng)銷型網(wǎng)站建設(shè)等。效率優(yōu)先,品質(zhì)保證,用心服務(wù)是我們的核心價(jià)值觀,我們將繼續(xù)以良好的信譽(yù)為基礎(chǔ),秉承穩(wěn)固與發(fā)展、求實(shí)與創(chuàng)新的精神,為客戶提供更全面、更優(yōu)質(zhì)的互聯(lián)網(wǎng)服務(wù)!

1、存儲(chǔ)量大

2、自動(dòng)快速檢測(cè)應(yīng)對(duì)硬件錯(cuò)誤

3、流式訪問(wèn)數(shù)據(jù)

4、移動(dòng)計(jì)算比移動(dòng)數(shù)據(jù)本身更劃算

5、簡(jiǎn)單一致性模型

6、異構(gòu)平臺(tái)可移植

特點(diǎn)

優(yōu)點(diǎn):

  1. 高可靠性:Hadoop按位存儲(chǔ)和處理數(shù)據(jù)的能力強(qiáng)

  2. 高擴(kuò)展性:hadoop是在可用的計(jì)算機(jī)集簇間分配數(shù)據(jù)并完成計(jì)算任務(wù)的,這些集簇可以方便地?cái)U(kuò)展到數(shù)以千計(jì)的節(jié)點(diǎn)中

  3. 高效性:hadoop能夠在節(jié)點(diǎn)之間動(dòng)態(tài)地移動(dòng)數(shù)據(jù),并保證各個(gè)節(jié)點(diǎn)的動(dòng)態(tài)平衡,因此處理速度非常快

  4. 高容錯(cuò)性:hadoop能夠自動(dòng)保存數(shù)據(jù)的多個(gè)副本,并且能夠自動(dòng)將失敗的任務(wù)重新分配。

缺點(diǎn):

  1. 不適合低延遲數(shù)據(jù)訪問(wèn)

  2. 無(wú)法高效存儲(chǔ)大量小文件(每個(gè)文件存儲(chǔ)都有屬于自己的索引,元數(shù)據(jù)龐大就不高效)

  3. 不支持多用戶寫入及任意修改文件(可以刪除以及追加,只是不能修改文件中某處的數(shù)據(jù))

重要特性:

  1. 文件在物理上是分塊存儲(chǔ),塊的大小可以通過(guò)配置參數(shù)(dfs.blocksize)來(lái)規(guī)定,默認(rèn)2.x版本之后是128M,老版本是64M

  2. HDFS會(huì)給哭護(hù)短提供一個(gè)統(tǒng)一的抽象目錄樹,客戶端通過(guò)路徑來(lái)訪問(wèn)文件,刑辱:hdfs://namenode:port/dir-a/dir-b/dir-c/file.data

  3. 目錄結(jié)構(gòu)及文件分塊信息(元數(shù)據(jù))的管理由namenode承擔(dān)—namenode是HDFS集群主節(jié)點(diǎn),負(fù)責(zé)維護(hù)整個(gè)hdfs文件系統(tǒng)的目錄樹,以及每一個(gè)路徑(文件)所對(duì)應(yīng)的block塊信息(block的id以及所在datanode服務(wù)器)

  4. 文件的各個(gè)block的存儲(chǔ)管理由datanode承擔(dān)—datanode是HDFS集群從節(jié)點(diǎn),每一個(gè)block都可以在多個(gè)datanode上存儲(chǔ)多個(gè)副本(副本參數(shù)設(shè)置dfs.replication)

  5. HDFS是設(shè)計(jì)成適應(yīng)一次寫入,多次讀出的場(chǎng)景,且不支持文件的修改

  6. 管理文件系統(tǒng)的命名空間(元數(shù)據(jù)<metadata>:包含文件名稱、大小、所屬人、地址)

  7. 規(guī)定客戶端訪問(wèn)文件規(guī)則

三個(gè)服務(wù)
Namenode
任務(wù)清單

a)?文件大小是否已經(jīng)超載(超過(guò)集群的負(fù)載)

b)?是否已經(jīng)存在相同的文件

c)?是否具有創(chuàng)建該文件的權(quán)限

  1. 對(duì)文件執(zhí)行命令,關(guān)閉,打開(kāi)文件或者打開(kāi)路徑等操作

  2. 所有的數(shù)據(jù)節(jié)點(diǎn)發(fā)送心跳給NameNode,他需要確保數(shù)據(jù)節(jié)點(diǎn)DataNode是否在線,一個(gè)數(shù)據(jù)塊報(bào)告包含所有這個(gè)數(shù)據(jù)節(jié)點(diǎn)上的所有block的狀況

  3. 首先將fsimage(鏡像)載入內(nèi)存,并讀取執(zhí)行日志editlog的各項(xiàng)操作

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

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

  6. 此刻namenode運(yùn)行在安全模式。即NameNode的文件系統(tǒng)對(duì)于客戶端來(lái)說(shuō)是只讀

  7. NameNode開(kāi)始監(jiān)聽(tīng)RPC和HTTP請(qǐng)求

啟動(dòng)過(guò)程

RPC:Remote Procedure Call Protocol---遠(yuǎn)程過(guò)程通過(guò)協(xié)議

它是一種通過(guò)網(wǎng)絡(luò)從遠(yuǎn)程計(jì)算機(jī)程序上請(qǐng)求服務(wù),而不需要了解底層網(wǎng)絡(luò)技術(shù)的協(xié)議

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

  2. 在系統(tǒng)的正常操作期間,namenode會(huì)在內(nèi)存中保留所有塊信息的映射信息

  3. fsimage:元數(shù)據(jù)鏡像文件(保存文件系統(tǒng)的目錄樹)

  4. edit.log:元數(shù)據(jù)操作日志(針對(duì)目錄樹的修改操作)

兩個(gè)重要文件元數(shù)據(jù)鏡像

a)?內(nèi)存中保存一份最新的

b)?內(nèi)存中鏡像=fsimage+edits

SecondaryNamenode工作任務(wù)

定期合并fsimage與edits

c)?Edits文件過(guò)大將導(dǎo)致NamenNode重啟速度緩慢

d)?SecondaryNameNode負(fù)責(zé)定期合并他們

Datanode

hdfs的寫過(guò)程

好程序員大數(shù)據(jù)學(xué)習(xí)路線分享分布式文件系統(tǒng)HDFS

寫過(guò)程語(yǔ)言Description:
  1. Client通過(guò)調(diào)用FileSystem的get方法與namenode進(jìn)程建立通道進(jìn)行通信,然后調(diào)用create方法來(lái)請(qǐng)求創(chuàng)建文件。

  2. FileSystem通過(guò)對(duì)namenode發(fā)出遠(yuǎn)程請(qǐng)求,在namenode里面創(chuàng)建一個(gè)新的文件,但此時(shí)并不關(guān)聯(lián)任何的塊。NameNode進(jìn)行很多檢查來(lái)保證不存在要?jiǎng)?chuàng)建的文件已經(jīng)存在文件系統(tǒng)中,同時(shí)檢查是否有相應(yīng)的權(quán)限來(lái)創(chuàng)建文件。如果這些檢查完了,nameNameNode將這個(gè)新文件的嘻嘻記錄下來(lái),然后FileSystem返回一個(gè)DFSOutputStream給客戶端用來(lái)寫入數(shù)據(jù)。和讀的情形一樣,F(xiàn)SDataOutputStream將包裝一個(gè)DFSOutputStream用于和DataNode及NameNode通信。而一旦文件創(chuàng)建失敗,客戶端會(huì)受到一個(gè)IOException,標(biāo)識(shí)文件創(chuàng)建失敗,停止后續(xù)任務(wù)。

  3. 客戶端開(kāi)始寫數(shù)。FSDataOutputStream把要寫入的數(shù)據(jù)分成塊打成包的形式,將其寫入到DFSOutputStream對(duì)象的中間隊(duì)列中。其中的數(shù)據(jù)由Datastreamer來(lái)讀取。DataStreamer的職責(zé)是讓NameNode分配新的塊—找出合適的DataNode來(lái)存儲(chǔ)作為備份而復(fù)制的數(shù)據(jù)。

  4. FSDataOutputStream維護(hù)了一個(gè)內(nèi)部關(guān)于packets的隊(duì)列,里面存放等待被DataNode確認(rèn)無(wú)誤的packets的信息。這個(gè)隊(duì)列被稱為等待隊(duì)列,一個(gè)packet的信息被移出本隊(duì)列當(dāng)且僅當(dāng)packet被所有節(jié)點(diǎn)都確認(rèn)無(wú)誤。

  5. 當(dāng)完成數(shù)據(jù)寫入之后客戶端調(diào)用流的close方法,再通知NameNode完成寫入之前,這個(gè)方法將flush殘留的packets,并等待確認(rèn)信息。NameNode已經(jīng)知道文件由哪些塊組成,所以在返回成功前只需要等待數(shù)據(jù)塊進(jìn)行最小復(fù)制。

Write?API:
1.從本地系統(tǒng)上傳到hdfs

Configuration?hdfsConf?= new Configuration();//創(chuàng)建一個(gè)hdfs的環(huán)境變量

String namenodeURI=”hdfs://hadoop001:8020”;//namenode的統(tǒng)一資源定位符

String username=”root”;//訪問(wèn)指定用戶的hdfs

FileSystem hdfs = FileSystem.get(new URI(namenodeURI),hdfsConf,username);//創(chuàng)建一個(gè)hdfs的文件系統(tǒng)對(duì)象

FileSystem local = FileSystem.getLocal(new?Configuration());//創(chuàng)建一個(gè)本地的文件系統(tǒng)對(duì)象

hdfs.copyFromLocalFile(new Path(localPath),new Path(hdfsPath));

2.在hdfs上創(chuàng)建文件并直接給定文件的內(nèi)容

FSDateOutputStream out = hdfs.create(new Path(hdfsPath));

out.write(fileContent.getBytes());

out.close();

hdfs的讀過(guò)程

好程序員大數(shù)據(jù)學(xué)習(xí)路線分享分布式文件系統(tǒng)HDFS

讀過(guò)程語(yǔ)言Description:
  1. 客戶端或者用戶通過(guò)調(diào)用FileSystem對(duì)象的open方法打開(kāi)需要讀取的文件,這對(duì)HDFS來(lái)說(shuō)是常見(jiàn)一個(gè)分布式文件系統(tǒng)的一個(gè)讀取實(shí)例。

  2. FileSystem通過(guò)遠(yuǎn)程協(xié)議調(diào)用NameNode確定文件的前幾個(gè)Block的位置。對(duì)于每一個(gè)Block,Namenode返回含有那個(gè)Block?的“元數(shù)據(jù)”,即文件基本信息;接下來(lái),DataNode按照上文定義的距離來(lái)進(jìn)行排序,如果Client本身就是一個(gè)DataNode優(yōu)先從本地DataNode讀物數(shù)據(jù)。HDFS實(shí)例完成以上工作后,返回一個(gè)FSDataInputStream給客戶端,讓其從FSDataInputStream中讀取數(shù)據(jù)。FSDataInputStream接著包裝一個(gè)DFSInputStream用來(lái)管理DataNode和NameNode的I/O。

  3. NameNode向客戶端返回一個(gè)包含數(shù)據(jù)信息的地址,客戶端格努詆毀創(chuàng)建一個(gè)FSDataInputStream開(kāi)始對(duì)數(shù)據(jù)進(jìn)行讀取。

  4. FSDataInputStream根據(jù)開(kāi)始存放的前幾個(gè)Blocks的DataNode的地址,連接到最近的DataNode上對(duì)數(shù)據(jù)開(kāi)始從頭讀取??蛻舳朔磸?fù)調(diào)用read()方法,以流式方式從DataNode讀取數(shù)據(jù)

  5. 當(dāng)讀到Block的結(jié)尾的時(shí)候,F(xiàn)SDataInputStream會(huì)關(guān)閉當(dāng)前DataNode的地址,然后查找能夠讀取下一個(gè)Block的最好的DataNode。這些操作對(duì)客戶端是透明的,客戶端感覺(jué)到的是連續(xù)的流,也就是說(shuō)讀取的時(shí)候就開(kāi)始查找下一個(gè)塊所在的地址。

  6. 讀取完成調(diào)用close()方法,關(guān)閉FSDataInputStream。

Read?API:
1.從hdfs上下載文件到本地

Configuration?hdfsConf?= new Configuration();//創(chuàng)建一個(gè)hdfs的環(huán)境變量

String namenodeURI=”hdfs://hadoop001:8020”;//namenode的統(tǒng)一資源定位符

String username=”root”;//訪問(wèn)指定用戶的hdfs

FileSystem hdfs = FileSystem.get(new URI(namenodeURI),hdfsConf,username);//創(chuàng)建一個(gè)hdfs的文件系統(tǒng)對(duì)象

FileSystem local = FileSystem.getLocal(new?Configuration());//創(chuàng)建一個(gè)本地的文件系統(tǒng)對(duì)象

hdfs.copyToLocalFile(new Path(hdfsPath),new Path(localPath));

3.?在hdfs上讀取給定文件的內(nèi)容

Path path = new Path(hdfsFilePath);//文件路徑

FSDataInputStream in = hdfs.open(path);//獲取文件輸入流

FileStatus status = hdfs.getFileStatus(path);//獲取文件的元數(shù)據(jù)信息

//獲取文件元數(shù)據(jù)中的文件大小

byte[] bytes = new byte[Integer.pareInt(String.valueOf(status.getLen()))];

//將輸入流中的全部?jī)?nèi)容一次性讀取出來(lái)

in.readFully(0,bytes);

System.out.println(new String(bytes));//將讀取的文件打印輸出

in.close();

hdfs的整體過(guò)程

好程序員大數(shù)據(jù)學(xué)習(xí)路線分享分布式文件系統(tǒng)HDFS

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

當(dāng)前名稱:好程序員大數(shù)據(jù)學(xué)習(xí)路線分享分布式文件系統(tǒng)HDFS-創(chuàng)新互聯(lián)
網(wǎng)頁(yè)鏈接:http://chinadenli.net/article44/dghdhe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開(kāi)發(fā)建站公司、網(wǎng)站維護(hù)、網(wǎng)站導(dǎo)航、做網(wǎng)站定制網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)