客戶端寫操作

1)客戶端請求上傳資料到服務器
2)服務器接收到這個請求,然后到自己的元資料里面去查詢,元資料中是否記錄了該檔案的存在
3)NN回應客戶端是否可以上傳
4)服務器會發送再次請求,需要上傳多大的資料檔案
5)服務器會檢查DataNode的資訊
6)服務器會根據上傳檔案大小進行調度,調度出最合適的DataNode佇列回傳給客戶端
【每隔3秒鐘,DataNode都會向NN發送一個資料,DN的狀態和可用空間】
7)告訴DN需要上傳資料
8)客戶端接收佇列資料:
通過pop方法,取出第一個節點的地址,然后訪問該節點,并吧剩下的其他節點的IP地址帶過去;
第一個DN接收資料,再從佇列中取出第一個,繼續把剩下的IP帶過去,直到最后一個節點結束;
最后一個節點收到資訊之后,想源地址發送確認訊息,確認到第一個DN的時候,DN會把確認訊息回傳給客戶端;
【即建立好了傳輸通道】
9)客戶端接收到最終確認訊息之后,開始往每一個DN上寫入資料
10)最終寫入成功會將訊息回傳給客戶端
11)客戶端向NN匯報,資料寫入成功,NN就會把訊息寫入元資料中
12)最后NN會通知DN自動做資料副本平衡
客戶端讀操作

1)客戶端請求NN,需要下載檔案
2)NN把檔案的元資料資訊回傳給客戶端
3)客戶端接收到資料后,就到相應的客戶端去請求資料即可
4)最后客戶端本地進行資料追加合并從而獲得整個檔案
元資料
1)元資料:元資料是我們記憶體的一塊空間
2)元資料:是一個檔案,fsimage_0000000000XX檔案就是元資料
3)元資料:就是一個小型的資料庫,里面存放了所有檔案的位置
Secondarynamenode
1)secondarynamenode實際上是對NameNode資料的一個備份
2)secondarynamenode是為了防止NameNode機器掛掉
3)secondarynamenode不能和NameNode放在一起
可以修改hdfs-site.xml組態檔來指定secondarynamenode的地址
<!--指定SecondaryNameNode的地址-->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hdp02:50090</value>
</property>
Checkpoint
Checkpoint就是定時檢查節點
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/85156.html
標籤:其他
