一 简介:
(1)Hadoop实现了自己的RPC通信协议,它是上层多个分布式子系统(如MapReduce、HDFS、Hbase等)公用的网络通信模块。
(2)Hadoop RPC特点:
*透明性:所有RPC框架的基本特征,即当用户在一台计算机的程序调用另外一台计算机上的子程序时,用户感觉不到其间跨机器的通信。
*高性能:Hadoop的各个子系统(如MapReduce、HDFS)均采用了Master/Slave结构,其中,Master实际上是一个RPC server,它负责处理集群中所有slave发生的服务请求。
*可控性:不用JDK自带RMI的原因是RPC是hadoop最底层、最核心的模块,保证其轻量级、高性能和可控性非常重要。
(3)Hadoop RPC的主要组成部分:
*序列化层:主要作用将结构化对象转为字节流以便于通过网络进行传输或写入持久存储。
*函数调用层:主要功能定位要调用的函数并执行该函数,Hadoop RPC采用Java反射机制与动态代理实现函数调用。
*网络传输层:描述了Client与Server之间消息传输的方式,Hadoop RPC采用了基于TCP/IP的Socket机制。
*服务器端处理框架:服务器端处理框架可被抽象为网络I/O模型,它描述了客户端与服务器端的信息的交互方式。它的设计直接决定服务器端的并发处理能力。常见的网络I/O模型有:阻塞式I/O、非阻塞式I/O、事件驱动I/O。Hadoop RPC采用了基于Reactor设计模式的事件驱动I/O模型。