• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
导航菜单
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • windows
  • 服务器硬件
  • 服务器运维
  • 云计算
  • 虚拟化
  • IIS教程
  • Linux
  • Apache
  • Ftp
  • DNS
  • Nginx
您的位置:首页 > 服务器 >云计算 > Hadoop源码分析----RPC反射机制,hadoop----rpc

Hadoop源码分析----RPC反射机制,hadoop----rpc

作者:网友 字体:[增加 减小] 来源:互联网

本文主要包含hadoop rpc源码,hadoop rpc,hadoop源码分析,hadoop源码,hadoop源码下载等服务器相关知识,网友希望可以进行参考

Hadoop源码分析----RPC反射机制,hadoop----rpc


有了Client 和Server,很自然就能RPC 啦。下面轮到RPC.java 啦。
一般来说,分布式对象一般都会要求根据接口生成存根和框架。如CORBA,可以通过IDL,生成存根和框架。但是,在
org.apache.hadoop.rpc,我们就不需要这样的步骤了。上类图。
 

为了分析Invoker,我们需要介绍一些Java 反射实现Dynamic Proxy 的背景。
Dynamic Proxy 是由两个class 实现的:java.lang.reflect.Proxy 和java.lang.reflect.InvocationHandler,后者是一个
接口。所谓Dynamic Proxy 是这样一种class:它是在运行时生成的class,在生成它时你必须提供一组interface 给它,然后
该class 就宣称它实现了这些interface。
这个Dynamic Proxy 其实就是一个典型的Proxy 模式,它不会替你作实质性的工作,在生成它的实例时你必须提供一个handler,
由它接管实际的工作。这个handler,在Hadoop 的RPC 中,就是Invoker 对象。
我们可以简单地理解:就是你可以通过一个接口来生成一个类,这个类上的所有方法调用,都会传递到你生成类时传递的
InvocationHandler 实现中。
在Hadoop 的RPC 中,Invoker 实现了InvocationHandler 的invoke 方法(invoke 方法也是InvocationHandler 的唯一方法)。
Invoker 会把所有跟这次调用相关的调用方法名,参数类型列表,参数列表打包,然后利用前面我们分析过的Client,通过socket
传递到服务器端。就是说,你在proxy 类上的任何调用,都通过Client 发送到远方的服务器上。
Invoker 使用Invocation。Invocation 封装了一个远程调用的所有相关信息,它的主要属性有: methodName,调用方法名,
parameterClasses,调用方法参数的类型列表和parameters,调用方法参数。注意,它实现了Writable 接口,可以串行化。
RPC.Server 实现了org.apache.hadoop.ipc.Server,你可以把一个对象,通过RPC,升级成为一个服务器。服务器接收到的请求(通过Invocation),
解串行化以后,就变成了方法名,方法参数列表和参数列表。利用Java 反射,我们就可以调用对应的对象的方法。调用的结果再通过socket,返

回给客户端,客户端把结果解包后,就可以返回给Dynamic Proxy 的使用者了。

更多分享请关注:http://bbs.superwu.cn  关注超人学院微信:BJ-CRXY

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Hadoop源码分析----RPC反射机制,hadoop----rpc

相关文章

  • 分布式数据库MVCC读写设计,数据库mvcc读写
  • Name node is in safe mode.错误处理方式 hadoop,nodehadoop
  • Hbase shell操作(完整版记录),hbaseshell
  • Llama-impala on yarn的中间协调服务,llama-impalayarn
  • Mirantis 创建的Control, Compute, 节点无法从Windows机器ssh,mirantiscompute
  • Hadoop之——自定义排序算法实现排序功能,hadoop排序功能
  • LinkedIn Cubert安装指南,linkedincubert
  • Hadoop之——Flume笔记,hadoopflume
  • JS中split用法和数组中元素的删除,jssplit
  • HBase入门5(集群),hbase入门5集群

文章分类

  • windows
  • 服务器硬件
  • 服务器运维
  • 云计算
  • 虚拟化
  • IIS教程
  • Linux
  • Apache
  • Ftp
  • DNS
  • Nginx

最近更新的内容

    • 《转》openstack中删除虚拟主机,状态一直deleting,《转》openstack
    • 一步一步跟我学hadoop(1)----hadoop概述和安装配置,hadoop----hadoop
    • Hadoop启动时报错:Incorrect configuration: namenode address dfs.namenode.servicerpc-address or...,hadoopnamenode
    • Spark编程指南V1.4.0(翻译),编程指南v1.4.0
    • 分享Hadoop大数据高薪就业视频,分享hadoop高薪就业
    • Hive学习笔记(二),hive学习笔记
    • hadoop一些常见报错的解决方案,hadoop解决方案
    • 《2》CentOS7.0+OpenStack+kvm云平台部署—配置Keystone,centos7.0kvm
    • 这会不会是顶好的实现万物互联的途径?--设备智能化改造,万物--
    • hadoop2.7配置HA,使用zk和journal,hadoop2.7zk

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有