当前位置: 首页 > 工具软件 > storm-yarn > 使用案例 >

Storm yarn

皇甫聪
2023-12-01

名称缩写:RMResourceManager,AM(ApplicationManager),NM(NodeManager),C(Client)

 

使用yarn场景

需同时采用多种计算平台

 

MR1——> MR2

JT,TT——>YARN,AM

 

设计改进:

资源管理和应用程序管理分离,以满足多计算平台同时运行

 

RM:

调度,应用程序管理(应用程序提交,启动AM等)

AM

1,向RM申请资源

2,分发资源

3,与NM通信启动/停止任务

4,监控所有任务运行状态

 

YARN中的主要接口

ApplicationClientProtocolClient通过该协议将应用程序提交到RM,查询应用程序的运行状态或者杀死应用程序等功能

ApplicationMasterProtocol:AM使用该协议向RM注册,申请资源,获取各个任务运行情况等

ContainerManagementProtocol:AM使用该协议要求NM启动/撤销Container或者查询Container的运行状态

 

 

如果将一个新的应用程序运行在YARN上,需要编写两个组件

ClientAM

Client设计

1ClientRM获取唯一的app_ID

2Client将应用程序提交到RM

AM设计

AM的编写流程包括两部分:AMRM,AMNM

AM-RM通信主要过程:注册,申请资源,应用执行完毕后报告完成

AM-NM通信主要过程:分发资源给其他的NM,启动NM内部的container,一旦一个container运行完成后,AM释放之

 

Storm  VS  Storm on yarn

Storm弊端:

1,资源无法动态分配(用户提交任务时,需要手动指定需要的资源数,而任务一旦提交,需要用户显示的Kill,否则任务永远运行,无法根据数据量的大小动态分配资源)

2nimbus负责管理任务,分配资源和调度,此调度能力弱,无法考虑到当前CPU和内存的运行情况

瓶颈:受制于ZookeeperNimbus调度的瓶颈是单个集群的规模在超过300台之后无法线性扩展(解决:stormon yarn

 

Storm on yarn

好处:

1,共享底层存储,让storm访问基于hadoop的数据存储,

2,弹性计算资源,与其他应用程序共享集群资源,可以共享资源管理/调度

3,支持多版本,避免一个版本一个集群带来的维护问题

 

总体设计思路:

独立的AppMaster负责资源管理,Container做任务资源隔离,资源池做权限管理,增加各个计算模块的容灾机制,实现任务根据CPU,内存大小自动扩容和缩容

 

系统流程:

 

1,通过storm-YARN客户端将Topology提交到RM

2Storm-YARN对每一个提交的Topology启动一个AppMaster,同时在AppMaster中启动对应storm集群的NimbusUI进程

3,根据Topology指定的Worker数目来确定需要申请的supervisor数目,通过AppMasterYARN申请对应数目的Container

4AppMaster拿到指定的Container资源在对应的机器上启动Supervisor进程,用户的Topology提交到Nimbus,整个任务提交的过程结束,后续的操作交给storm处理

 类似资料:

相关阅读

相关文章

相关问答