前言:
Rpc协议就是Server实现一个声明了很多方法的接口并对外暴露此接口,Client通过调用此接口中声明的方法向server发送信息从而实现了与server的通信。
介绍:
Hdfs是分布式部署的,分为nameNode,secondaryNameNode,dataNode,DFSClient四部分,每个节点之间都遵守RPC通信协议。
一:NameNode与DataNode通信,DatanodeProtocol
1:NameNode是DFS中的目录空间管理者,整个hdfs系统中只有一个NameNode节点,NameNode中存放了两张表
第一张表存放文件名与数据块序列的对应关系,就是namenode节点中的fsimage文件。
第二张表存放的是数据块与machinelist的对应关系,此表是在程序运行时加载入内存中的。
2:NameNode实现了三个接口。
org.apache.hadoop.hdfs.protocol.ClientProtocol
org.apache.hadoop.hdfs.server.protocol.DatanodeProtocol
org.apache.hadoop.hdfs.server.protocol.NamenodeProtocol
3:DataNode用来存放数据块,可以有一个至多个DataNode。DataNode中存放一张数据块于字节流对应关系的表,终其一生他会不断的询问NameNode有什么任务需要完成,而NameMode不能直接联系DataNode他只能给DataNode返回一个简单的值。
4:DatanodeProtocol