hdfs读写流程_一文读懂HDFS分布式存储框架分析
一文讀懂HDFS分布式存儲框架分析
HDFS是一套基于區塊鏈技術的個人的數據存儲系統,利用無處不在的私人PC存儲空間及便捷的網絡為個人提供數據加密存儲服務,將閑置的存儲空間利用起來,服務于正處于爆發期的個人數據存儲市場。
HDFS屬于什么結構體系?
1、HDFS框架分析
HDFS是Master和Slave的主從結構。主要由Name-Node、Secondary NameNode、DataNode構成。
NameNode
管理HDFS的名稱空間和數據塊映射信存儲元數據與文件到數據塊映射的地方。
如果NameNode掛掉了,文件就會無法重組,怎么辦?有哪些容錯機制?
Hadoop可以配置成HA即高可用集群,集群中有兩個NameNode節點,一臺active主節點,另一臺stan-dby備用節點,兩者數據時刻保持一致。當主節點不可用時,備用節點馬上自動切換,用戶感知不到,避免了NameNode的單點問題。
Secondary NameNode
輔助NameNode,分擔NameNode工作,緊急情況下可輔助恢復NameNode。
DataNode
Slave節點,實際存儲數據、執行數據塊的讀寫并匯報存儲信息給NameNode。
2、HDFS文件讀寫
文件按照數據塊的方式進行存儲在DataNode上,數據塊是抽象塊,作為存儲和傳輸單元,而并非整個文件。
文件為什么要按照塊來存儲呢?
首先屏蔽了文件的概念,簡化存儲系統的設計,比如100T的文件大于磁盤的存儲,需要把文件分成多個數據塊進而存儲到多個磁盤;為了保證數據的安全,需要備份的,而數據塊非常適用于數據的備份,進而提升數據的容錯能力和可用性。
數據塊大小設置如何考慮?
文件數據塊大小如果太小,一般的文件也就會被分成多個數據塊,那么在訪問的時候也就要訪問多個數據塊地址,這樣效率不高,同時也會對NameNode的內存消耗比較嚴重;數據塊設置得太大的話,對并行的支持就不太好了,同時系統如果重啟需要加載數據,數據塊越大,系統恢復就會越長。
3.2.1 HDFS文件讀流程
1、向NameNode通信查詢元數據(block所在的DataNode節點),找到文件塊所在的DataNode服務器。
2、挑選一臺DataNode(就近原則,然后隨機)服務器,請求建立socket流。
3、DataNode開始發送數據(從磁盤里面讀取數據放入流,以packet為單位來做校驗)。
4、客戶端已packet為單位接收,現在本地緩存,然后寫入目標文件,后面的block塊就相當于是append到前面的block塊最后合成最終需要的文件。
3.2.2 HDFS文件寫流程
1、向NameNode通信請求上傳文件,NameNode檢查目標文件是否已存在,父目錄是否存在。
2、NameNode返回確認可以上傳。
3、client會先對文件進行切分,比如一個block塊128m,文件有300m就會被切分成3個塊,一個128m、一個128m、一個44m。請求第一個block該傳輸到哪些DataNode服務器上。
4、NameNode返回DataNode的服務器。
5、client請求一臺DataNode上傳數據,第一個DataNode收到請求會繼續調用第二個DataNode,然后第二個調用第三個DataNode,將整個通道建立完成,逐級返回客戶端。
6、client開始往A上傳第一個block,當然在寫入的時候DataNode會進行數據校驗,第一臺DataNode收到后就會傳給第二臺,第二臺傳給第三臺。
7、當一個block傳輸完成之后,client再次請求NameNode上傳第二個block的服務器。
HDFS致力于用全新的技術解決方案、商業思維、經濟模型建立一套的滿足現有用戶個人隱私數據、商業數據、可信數據的存儲需求的全新數據存儲解決方案。這就是HDFS數據分布式存儲的整體結構。
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的hdfs读写流程_一文读懂HDFS分布式存储框架分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 健身房如何减肥
- 下一篇: arcgis 获取json经纬度_干货|