HDFS檔案的讀寫操作理論解析

2021-07-03 15:24:24 字數 1286 閱讀 8484

剛剛接觸hadoop,對於裡面的hdfs感覺思想就是分而治之再綜合的過程,不過這個分布式檔案系統還是蠻厲害的。現在介紹一下它的基本原理,通俗易懂。

一、hdfs的一些基本概念:

資料塊(block):大檔案會被分割成多個block進行儲存,block大小預設為64mb。每乙個block會在多個datanode上儲存多份副本,預設是3份。

namenode:namenode負責管理檔案目錄、檔案和block的對應關係以及block和datanode的對應關係。

datanode:datanode就負責儲存了,當然大部分容錯機制都是在datanode上實現的。

二、hdfs基本架構圖

rack 是指機櫃的意思,乙個block的三個副本通常會儲存到兩個或者兩個以上的機櫃中(當然是機櫃中的伺服器),這樣做的目的是做防災容錯,因為發生乙個機櫃掉電或者乙個機櫃的交換機掛了的概率還是蠻高的]

三、hdfs讀取檔案操作:

客戶端發起讀檔案請求,向namenode傳送請求(當然還有第二個namenode),由於namenode存放著datanode的資訊,比如說資料塊的存放資訊等,所以namenode會向客戶端返回元資料,這些元資料報含了資料塊的資訊等。客戶端得到元資料後直接去讀取資料塊,實現了檔案的讀取。

四、hdfs寫檔案操作:

客戶端得到檔案後將檔案進行分塊,這些分塊的資料資訊會寫入namenode,同時複製到secondarynamenode ,然namenode會告訴客戶端datanode的情況,比如該如何寫啊,哪個資料塊放在哪等等。客戶端得到這些資訊後就向datanode開始寫資料(以資料塊的格式),然後datanode會以流水線方式複製,因為要保證資料有3份嘛,這些操作完成之後會把datanode的最新資訊反饋到namenode。再有資料來的時候按照上述過程流式進行。

5、使用hdfs的注意點:

(1)流式資料訪問,就是一次寫入,多次讀取。不可以修改數 據,只能刪除。

(2)保證資料塊盡量大,這樣naenode的壓力會較小。

(3)由於是磁碟讀寫,延遲必定會高,做好心理準備,如果你要求實時響應的要求較高,可以使用spark。畢竟記憶體中讀取資料比從磁碟讀取要快很多。(前提是你有個大記憶體)

HDFS檔案的讀寫操作剖析

namenode namenode負責管理檔案目錄 檔案和block的對應關係以及block和datanode的對應關係。datanode datanode就負責儲存了,當然大部分容錯機制都是在datanode上實現的。二 hdfs基本架構圖 rack 是指機櫃的意思,乙個block的三個副本通常會...

HDFS的讀寫操作

資料讀取請求將由 hdfs,namenode和datanode來服務。讓我們把讀取器叫 客戶 下圖描繪了檔案的讀取操作在 hadoop 中。客戶端啟動通過呼叫檔案系統物件的 open 方法讀取請求 它是distributedfilesystem型別的物件。此物件使用 rpc 連線到 namenode...

HDFS讀寫檔案

hdfs讀寫檔案 hdfs讀檔案 首先,由client下達命令交給distributed file system系統翻譯成linux命令,然後把命令傳送給namenode,namenode去搜尋fsimage和edit logs,搜到以後把檔案的塊位址 get block locations 返回給...