Hadoop中NameNode、DataNode和Client三者之間的通信方式是什么?怎樣進行合作?


一直沒有重視三者之間的通信問題,在此整理一下提問:datanode之間有沒有交互?Hadoop安裝時ssh如何配置?

1.背景知識:

在Hadoop系統中,master/slaves/client的對應關系是:
master---namenode;
slaves---datanode;
client---dfsclient;
通信方式簡單地講:
client和namenode之間是通過rpc通信;
datanode和namenode之間是通過rpc通信;
client和datanode之間是通過簡單的socket通信。

再簡單一下:

client與NN,DN都有通信;NN與client,DN都有通信;DN只與NN有通信,datanode之間並沒有通信。

2.所以,ssh配置時,ssh公鑰只需要datanode和namenode之間交換。


3.合作關系:

以hdfs文件讀寫為例:

A.圖示:

B.  NameNode可以看作是分布式文件系統中的管理者,主要負責管理文件系統的命名空間、集群配置信息和存儲塊的復制等。NameNode會將文件系統的Meta-data存儲在內存中,這些信息主要包括了文件信息、每一個文件對應的文件塊的信息和每一個文件塊在DataNode的信息等。
DataNode是文件存儲的基本單元,它將Block存儲在本地文件系統中,保存了Block的Meta-data,同時周期性地將所有存在的Block信息發送給NameNode。
Client就是需要獲取分布式文件系統文件的應用程序。

C.文件寫入
    Client向NameNode發起文件寫入的請求。
    NameNode根據文件大小和文件塊配置情況,返回給Client它所管理部分DataNode的信息。
    Client將文件划分為多個Block,根據DataNode的地址信息,按順序寫入到每一個DataNode塊中。

D.文件讀取
    Client向NameNode發起文件讀取的請求。
    NameNode返回文件存儲的DataNode的信息。
    Client讀取文件信息。

感謝您閱讀我的博客,由於作者水平有限,錯漏缺點在所難免,希望得到您的批評指正,祝您工作如意,學習順利!

############################################################

轉載請注明出處,謝謝!原文地址:http://www.cnblogs.com/masonwang/p/4526835.html

############################################################

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM