hadoop中NameNode、DataNode和Client三者之間協作關系及通信方式介紹



<ignore_js_op> 

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



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

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

----------------------------------------------------------------------------------------------------------------------------------------------------------------

通信方式介紹:

在hadoop系統中,master/slaves/client的對應關系是:
master---namenode;
slaves---datanode;
client---dfsclient;
那究竟是通過什么樣的方式進行通信的呢,在這里從大體介紹一下:
簡單地講:
client和namenode之間是通過rpc通信;
datanode和namenode之間是通過rpc通信;
client和datanode之間是通過簡單的socket通信。
隨便拔一下DFSClient的代碼,可以看到它有一個成員變量public final ClientProtocolnamenode;
而再拔一下DataNode的代碼,可以看到它也有一個成員變量public DatanodeProtocolnamenode

 

文章轉自:http://www.aboutyun.com/thread-6794-1-1.html


免責聲明!

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



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