YARN源代码解读

来源:互联网 发布:零壹乐队 知乎 编辑:程序博客网 时间:2024/05/20 20:19


YARN源代码解读

今天开了个坑
目标:能够灵活应用Hadoop平台,利用其实现各种数据的处理

RPC是分布式系统的核心:序列化层(Protobuf/Avro/Writable)/函数调用层(反射/动态代理)/网络传输层(Socket)/服务器端处理架构(网络I/O模型)

请求/应答 同步/异步

RMI

1)客户程序以本地方式调用系统产生的 Stub 程序;
2)该 Stub 程序将函数调用信息按照网络通信模块的要求封装成消息包,并交给通信

模块发送到远程服务器端。
3)远程服务器端接收此消息后,将此消息发送给相应的 Stub 程序;
4)Stub 程序拆封消息,形成被调过程要求的形式,并调用对应函数;(动态代理)
5)被调用函数按照所获参数执行,并将结果返回给 Stub 程序;
6)Stub 程序将此结果封装成消息,通过网络通信模块逐级地传送给客户程序


相关类org.apache.hadoop.ipc.RPC:

public static Server RPC.Builder (Configuration).build() :

public static <T> ProtocolProxy <T> getProxy/waitForProxy(...) :


Hadoop RPC:

VersionedProtocol

定义

实现

server

client?为什么传入的参数是interface

RPC.setProtocolEngine是为了改变序列化方法

org.apache.hadoop.ipc.Client

org.apache.hadoop.ipc.Server


0 0