HDFS的追加 重新整理 讀設計

2021-08-30 10:37:08 字數 534 閱讀 3806

hdfs將在0.21版(尚未發布),把dfsoutputstream中的fsync操作(實際上是sync方法)更名為hflush, 因為之前的fsync做的工作實際上不是同步資料到磁碟,而是重新整理(flush)快取。fsync功能可能會在以後的版本中新增。

dfs對於未關閉檔案的資料提供最大努力持久:

1. namenode持久化檔案元資料資訊,但不持久化檔案由哪些塊組成的資訊。重啟namenode可能會導致資料丟失。

2. dfs不保證各資料塊的副本數和檔案的複製因子一致。如果乙個資料塊沒有乙個有效副本被寫入,則寫失敗。

dfs對於已關閉檔案的資料提供強持久:

1. namenode持久化檔案和資料塊元資料資訊。重啟namenode不會導致資料丟失。

2. dfs保證各資料塊的副本數和檔案的複製因子一致。

3. 檔案關閉不保證資料已經到達磁碟。如果資料未到達磁碟,重啟datanode會導致資料丟失。

讀對於未關閉檔案的資料,只有已完成塊的資料對readers是可見的。正在寫的塊中的資料,對reader來說是不可見的。

HDFS 的工作機制 讀操作

1 client 向 namenode 發起 rpc 請求,來確定請求檔案 block 所在的位置 2 namenode會視情況返回檔案的部分或者全部block列表,對於每個block,namenode 都會返回含有該 block 副本的 datanode 位址 3 這些返回的 dn 位址,會按照集...

HDFS的設計目標

1 檢測和快速恢復硬體故障。硬體故障時計算機常見的問題。整個hdfs系統由數百甚至上千個儲存著資料檔案的伺服器組成。而如此多的伺服器則意味著高故障率,因此,故障的檢測和快速自動恢復是hdfs的乙個核心目標。2 流式的資料訪問。hdfs使應用程式流式地訪問它們的資料集。hdfs被設計成適合進行批量處理...

hdfs客戶端上傳檔案追加出現的問題

org.apache.hadoop.ipc.remoteexception org.apache.hadoop.hdfs.protocol.alreadybeingcreatedexception failed to create file 解決方案 配置檔案中 hdfs site.xml true...