`
zhangyu8374
  • 浏览: 94489 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Hadoop系列-IPC之代码实现

阅读更多
  • 整体结构:在IPC包中,最重要的3个类是Server,Client和RPC,它们具有层次化的结构。
  1. RPC类是对Server、Client的具体化。在RPC类中规定,客户程序发出请求调用时,参数类型必须是Invocation;从服务器返回的值类型必须是ObjectWritable。为了加强理解,可以查看测试类TestIPC。在那里,规定的参数类型与返回值类型都是LongWritable。
  2. RPC类是对Server、Client的包装,简化用户的使用。如果一个类需充当服务器,只需通过RPC类的静态方法getServer获得Server实例,然后start。同时此类提供协议接口的实现。如果一个类充当客户端,可以通过getProxy或者waitForProxy获得一个实现了协议接口的proxy object,与服务器端交互。为了加强理解,可以查看测试类TestRPC,在那里,实现的协议接口为TestProtocol。
  • Server类
  1. 启动Listener进程。如果收到需要建立连接的请求,将建立连接,然后在上面捕获读操作的命令。收到命令之后,将把解析客户端发过来信息的工作委派给Connection。Connection把信息封装到Call对象中,放入队列中,待Handler处理。
  2. 启动指定数目的Handler线程,处理客户端对指定方法调用的请求,然后把结果返回给客户端。
  • Client类
  1. 用Call封装好调用信息,然后借助从连接池中取出的Connection向服务器端发送,等待结果。如果到指定服务器的Connection不存在,将马上建立。Connection线程读取服务器方法调用的返回信息。完成之后,通知主线程。
  • RPC类
  1. 对外使用的窗口,隐藏了Server和Client的背后细节,验证RPC协议版本。
分享到:
评论

相关推荐

    Hadoop源码分析 完整版 共55章

    - **示例代码**:以下是一个简单的`MyWritable`类实现`Writable`接口的例子,用于演示如何实现序列化与反序列化: ```java public class MyWritable implements Writable { // Some data private int counter; ...

    Hadoop源代码分析(完整版).pdf

    - **HDFS作为基础**:HDFS是Hadoop生态中的核心组件之一,它是HBase等其他组件的基础,因此深入理解HDFS对于理解整个Hadoop生态系统至关重要。 #### 二、Hadoop项目架构分析 - **包结构及其依赖关系**:Hadoop项目...

    Hadoop源代码分析 高清完整中文版PDF下载

    该文件内容指出,对Hadoop源代码的深入理解和分析能够帮助人们更好地掌握Hadoop开发技术,并且提供了一系列的学习资源链接,包括视频教程、安装包集合、推荐书籍以及面试题目等,这些都是学习和深入研究Hadoop的重要...

    Hadoop源代码分析之HDFS篇

    ### Hadoop源代码分析之HDFS篇 #### 前言 随着大数据处理需求的日益增长,Hadoop作为主流的大数据处理框架之一,其核心组件HDFS(Hadoop Distributed File System)的重要性不言而喻。本文旨在通过对HDFS源代码进行...

    Hadoop源代码分析完整版

    Hadoop项目在Apache软件基金会的领导下得到了快速发展和完善,并逐渐成为大数据领域内的标杆技术之一。 根据提供的描述,本文档重点分析了Hadoop源码,特别是其分布式文件系统HDFS和MapReduce的实现细节。这对于...

    Hadoop源代码分析

    ### Hadoop源代码分析 #### 一、Hadoop与Google的核心技术 Hadoop是一个开源的分布式计算框架,其设计初衷是为了模拟Google所采用的核心技术。Google通过一系列文章介绍了自己的技术栈,包括分布式集群管理...

    Hadoop源代码分析 pdf 文字版

    ### Hadoop源代码分析知识点概览 #### 一、Hadoop与Google技术栈的关系 - **背景介绍**:Google在2003年至2006年间公开了一系列论文,介绍了其内部使用的基础设施和技术栈,包括分布式文件系统(GFS)、分布式锁服务...

    hadoop工具包中的share包

    3. **工具和实用程序**:Hadoop的share包中包含了一系列的命令行工具,如`hadoop fs`命令,用于执行文件系统操作,以及`hadoop jar`命令,用于执行用户编写的MapReduce程序。此外,还有各种通用的工具类,如`FSShell...

    18Nov_Serialization.docx

    Hadoop的序列化机制主要用于在节点之间进行进程间通信(IPC)以及数据的持久化存储。文档"18Nov_Serialization.docx"主要讨论了Hadoop中的序列化,即Writables接口及其应用。 序列化是指将结构化的对象转换为字节流...

    王家林的NoSQL架构揭秘和MongoDB深入浅出最佳实践

    - **Proxy Object概念**:在Android框架中,Proxy Object主要用于远程代理,通过代理对象实现跨进程的服务调用,这是实现IPC的关键部分之一。 - **Handler与Message机制**:Handler和Message是Android中处理异步任务...

    java面试题及答案-非常全面(包括基础、网络、数据结构、算法及IT大厂面经)

    - **工厂模式**:提供创建一系列相关或相互依赖对象的接口,无需指定它们具体的类。 - **观察者模式**:当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。 ### JAVA内存泄露与OutOfMemory ...

    大数据课程体系 (2).pdf

    YARN作为Hadoop的资源管理系统,其调度框架、事件分发机制和IPC原理也是学习的重点。 课程还涉及了其他重要的大数据工具,如分布式数据库HBase,数据仓库Hive,数据迁移工具Sqoop,分布式日志框架Flume,以及协调...

    百度一面1

    在面试过程中,面试官通常会询问一系列与计算机网络、操作系统、数据结构以及编程语言相关的问题。以下是基于给定的标题和描述所涵盖的一些关键知识点的详细解析: 1. **进程通信**: - 进程间通信(IPC,Inter-...

    SistemasDistribuidos:分布式系统项目的源代码 系统硕士

    在"分布式系统项目的源代码 系统硕士"这个项目中,我们可以期待深入理解并学习到分布式系统的概念、设计原则以及实现技术。由于标签中提到了"Java",我们可以推断该项目可能使用Java作为主要的开发语言,这是因为...

    Maxim微型PLC平台让工业4.0尽在掌握.pdf

    Altium Designer 15还提供了对IPC 2581和Gerber X2格式的支持,使设计人员能够跟上设计前沿,并为PCB制造厂商提供更广泛的选择。同时,它强化了电子工程工作流程,减少了设计人员与制造商之间的交流障碍,有助于提升...

Global site tag (gtag.js) - Google Analytics