一篇文章搞懂 Hadoop RPC 到底是什么 |
您所在的位置:网站首页 › hadoop-client依赖包做什么的 › 一篇文章搞懂 Hadoop RPC 到底是什么 |
写在前面
本文隶属于专栏《1000个问题搞定大数据技术体系》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和文献引用请见1000个问题搞定大数据技术体系 解答 Hadoop RPC一个复杂的分布式系统,底层都会有通信机制来维持上层应用进程间的通信(Inter-Process Communication,IPC)逻辑,这也是所有分布式系统的基础。 在分布式网络通信中通常会采用远程过程调用(Remote Procedure Call,RPC)来作为通信协议。 Hadoop作为一个复杂的分布式系统,实现了符合自己的RPC通信协议,并支撑多个上层应用的多个分布式子系统,如分布式存储系统(HDFS)、分布式离线计算系统(Mapreduce)和分布式资源管理与调度系统(YARN)等。 Hadoop RPC采用的是自主独立开发的协议,其核心内容包含服务端(Server)、客户端(Client)及交互协议(Interactive Protocol)。 Hadoop RPC在 hadoop-common-project 子项目中实现,其对应的包名为org.apache.hadoop.ipc。 Hadoop RPC通信过程请结合我的这篇博客一起来理解上面的流程图——全网最详细完备的HDFS读写流程 Hadoop RPC特点Hadoop RPC在分布式计算中可以理解为一个客户端( Client)/服务器( Server)模式。 它能做到分布式灵活部署、解耦服务及提高性能等。 透明性当使用者在本地调用远程的应用程序时,使用者不会察觉到跨机器之间的通信。 这个调用过程是完全透明的,使用者不知道调用的应用程序中的函数在哪里。 从连接服务到发送请求,然后获取响应结果,整个过程就仿佛是在本地执行调用。 高性能在 Hadoop各个分布式子系统中,如分布式存储系统(HDFS)、分布式离线计算系统apreduce)、分布式资源管理与调度系统(YARN),均采用主( Master)/从( Slave) 模式。 Master实际是服务程序( Server),负责处理集群中所有 Slave发送的请求。 在 Hadoop分布式系统中,对处理高并发应用场景的能力要求是很高的。 因而RPC Server需要一个高性能的服务程序来满足多个客户端( Client)的并发请求。 易用性在Java基础类库中,内嵌了RPC框架。 Hadoop系统中没有直接采用Java内嵌的RPC 框架,主要原因在于RPC是 Hadoop底层核心模块之一,需要满足易用性、高性能和轻量级等特性。 Hadoop系统创始人 Doug Cutting在谈论设计 Hadoop系统时提到,Java内嵌的远程方法调用( Remote Method Invocation,RMI)偏重量级,使用者能够控制的内容较少(如网络、超时、缓冲等) |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |