版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_40384309/article/details/82945488
通信协议:
上一篇谈到SecondaryNameNode会定期与NameNode进行通信,学过通信原理的都知道要进行通信,就得遵循某种协议,HDFS内的通信也不例外,它的通信协议都是构建在TCP/IP协议基础之上的;
HDFS是一个部署在集群上的分布式文件系统,节点间的通信、客户端与节点间的通信,都有相应的协议:
- 客户端通过一个可配置的端口向名称节点主动发起TCP连接,并使用客户端协议与名称节点进行交互;
- 客户端与数据节点通过RPC实现交互;
- 名称节点与数据节点之间则使用数据节点协议进行交互;
- 另外,名称节点不会主动发起RPC,而是响应来自客户端和数据节点的RPC请求。
体系结构:
HDFS采用主从(master/slave)结构模型,一个HDFS集群包括了一个名称节点和若干个数据节点。
Master/Slave
|
Master |
Slave |
对于数据存放 |
NameNode |
DataNode |
对于MapReduce |
JobTracker |
TaskTracker |
名称节点作为中心服务器,相当于一个唯一的管家,负责管理文件系统的命名空间,以及客户端对文件系统的访问。这两方面的具体表现在上一篇博文中就已经叙述过。
集群中的数据节点一般是一个节点运行一个数据节点进程,负责处理客户端对HDFS具体的数据读写操作,在名称节点的统一调度下进行数据块的创建、删除、复制等。