HDFS讀寫檔案

2021-10-06 18:22:50 字數 961 閱讀 4454

hdfs讀寫檔案

hdfs讀檔案:

首先,由client下達命令交給distributed file system系統翻譯成linux命令,然後把命令傳送給namenode,namenode去搜尋fsimage和edit logs,搜到以後把檔案的塊位址(get block locations)返回給client,client到對應的datanode位址去讀資訊,優先順序為:主副本》同機架副本》相鄰機架副本.最後返回乙個fsdatainputstream物件給client,然後close這個流,client獲取對應資訊

hdfs寫檔案

首先,呼叫distributed file system的create方法建立新檔案,client寫資料到dfsoutputstream,dfsoutputstream分包,每128m一塊,向namenode申請blocks,獲取用來儲存replications的合適的datanode列表,然後通過fsdataoutputstream來把包輸出到datanode中的第乙個節點上,此為主節點,將該包儲存以後傳遞給同機架下的第二個節點,儲存後再傳遞給相鄰機架上的第三個節點.在最後乙個datanode儲存完畢後會返回乙個ack packet(確認佇列),當client成功收到datanodeff返回的ack packet後,通知datanode把檔案標示為已完成,移除相應的packet並關閉fsdataoutputstream

如果傳輸過程中,某個datanode出現故障:

出現故障的datanode會被移除,檔案會繼續被寫到剩餘的datanode中,因為此資料塊的副本數沒有達到配置要求,namenode會分配乙個新的datanode,隨後的檔案會正常執行寫入操作,保持replications設定的數量.

當client結束寫入資料,呼叫stream的close()方法關閉資料流

以上僅供個人理解所用

hdfs讀寫流程 HDFS 檔案讀寫流程

開啟分布式檔案 呼叫分布式檔案 distributedfilesystem.open 方法 定址請求 從 namenode 處得到 datanode 的位址,distributedfilesystem使用 rpc 方式呼叫了namenode,namenode 返回存有該副本的datanode 位址,...

HDFS檔案讀寫流程

詳細步驟解析 1 client發起檔案上傳請求,通過rpc與namenode建立通訊,namenode檢查目標檔案是否已存在,父目錄是否存在,返回是否可以上傳 2 client請求第乙個block該傳輸到哪些datanode伺服器上 3 namenode根據配置檔案中指定的備份數量及機架感知原理進行...

HDFS檔案讀寫流程

1.1 命令 hadoop fs put log user 1.2 流程圖 注意 檔案寫流程是 fsdataoutputstream 不是 fsdatainputstream。1.3 詳細過程 client 呼叫 filesystem.create filepath 方法,與 nn 進行 rpc 通...