hadoop中NameNode、DataNode和Client三者之间协作关系及通信方式介绍
<ignore_js_op>?
1)NameNode、DataNode和Client
? ?? ?? ?NameNode可以看作是分布式文件系統中的管理者,主要負責管理文件系統的命名空間、集群配置信息和存儲塊的復制等。NameNode會將文件系統的Meta-data存儲在內存中,這些信息主要包括了文件信息、每一個文件對應的文件塊的信息和每一個文件塊在DataNode的信息等。
DataNode是文件存儲的基本單元,它將Block存儲在本地文件系統中,保存了Block的Meta-data,同時周期性地將所有存在的Block信息發(fā)送給NameNode。
Client就是需要獲取分布式文件系統文件的應用程序。
2)文件寫入
? ? Client向NameNode發(fā)起文件寫入的請求。
? ? NameNode根據文件大小和文件塊配置情況,返回給Client它所管理部分DataNode的信息。
? ? Client將文件劃分為多個Block,根據DataNode的地址信息,按順序寫入到每一個DataNode塊中。
3)文件讀取
? ? Client向NameNode發(fā)起文件讀取的請求。
? ? 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
轉載于:https://www.cnblogs.com/likehua/p/4161428.html
總結
以上是生活随笔為你收集整理的hadoop中NameNode、DataNode和Client三者之间协作关系及通信方式介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C语言运算符摘录
- 下一篇: 上周热点回顾(12.8-12.14)