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

Hadoop系列-IPC模型

阅读更多

IPC

  • 实现RPC的一种方法,具有快速、简单的特点。 它不像Sun公司提供的标准RPC包,基于Java序列化。
  • IPC无需创建网络stubs和skeletons。
  • IPC中的方法调用要求参数和返回值的数据类型必须是Java的基本类型,String和Writable接口的实现类,以及元素为以上类型的数组。接口方法应该只抛出IOException异常。

使用模型

  • 采用客户/服务器模型
  • Server:它把Java接口暴露给客户端。指定好监听端口和接受远程调用的对象实例后,通过RPC.getServer()可以得到Server实例。
  • Client:连接Server,调用它所暴露的方法。Client必须指定远程机器的地址,端口和Java接口类,通过RPC.getClient()可以得到Client实例。
  • Server不可以向Client发出调用,但在Hadoop中,有双向调用的需求。 比如在DFS,NameNode和DataNode需要互相了解状态。
分享到:
评论
4 楼 yanqingluo 2012-08-22  
我的HADOOP源码是最新的,总是编译不过.

编译不过是因为IPC这部分代码

ERROR] E:\Study\Hadoop\common\trunk\hadoop-common-project\hadoop-common\src\main\java\org\apache\hadoop\ipc\Client.java:[61,64] 软件包 org.apache.hadoop.ipc.protobuf.IpcConnectionContextProtos 不存在
[ERROR] E:\Study\Hadoop\common\trunk\hadoop-common-project\hadoop-common\src\main\java\org\apache\hadoop\ipc\Client.java:[62,60] 软件包 org.apache.hadoop.ipc.protobuf.RpcPayloadHeaderProtos 不存在
[ERROR] E:\Study\Hadoop\common\trunk\hadoop-common-project\hadoop-common\src\main\java\org\apache\hadoop\ipc\Client.java:[63,60] 软件包 org.apache.hadoop.ipc.protobuf.RpcPayloadHeaderProtos 不存在
[ERROR] E:\Study\Hadoop\common\trunk\hadoop-common-project\hadoop-common\src\main\java\org\apache\hadoop\ipc\Client.java:[64,60] 软件包 org.apache.hadoop.ipc.protobuf.RpcPayloadHeaderProtos 不存在
[ERROR] E:\Study\Hadoop\common\trunk\hadoop-common-project\hadoop-common\src\main\java\org\apache\hadoop\ipc\Client.java:[65,60] 软件包 org.apache.hadoop.ipc.protobuf.RpcPayloadHeaderProtos 不存在
[ERROR] E:\Study\Hadoop\common\trunk\hadoop-common-project\hadoop-common\src\main\java\org\apache\hadoop\ipc\RPC.java:[45,56] 软件包 org.apache.hadoop.ipc.protobuf.ProtocolInfoProtos 不存在
[ERROR] E:\Study\Hadoop\common\trunk\hadoop-common-project\hadoop-common\src\main\java\org\apache\hadoop\ipc\Server.java:[79,64] 软件包 org.apache.hadoop.ipc.protobuf.IpcConnectionContextProtos 不存在
[ERROR] E:\Study\Hadoop\common\trunk\hadoop-common-project\hadoop-common\src\main\java\org\apache\hadoop\ipc\Server.java:[80,0] 软件包 org.apache.hadoop.ipc.protobuf.RpcPayloadHeaderProtos 不存在
[ERROR] E:\Study\Hadoop\common\trunk\hadoop-common-project\hadoop-common\src\main\java\org\apache\hadoop\ipc\Server.java:[242,6] 找不到符号
[ERROR] 符号: 类 RpcKindProto
[ERROR] 位置: 类 org.apache.hadoop.ipc.Server


博主能跟我分享一份可以编译过的HADOOP 源码吗?
3 楼 aquester 2010-02-01  
java_somuch 写道
我的理解是,任何时候NameNode都不会对DataNode发出请求吧,NameNode给DataNode只会有指示,这些指示是通过DataNode发送过来的心跳包 反馈回去的。

不知道我的理解对不对?


理解得对,DataNode主动上报心跳,IPC详细的了解,请上Hadoop技术论坛,参见:http://bbs.hadoopor.com/thread-329-1-2.html
2 楼 aquester 2010-02-01  
详细的Hadoop IPC分析,请参见:http://bbs.hadoopor.com/thread-329-1-2.html
1 楼 java_somuch 2009-12-29  
我的理解是,任何时候NameNode都不会对DataNode发出请求吧,NameNode给DataNode只会有指示,这些指示是通过DataNode发送过来的心跳包 反馈回去的。

不知道我的理解对不对?

相关推荐

    hadoop深入了解

    本篇将深入探讨Hadoop的各个方面,包括HDFS(Hadoop Distributed File System)架构、MapReduce编程模型、Hadoop的调度算法、用户命令和管理员命令,以及IPC(Inter-Process Communication)包的源代码分析。...

    Hadoop源码分析(完整版)

    Hadoop项目包括了多个子项目,其中最核心的是HDFS和MapReduce,这两个组件共同构成了Hadoop分布式文件系统和数据处理模型的基础。 在分布式计算领域,Google是领先的公司之一,它的计算平台成为了后来类似开源项目...

    hadoop源码阅读总结

    Hadoop IPC/RPCServer主要基于NIO(Non-blocking I/O)模型实现,其核心处理流程如下: 1. **监听与连接建立**: - **Listener**:监听特定端口,关注`OP_ACCEPT`事件,等待客户端连接。 - 当客户端尝试连接时,`...

    hadoop 1.2.1核心源码

    5. **ipc**: Hadoop的远程过程调用(IPC)层在此,它支持服务端和客户端之间的高效通信。例如,NameNode与DataNode之间的通信就是基于IPC实现的。 6. **net**: 网络相关的组件,如Socket通信、网络地址解析等,都在...

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

    - **MapReduce**:一种处理和生成大数据集的编程模型。 - **Apache Hadoop**:基于Google上述技术思想,Apache基金会开发了Hadoop项目,旨在为大规模数据处理提供开源解决方案。具体对应如下: - **Chubby → ...

    Hadoop源代码分析完整版

    - **MapReduce**:并行编程模型,Hadoop提供了相应的实现。 这些组件共同构建了Hadoop强大的数据处理能力。 #### 三、Hadoop源代码架构分析 - **HDFS (Hadoop Distributed File System)**:分布式文件系统,为...

    Hadoop源代码分析(完整版

    综上所述,Hadoop源代码分析涵盖了分布式文件系统、并行计算模型、网络通信、配置管理、安全机制、数据序列化等多个方面,是理解大规模数据处理和云计算基础设施的重要资源。通过深入学习Hadoop源代码,开发者可以更...

    Hadoop源代码分析

    Google通过一系列文章介绍了自己的技术栈,包括分布式集群管理(Google Cluster)、分布式锁服务(Chubby)、分布式文件系统(GFS)、大规模表格存储系统(BigTable)以及并行处理模型(MapReduce)。这些技术共同...

    hadoop源代码code归档整理

    源代码中的`org.apache.hadoop.ipc`包包含了相关实现。 4. YARN(Yet Another Resource Negotiator):作为Hadoop的资源管理系统,YARN负责调度和监控应用程序。主要关注`org.apache.hadoop.yarn`包,如`org.apache...

    hadoop代码分析

    - **MapReduce** 直接对应 **Hadoop MapReduce**:一种分布式数据处理模型。 - **扩展项目**:除了Hadoop项目本身,还有许多开源项目如Facebook的Hive等,这些项目进一步丰富了大数据处理的生态体系。 #### 二、...

    Hadoop源代码分析 pdf 文字版

    - **背景介绍**:Google在2003年至2006年间公开了一系列论文,介绍了其内部使用的基础设施和技术栈,包括分布式文件系统(GFS)、分布式锁服务(Chubby)、大规模分布式存储系统(BigTable)以及并行处理框架(MapReduce)等...

    Hadoop源码的入门解析

    5. **org.apache.hadoop.ipc**:网络服务的客户端和服务器工具,处理网络异步I/O。 6. **org.apache.hadoop.mapred**:MapReduce的实现,包括任务调度和分发。 7. **org.apache.hadoop.metrics**:性能监控API。 8. ...

    java操作hadoop的RPC,源码

    - RPC是一种进程间通信(IPC)方式,它允许一个程序在执行时调用另一个不在同一地址空间的程序提供的服务,使得分布式系统看起来像单个系统,简化了编程模型。 2. **Hadoop RPC实现**: - Hadoop的RPC基于Java的...

Global site tag (gtag.js) - Google Analytics