hdfs讀寫流程 大資料實戰之HDFS讀寫流程

2021-10-12 05:11:16 字數 1986 閱讀 8490

hdfs是乙個分布式檔案系統,其中最需要關注的就是讀寫流程了,寫流程比讀流程更快,下面分別講解寫和讀的細節。

一. hdfs寫流程

1)首先,客戶端利用hdfs client建立了distributed filesystem例項,再通過

distributed filesystem向namenode發起上傳檔案的請求,namenode會檢查目標檔案是否存在,父目錄是否存在。

2)namenode返回是否可以上傳的響應資訊。

3)客戶端再次向namenode請求可以儲存第乙個塊的datanode的位址資訊(hdfs按塊儲存,預設塊大小為128m)。

4)namenode返回儲存資料的datanode位址,namenode在尋找datanode節點時會選擇距離待上傳資料最近距離的datanode(計算方式如上圖

網路拓撲-節點距離計算)。

5)客戶端通過fsdataoutputstream模組向datanode1請求上傳資料,datanode1接收到資訊後,會對datanode2,datanode3接著發起請求,直到通道建立完成。

6)datanode逐級應答,直到客戶端收到訊息。

7)客戶端向datanode1上傳第乙個block(先從磁碟讀取資料放到本地記憶體快取),以packet為單位,datanode1收到packet之後就會將它傳給datanode2,datanode2傳給datanode3,

datanode每傳乙個packet就會將它放入應答佇列,當所有datanode都複製完成就會應答成功。

8)當第一塊傳輸完成後,客戶端會再次向namenode請求傳輸第二塊,重複3-7步,當傳輸完成後,客戶端將告訴namenode傳輸結束,客戶端關閉fsdataoutputstream。

二、機架感知副本節點擊擇

1)第乙個副本在client所處的節點上,如果客戶端在集群外,則隨機選取乙個。2)第二個副本位於第乙個副本的同一機架的不同節點(隨機選擇)。3)第三個副本位於不同機架的隨機節點。

三、hdfs讀流程

1)客戶端首先利用hdfs client建立

dist

ributed filesyste

m例項,通過

dist

ributed filesyste

2)namenode搜尋到目標檔案元資料後將其返回。

3)客戶端通過fsdataoutputstream模組向最近的datanode請求讀取資料。

4)datanode從磁碟讀取資料輸入流,以packet為單位做校驗,傳送給客戶端。客戶端以packet為單位接收,先在本地快取,再寫入目標檔案。

H06 HDFS讀寫流程

檔案a大小100m,client將a寫入到hdfs上 hdfs按照預設配置,hdfs分布在三個機架上rack1,rack2,rack3 a.client將a按照64m分塊。分成兩塊 block1 block2 b.client向namenode傳送寫資料請求,如圖藍色虛線 c.namenode節點記...

大資料實戰 Hive 技巧實戰

select address from test where dt 20210218 union all select address from test where dt 20210218 address m a m a m b m b m b m b select address from te...

大資料實戰之環境搭建 六

這篇我們看如何搭建solr,因為第一篇講述了在windows下如何搭建,所以這裡就簡單的說一下。前面已經提到我們將solr壓縮包拷貝至了usr tmp下。之後我們將solr解壓目錄下面的example solr拷貝到上面solr 4.3.0下 ok,完了之後進行我們的最後一步,在tomcat下面的 ...