1、副本及儲存策略:
2、寫檔案的網路流量及磁碟空間:
網路流量=磁碟空間=檔案size*dfs.replication
3、寫資料的流程
* client將檔案file1劃分出blocks —— block1、block2、block3...
* client向nn發出寫block的請求 —— 檔案file1的block1
* nn響應client的請求 —— 指示client將file1的block1寫到如下位置:
* rack1 上的 datanodea、datanodeb
* rack2 上的 datanodec
* client向datanodea發出寫block的請求:
* 檔案file1的block1
* 並告知還需將block寫到datanodeb和datanodec
* datanodea一邊將資料存入自身磁碟,一邊向datanodeb發出寫block的請求,具體內容同上一步驟
* datanodeb一邊將資料存入自身磁碟,一邊向datanodec發出寫block的請求,具體內容同上一步驟
* datanodec完成block資料儲存後,響應datanodeb:
* 告知自身對file1-block1的儲存已經正常完成。
* 自身同時儲存元資料(file1,block1,block1start...)
* datanodeb接收到datanodec的響應後,響應datanodea:
* 告知對file1-block1的儲存已經正常完成。
* 自身同時儲存元資料(file1,block1,block1start..)
* datanodea接收到datanodec的響應後,響應client。
* datanodea、datanodeb、datanodec在儲存乙個新的block後,會向nn傳送報告,nn會及時更新file1-block1的元資料:
* (fiel1,block1,replicationids)
* replicationid1,datanodea
* replicationid2,datanodeb
* replicationid3,datanodec
HDFS寫資料過程
1 客戶端向namenode請求上傳檔案,namenode在元資料中查詢是否滿足上傳條件 路徑是否存在,檔案是否存在等 2 元資料系統返回資訊告知客戶端,可以上傳檔案 3 rpc請求上傳第乙個block 0 128m 請求返回datanode 4 元資料系統向客戶端返回若干個datanode 因為一...
HDFS寫檔案解析
client通過distributedfilesystem物件呼叫create 方法建立檔案,實際上通過rpc呼叫了namenode的方法。namenode收到client的請求之後,執行各種檢查 1.確認要傳檔案目前在hdfs上不存在,2.client具有寫的許可權 如果通過則會為新檔案建立一條記...
HDFS寫檔案流程
hdfs寫入檔案流程圖如下 1 客戶端呼叫distributed filesystem.create path 方法,與namenode進行rpc通訊,引數為路徑path。檢查傳入的路徑是否存在,以及當前使用者是否有寫入許可權。假如都滿足,就建立乙個新的檔案,但是此時並不關聯任何的block。並且返...