深入解析MapReduce架构设计与实现原理–读书笔记(6)HadoopRPC概

php中文网
发布: 2016-06-07 16:32:50
原创
1377人浏览过

网络通信模块是分布式系统中最底层的模块。直接支撑了上层分布式环境下复杂的进程间通信(IPC)。是所有分布式系统的基

网络通信模块是分布式系统中最底层的模块。直接支撑了上层分布式环境下复杂的进程间通信(IPC)。是所有分布式系统的基础。远程过程调用RPC是一种常用的分布式网络通信协议。它允许运行于一台计算机的程序调用另外一台计算机的子程序,同时将网络的通信细节隐藏起来。
hadoop RPC特点
1.透明性
当用户在一台计算机的程序调用另外一台计算机上的子程序时,用户自身不会感觉到跨机器之间的调用。
2.高性能
hadoop的各个系统均采用Master/Slave结构,其中,Master实际是一个RPC Server,它负责处理集群中所有的slave发送的服务器请求。为了保证Master的并发能力,RPC Server应是一个高性能服务器,能够有效处理来自多个Client的并发RPC请求。
3.可控性
JDK自带了一个RPC框架RMI,但是hadoop考虑到其太重,所以并没有使用。而是完成了一个轻量级,高性能和可控性强的RPC框架。

hadoop RPC包括四个部分。序列化层,函数调用层,网络传输层,服务器端处理框架。
序列化层:将结构化对象专为字节流以便于通过网络进行传输或者写入持久存储。在RPC框架中,它主要用于将用户请求中的参数或者应答转化成字节流以便跨机器传输。
Hadoop自己实现了序列化框架,一个类只要实现Writable接口,即可支持对象序列化与反序列化。
函数调用层:定位要调用的函数并执行该函数。hadoop RPC采用java反射机制与动态代理实现了函数调用。
网络传输层:Client与Server之间消息传输的方式。Hadoop RPC采用了基于TCP/IP的Socket机制。
服务器端处理框架:网络IO模型。描述了客户端与服务器端信息交互的方式。它的设计直接决定着服务器端的并发处理能力。hadoop RPC采用了基于Reactor设计模式的事件驱动IO模型。

hadoop RPC分为2层。
第一层是一个基于Java NIO实现的客户机/服务器通信模型。
客户端将用户的调用方法及参数封装成请求包后发送到服务器端。服务器端收到请求包后,经解包、调用函数、打包结果等一系列操作后,将结果返回给服务器端。
第二层是供更上层程序直接调用的RPC接口,这些接口底层即为客户机/服务器通信模型。

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号