文档章节

hadoop 远程调度总结

政委007
 政委007
发布于 2017/05/08 10:18
字数 539
阅读 36
收藏 2

简介

通过前几篇博客,深入了解了hadoop rpc调度的一些流程,但是那些都太细节了,没有一个整体的架构情况。知识比较零散,需要一次系统整理和总结。下边是我自己整理的情况,肯定有很多不足之处,希望有人一起学习,一个人读源码还是很痛苦的,有人一起学习才好玩。

rpc client 总结

rpc获取代理对象流程

RPC获取代理对象

  1. rpc.getProxy() 程序入口,开始获取代理对象,需要传入代理对象接口,接口版本ID,远程服务地址和端口,以及配置

  2. 获取一个服务代理的封装,这个对象封装了

    • protocol 代理对象接口
    • proxy 动态代理获取的对象
    • supportServerMethodCheck 是否检查服务端是否支持调用的方法

    getProxy()返回了这个对象封装的代理对象。

  3. 获取rpc引擎。这个接口有两个实现类

    • WritableRpcEngine 处理用hadoop writable 序列化的rpc请求
    • ProtobufRpcEngine 处理用Protobuf序列化的rpc请求

这里我们只分析了WritableRpcEngine对象,这个类主要成员变量: - CLIENTS - client缓存

主要方法: - getProxy() 通过动态代理获取代理对象并且封装成ProtocolProxy对象 - getServer() 获取服务对象 - getClient() 获取client对象

这里主要通过getProxy()方法获取ProtocolProxy对象。但是在通过动态代理获取proxy时 这里偷偷new了一个Invoker对象,这是个前边忽略了的对象,这个对象主要用在当客户调用方法是,被调用的方法会通过整理,调用到Invoker.invoke()方法。下边我们详细分析一下这个对象。 4. Invoker对象
主要成员变量 - private Client.ConnectionId remoteId - private Client client; - private boolean isClosed = false; - private final AtomicBoolean fallbackToSimpleAuth;

主要方法 - invoke方法
通过client调用call方法发送rpc请求

server端服务过程

1. listener    接受rpc请求
2. handle    处理请求
3. responder    返回请求结果

这个三个类都实现了runnable接口,以线程的方式运行,handler可能有多个线程同时处理请求。

© 著作权归作者所有

上一篇: hbase使用
政委007
粉丝 10
博文 15
码字总数 15843
作品 0
洛阳
程序员
私信 提问
Hadoop MapReduce优化和资源调度器

Hadoop Shuffle过程 1.Hadoop MapReduce Shuffle过程 Hadoop Shuffle过程 Map Shuffle过程图2 2.Shuffle过程要点记录 每个Map Task把输出结果写到内存中的环形缓冲区。 当内存环形缓冲区写入...

溯水心生
2018/01/14
0
0
Eclipse连接Hadoop分析的三种方式

Hadoop一般都部署在linux平台上,想让Hadoop执行我们写好的程序,首先需要在本地写好程序打包,然后上传到liunx,最后通过指定命令执行打包好的程序;一次两次还可以,如果进行频繁的调试是很...

ksfzhaohui
2016/10/27
2.4K
0
Hadoop平台调度系统

1.概述   在Hadoop应用,随着业务指标的迭代,而使其日趋复杂化的时候,管理Hadoop的相关应用会变成一件头疼的事情,如:作业的依赖调度,任务的运行情况的监控,异常问题的排查等,这些问...

jackwxh
2017/03/03
0
0
【总结】Fair Scheduler

Fair Scheduler总结 默认公平调度调度策略仅仅基于内存资源,通过使用DRF(Dominant Resource Fairness)能够配置基于内存和CPU资源任务调度。 当只有一个应用运行的时候,该应用能够使用整个集...

巧克力黒
2018/06/27
0
0
学习笔记TF065: TensorFlowOnSpark

Hadoop生态大数据系统分为Yam、 HDFS、MapReduce计算框架。TensorFlow分布式相当于MapReduce计算框架,Kubernetes相当于Yam调度系统。TensorFlowOnSpark,利用远程直接内存访问(Remote Direc...

利炳根
2017/11/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OpenStack 简介和几种安装方式总结

OpenStack :是一个由NASA和Rackspace合作研发并发起的,以Apache许可证授权的自由软件和开放源代码项目。项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。OpenSta...

小海bug
昨天
5
0
DDD(五)

1、引言 之前学习了解了DDD中实体这一概念,那么接下来需要了解的就是值对象、唯一标识。值对象,值就是数字1、2、3,字符串“1”,“2”,“3”,值时对象的特征,对象是一个事物的具体描述...

MrYuZixian
昨天
6
0
数据库中间件MyCat

什么是MyCat? 查看官网的介绍是这样说的 一个彻底开源的,面向企业应用开发的大数据库集群 支持事务、ACID、可以替代MySQL的加强版数据库 一个可以视为MySQL集群的企业级数据库,用来替代昂贵...

沉浮_
昨天
6
0
解决Mac下VSCode打开zsh乱码

1.乱码问题 iTerm2终端使用Zsh,并且配置Zsh主题,该主题主题需要安装字体来支持箭头效果,在iTerm2中设置这个字体,但是VSCode里这个箭头还是显示乱码。 iTerm2展示如下: VSCode展示如下: 2...

HelloDeveloper
昨天
7
0
常用物流快递单号查询接口种类及对接方法

目前快递查询接口有两种方式可以对接,一是和顺丰、圆通、中通、天天、韵达、德邦这些快递公司一一对接接口,二是和快递鸟这样第三方集成接口一次性对接多家常用快递。第一种耗费时间长,但是...

程序的小猿
昨天
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部