亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

為何寫流程中是由DataNode1通知DataNode2,再由DataNode2通知DataNode3,而不是DataNode1同時通知DataNode2和DataNode3?

個人覺得后者對降低寫的latency更友好吧

正在回答

3 回答

?在向HDFS的寫操作中,不得不提一下“數據流管道”。數據流管道在Google實現他們的分布式文件系統(GFS)時就已引入,其目的是:在寫一份數據的多個副本時,可以充分利用集群中每一臺機器的帶寬,避免網絡瓶頸和高延時的連接,最小化推送所有數據的延時。? 其實這里我可能表述的不太準確,Client在保存數據的過程當中,將數據發送到第一個數據節點DateNode 1,然后在第一個DateNode節點在本地保存數據的同時,將數據推送到第二個數據節點DateNode 2,同理在第二個節點本地保存數據的同時,也會由第二個數據節點將數據同送給第三個數據節點DateNode 3。??這樣啊,每個節點都能承擔寫數據時的部分網絡流量,降低了客戶端發送多分數據時對網絡的沖擊

2 回復 有任何疑惑可以回復我~
#1

慕UI6419280

您好,在很多個節點的時候,如何選擇,比如說有100個節點,client隨機選擇有空間的datanode嗎?還有datanode是如何選擇下一個datanode的?
2018-12-17 回復 有任何疑惑可以回復我~
#2

叁金 回復 慕UI6419280

這個比較復雜,需要考慮可靠性 網絡帶寬等情況。 總結幾點吧 1. 第一個節點是就近原則,namenode找一個本機架的,空間足夠的datanode存放 2. 第二個節點就需要考慮備份容災了,會放在不同機架的節點上,保障數據的可用性(如果沒開機架感知。。??赡芨鶕渌O計找了一個吧。) 3. 第三個節點(默認備份三份)好像就比較隨意了。 在第二個節點的機架架再找一個即可 4. 其他備份就隨便扔了。 盡量不同機架即可 大概就是這樣吧。 這樣可以提供較好的穩定性和負載均衡。同時可以使數據均勻分布
2018-12-17 回復 有任何疑惑可以回復我~
#3

慕仰2907144 回復 叁金

老師好,請問當第一個block寫入到DataNode時會進行備份,必須備份了三個DataNode才會進行第二個block的寫入嗎?也就是說會不會當第一個block的第二個DataNode副本保存的同時,第二個block也在寫入DataNode呢?
2019-11-09 回復 有任何疑惑可以回復我~

寫的話也是按照最近的dataNODE來進行存儲吧

0 回復 有任何疑惑可以回復我~

客戶端要向HDFS寫數據,首先要跟namenode通信以確認可以寫文件并獲得接收文件block的datanode,然后,客戶端按順序將文件逐個block傳遞給相應datanode,并由接收到block的datanode負責向其他datanode復制block的副本,百度到的,老師的DataNode-2和DataNode-3應該是DataNode-1的副本

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

為何寫流程中是由DataNode1通知DataNode2,再由DataNode2通知DataNode3,而不是DataNode1同時通知DataNode2和DataNode3?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號