Hadoop學習之HDFS讀流程

2021-08-07 13:28:17 字數 673 閱讀 5956

hdfs讀流程圖

假設需要讀取hdfs根目錄下的bigdata.log檔案,使用如下命令

整個流程如下:

1、客戶端會呼叫distributedfilesystem.open方法與namenode進行rcp通訊,namenode會返回該檔案的部分或全部的 block列表(也包含該列表各block的分布在datanode位址的列表),也就是返回fsdatainputstream物件

2、客戶端呼叫fsdatainputstream物件的read()方法

a、會去與第乙個塊的最近的datanode進行read,讀取完後,會check,假如successful,會關閉 與當前 datanode通訊;(假如check fail,會記錄失敗的塊+datanode資訊,下次就不會讀取;那麼會去該塊的第二個 datanode位址讀取)

b、 然後去第二個塊的最近的datanode上的進行讀取,check後,會關閉與此datanode的通訊。

c、 假如block列表讀取完了,檔案還未結束,那麼filesystem會從namenode獲取下一批的block的列表。

3、客戶端將檔案塊讀取完整後,會呼叫fsdatainputstream.close()方法,關閉輸入流

Hadoop學習之HDFS架構 二

hdfs可以跨越大集群中的機器可靠地儲存非常大的檔案,將檔案儲存為一系列的塊,除了最後乙個塊外,所有的塊的大小都是相同的。當然若檔案大小正好為塊大小的倍數則所有塊的大小相同。為了容錯的目的,乙個檔案的塊會被複製成若干份,塊大小和複製因子是可配置的。應用程式可以指定檔案的副本數量,複製因子可以在檔案建...

Hadoop學習回顧之HDFS提綱

hdfs的設計理念 超大儲存 廉價x86伺服器 流式資料訪問 一次寫入,多次讀取,如果不借助hue,無法直接對hdfs檔案進行修改儲存,需要利用 hdfs dfs put命令 hdfs缺點 實時訪問弱,如要求秒級或者毫秒級資料訪問,考慮使用hbase 不適合儲存大量小檔案,hdfs啟動時,namen...

hadoop學習筆記(HDFS)

hdfs的設計基礎與目標 1 硬體錯誤是常態,因此需要冗餘。2 為大資料而生,流式讀寫,批量讀取而非隨機讀寫。擅長資料分析而不是事務處理。3 大規模資料集。4 一次寫多次讀邏輯設計,即一旦寫入,只能讀,不能修改。5 程式才用 資料就近 原則分配節點執行。hdfs的可靠性 冗餘副本策略 機架策略 心跳...