您現在的位置是:首頁 > 農業

大資料開發:HDFS資料讀取流程詳解

由 成都加米穀大資料 發表于 農業2022-02-24
簡介HDFS資料讀取客戶端將要讀取的檔案路徑傳送給namenode,namenode獲取檔案的元資訊(主要是block的存放位置資訊)返回給客戶端,客戶端根據返回的資訊找到相應datanode逐個獲取檔案的block並在客戶端本地進行資料追加合

如何讀資料流

Hadoop是大資料必學的技術框架,而其中的HDFS,是核心三大元件之一,也是基礎入門階段需要搞定的重點和難點。關於HDFS分散式檔案系統,之前我們對資料寫入階段已經做了基本的介紹,今天的大資料開發技術分享,我們接著來講,HDFS資料讀取的詳細流程。

大資料開發:HDFS資料讀取流程詳解

HDFS資料讀取

客戶端將要讀取的檔案路徑傳送給namenode,namenode獲取檔案的元資訊(主要是block的存放位置資訊)返回給客戶端,客戶端根據返回的資訊找到相應datanode逐個獲取檔案的block並在客戶端本地進行資料追加合併從而獲得整個檔案。

HDFS讀取資料步驟

大資料開發:HDFS資料讀取流程詳解

1)客戶端向namenode發起RPC呼叫,請求讀取檔案資料。

2)namenode檢查檔案是否存在,如果存在則獲取檔案的元資訊(blockid以及對應的datanode列表)。

3)客戶端收到元資訊後選取一個網路距離最近的datanode,依次請求讀取每個資料塊。客戶端首先要校檢檔案是否損壞,如果損壞,客戶端會選取另外的datanode請求。

4)datanode與客戶端簡歷socket連線,傳輸對應的資料塊,客戶端收到資料快取到本地,之後寫入檔案。

5)依次傳輸剩下的資料塊,直到整個檔案合併完成。

從某個Datanode獲取的資料塊有可能是損壞的,損壞可能是由Datanode的儲存裝置錯誤、網路錯誤或者軟體bug造成的。HDFS客戶端軟體實現了對HDFS檔案內容的校驗和(checksum)檢查。當客戶端建立一個新的HDFS檔案,會計算這個檔案每個資料塊的校驗和,並將校驗和作為一個單獨的隱藏檔案儲存在同一個HDFS名字空間下。當客戶端獲取檔案內容後,它會檢驗從Datanode獲取的資料跟相應的校驗和檔案中的校驗和是否匹配,如果不匹配,客戶端可以選擇從其他Datanode獲取該資料塊的副本。

HDFS刪除資料

HDFS刪除資料比較流程相對簡單,這裡直接列出詳細步驟:

1)客戶端向namenode發起RPC呼叫,請求刪除檔案。namenode檢查合法性。

2)namenode查詢檔案相關元資訊,向儲存檔案資料塊的datanode發出刪除請求。

3)datanode刪除相關資料塊。返回結果。

4)namenode返回結果給客戶端。

當用戶或應用程式刪除某個檔案時,這個檔案並沒有立刻從HDFS中刪除。實際上,HDFS會將這個檔案重新命名轉移到/trash目錄。只要檔案還在/trash目錄中,該檔案就可以被迅速地恢復。檔案在/trash中儲存的時間是可配置的,當超過這個時間時,Namenode就會將該檔案從名字空間中刪除。刪除檔案會使得該檔案相關的資料塊被釋放。

關於大資料開發,HDFS資料讀取和資料刪除,以上就為大家做了大致的介紹了。HDFS在讀取資料和刪除資料上,其實與寫入資料流程是大致相似的,可以結合起來一起理解和掌握。

推薦文章

  • 治療脫髮黑科技,許多人還不知道!

    用啤酒洗頭後,頭髮和頭皮會感到非常舒服,頭髮的光澤度,柔軟度,也會有很大的提升,在保護頭髮同時,還有生髮的作用,有,油性頭皮的人,用啤酒洗頭,還可以去油,頭髮變得光亮,但是,用啤酒洗頭,不要太過頻繁,因為啤酒中含有酒精,大量的酒精,反而會破...

  • 《底特律:我欲為人》幫助一名女孩下定決心逃離暴力生活

    當她接觸到《底特律:我欲為人》這款遊戲時,馬上就被其中的劇情迷住了,當玩到Alice跟Kara的故事時,她逐漸意識到,這就是她每天的生活...

  • 蘋果再動“家法”,歌爾股份“生產良率”真相

    蘋果再動“家法”,歌爾股份“生產良率”真相《智物》淺知微見,“生產良率事件”,看似是歌爾股份生產問題,實在是蘋果的成本問題:良率數字關乎蘋果能不能儘快以更低的價格參與硬體市場的全球消費電子大卷局——蘋果希望中國供應鏈能抗下所有,而蘋果自己多收上三五斗...