HDFS架構

HDFS架構(Master-Slave)

  • 幾個進程的角色
    1. nameNode(master):用於保存、管理、持久化文件的元數據(文件名、文件副本數、文件塊大小、文件塊列表),同時還要接收客戶端的文件讀寫請求。
    2. secondaryNameNode:用於實時同步文件元數據,給nameNode服務作副本,擔當高可用備份,nameNode處於正常狀態時secondaryNameNode只sandBy。
    3. dataNode(slave):真正存儲文件塊,分佈在每一個節點上
    4. dfsClient:向hdfs發請求,當用戶發起一個hdfs文件讀、寫、查詢等請求時,集羣都會啓動一個dfsClient進程,dfsClient先訪問nameNode獲取文件元數據,而後根據元數據解析出文件分片的分佈狀況,最後去各dataNode完成真正的讀寫。它扮演着用戶與hdfs交互中間人的角色,同時文件的拆分和拼裝也是在dfsClient進程完成的。
  • HDFS文件讀寫流程
    • 讀取:系統接收到用戶讀請求後,首先啓動一個dfsClient進程,這個進程拿着用戶傳遞的文件路徑等信息,傳遞給nameNode,nameNode返回文件分片的分佈節點列表,dfsClient就近讀取文件分片,並將各分片拼裝爲完整文件返回給用戶。
    • 寫入:系統接收到用戶寫請求後,首先啓動一個dfsClient進程,這個進程將寫入文件的信息提交給nameNode,nameNode根據集羣狀況將文件進行分片和位置規劃,再將規劃信息返回給dfsClient,dfsClient根據規劃信息將文件切分紅特定的塊,而後根據位置規劃分別與對應的dataNode創建管道,將分片傳輸到對應的dataNode上。
相關文章
相關標籤/搜索