Yarn02:基础库介绍

上篇文章Yarn诞生背景、架构和工作机制介绍 介绍了Yarn是Hadoop 2.0中的资源管理系统,它的核心设计逻辑是修改MR v1的运行时环境,将MR v1中的JobTracker划分成两个独立的服务:ResourceManager和ApplicationMaster,其中RM负责整个系统的资源管理和分配,AM负责应用程序的管理。当用户提交一个应用程序时,需要提供一个用以跟踪和管理这个程序的 ApplicationMaster,它负责想Resource Manager申请资源,并要求NodeManager启动可以占用一定资源的任务。由于不同的 ApplicationMaster 被分布到不同的节点上,因此他们之间不会相互影响。

YARN基础库

1. 序列化 Protocal Buffers

Protocal buffers 是一种高效的结构化数据存储格式,可以用于进行数据序列化和反序列化

源码路径:hadoop-3.2.3-src/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/proto/yarn_protos.proto

在YARN中,所有RPC函数的参数均采用Protocol Buffers定义的,相比于MRv1中基 于Writable序列化的方法,Protocol Buffers的引入使得YARN在向后兼容性和性能方面向前迈进了一大步。

YARN中使用Protocol Buffer定义的RPC包含:

  • applicationmaster_protocol.proto : AM 与 RM 之间的协议 Application- MasterProtocol。

  • applicationclient_protocol.proto: JobClient(作业提交客户端)与 RM 之间的协议 ApplicationClientProtocol。

  • containermanagement_protocol.proto: AM 与 NM 之间的协议Container- ManagementProtocol。

  • resourcemanager_administration_protocol.proto: Admin(管理员)与 RM 之 间的通信协议 ResourceManagerAdministrationProtocol。

  • yarn_protos.proto: 定义了各协议RPC的参数。

  • ResourceTracker.proto: 定义了 NM 与 RM 之间的协议 ResourceTracker。

    除了以上几个内核中的协议,YARN 还使用 Protocol Buffers 对 MapReduce 中的协议进 行了重新定义:

    MRClientProtocol.proto : JobClient(作业提交客户端)与 MRAppMaster 之 间的协议— MRClientProtocol。

    mr_protos.proto:定义了 MRClientProtocol 协议的各个参数。

2. Apache Avro

它是Hadoop下的子项目,本身既是一个序列化框架,同时也实现了RPC的功能。编写一个Avro应用需要三步

a. 定义消息格式文件,通常以avro为拓展名

b. 使用Avro编译器生成特定语言的代码文件

c. 使用Avro库提供的API来编写应用程序

3. RPC库

RPC 总体架构

同其他RPC框架一样,Hadoop RPC主要分为四个部分,分别是序列化层、函数调用层、网络传输和服务器端处理框架,具体实现机制如下:

序列化层:序列化主要作用是将结构化对象转为字节流以便于通过网络进行传输或写入持久存储,在RPC框架中,它主要用于将用户请求中的参数或者应答转化为字节流以便跨机器传输。

函数调用层:函数调用层的主要功能是定位要调用的函数并执行函数,Hadoop RPC采用了Java反射机制与动态代理实现了函数调用。

网络传输层:网络传输层描述了Client和Server之间消息传输的方式,Hadoop RPC采用了机遇TCP/IP的Socket机制

服务器端处理框架:服务器端处理框架可被抽象为网络I/O模型,它描述了客户端与服务端间信息交互方式,它的设计直接决定着服务器端的并发处理能力,常见的网络I/O模式有阻塞式I/O、非阻塞式I/O、事件驱动I/O等,而Hadoop RPC采用了机遇Reactor设计模式的事件驱动I/O模型

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值