這篇文章主要為大家展示了“HDFS中Short-Circuit是什么”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“HDFS中Short-Circuit是什么”這篇文章吧。
創(chuàng)新互聯(lián)建站是一家專業(yè)提供四子王企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站設(shè)計、成都網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)、H5高端網(wǎng)站建設(shè)、小程序制作等業(yè)務(wù)。10年已為四子王眾多企業(yè)、政府機構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)的建站公司優(yōu)惠進(jìn)行中。
解釋下 HDFS 的 Short-Circuit ?
這是一個比較高段位的冷門問題了,我也是一般在面高階的程序員才會拋出這樣的問題,對于考察系統(tǒng)底層原理掌握度方面還是挺有好的。
先說目的:
因為Hadoop的一大基本原則就是移動數(shù)據(jù)不如移動計算,所以一般HDFS的client端經(jīng)常會和提供數(shù)據(jù)的DataNode在同一個節(jié)點,Short Circuit Local Reads的目的就是提高在這種情況下的數(shù)據(jù)讀取性能。
正常的數(shù)據(jù)讀取流程,DataNode必須為每個正在讀取數(shù)據(jù)塊的客戶端保留一個線程和一個TCP套接字。內(nèi)核中會有TCP協(xié)議的開銷,以及DataTransferProtocol協(xié)議的開銷,因此這里有很大的優(yōu)化空間。
再說流程:
1. client 會向DataNode請求創(chuàng)建一塊共享內(nèi)存,DataNode創(chuàng)建共享內(nèi)存文件并將共享內(nèi)存文件描述符返回給 client。(內(nèi)存文件描述符,Unix的一種機制,目的是讓DataNode不是將整個目錄傳遞給客戶端,而是打開塊文件和元數(shù)據(jù)文件,保證數(shù)據(jù)的安全性)
2. client 申請共享內(nèi)存中的槽位,并向DataNode請求要讀取的副本文件描述符,DataNode打開副本文件并將數(shù)據(jù)塊文件和元數(shù)據(jù)文件的文件描述符返回給 client。
3. client 讀取完副本后,異步向DataNode請求釋放文件描述符及相應(yīng)槽位。
另外,其實這個問題也不一定要等面試官問了才回答,在他問你HDFS的讀寫過程的時候,你也可以在最后適當(dāng)?shù)夭迳蟽删?,凸顯逼格。
像這樣:
“剛才我說的還是比較基礎(chǔ)和常規(guī)的讀寫流程,實際上HDFS還有一個Short-Circuit機制可以來做數(shù)據(jù)本地讀取的優(yōu)化,這是更加底層的內(nèi)容了...”
接下來可以先別急著講,先看看面試官的反應(yīng)看他有沒有興趣聽,有的話就可以把上面這一段說出去了,當(dāng)然也有可能連面試官都沒聽過這個東西,那就無所謂了,你說的內(nèi)容已經(jīng)唬到他了。
之前說過在面試的過程中可以適當(dāng)?shù)匾龑?dǎo)面試官的提問方向,往你擅長的方向上帶,剛才說的其實就是一種引導(dǎo)的手段了,掌握這個技能的話你會發(fā)現(xiàn)你在面試中能表現(xiàn)得更自如,不用被牽著鼻子走。
當(dāng)兩個客戶端嘗試訪問對HDFS相同的文件,會發(fā)生什么?
HDFS只支持獨占寫入。
當(dāng)?shù)谝粋€客戶端連接Namenode打開文件進(jìn)行寫入時,Namenode授予租約的客戶端創(chuàng)建這個文件。當(dāng)?shù)诙€客戶端試圖打開同一個文件寫入時,Namenode會發(fā)現(xiàn)該文件的租約已經(jīng)授予給另一個客戶端,并拒絕第二個客戶端打開請求。
這個問題還是比較簡單的,考查的是你是不是真的有實操過,是不是有踩過坑且有思考。
為什么 HDFS 不適合存儲過多的小文件?
兩個重點,一個是多,一個是小,分別解釋。
1)小文件過多,會過多占用namenode的內(nèi)存,并浪費block。
文件的元數(shù)據(jù),都是存儲在namenode上
元數(shù)據(jù)包括文件被分成了哪些blocks,每個block存儲在哪些服務(wù)器的哪個block塊上。小文件過多,元數(shù)據(jù)必定過多。HDFS的每個文件、目錄、數(shù)據(jù)塊占用150B,因此300M內(nèi)存情況下,只能存儲不超過300M/150=2M個文件/目錄/數(shù)據(jù)塊的元數(shù)據(jù)
dataNode會向NameNode發(fā)送兩種類型的報告:增量報告和全量報告
增量報告是當(dāng)dataNode接收到block或者刪除block時,會向nameNode報告。全量報告是周期性的,NN處理100萬的block報告需要1s左右,這1s左右NN會被鎖住,其它的請求會被阻塞。
2)文件過小,尋道時間大于數(shù)據(jù)讀寫時間,這不符合HDFS的設(shè)計:
HDFS為了使數(shù)據(jù)的傳輸速度和硬盤的傳輸速度接近,則設(shè)計將尋道時間相對最小化,將block的大小設(shè)置的比較大,這樣讀寫數(shù)據(jù)塊的時間將遠(yuǎn)大于尋道時間,接近于硬盤的傳輸速度。
以上是“HDFS中Short-Circuit是什么”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
分享名稱:HDFS中Short-Circuit是什么
網(wǎng)頁地址:http://muchs.cn/article6/ihpiig.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化、定制開發(fā)、外貿(mào)建站、小程序開發(fā)、網(wǎng)站制作、云服務(wù)器
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)