storm-yarn代码研究以及JStorm on Yarn初步

把一个应用程序移植到yarn到,需要编写两个部分:client和AppMaster。其中client用于向yarn提交应用程序,获得appid,并且启动appMaster,而appMaster在启动后将启动相应的服务,申请新container来运行任务,以及任务失败的fail over等。在storm-yarn项目中,appMaster则需要启动nimbus和ui服务,当提交storm任务后,也需要申请新的container来运行任务,其架构如下图:




接下来看一下storm-yarn的代码。代码比较简单,有以下几个类,都在一个包中:


其中各个类的作用简要介绍如下:

Client.java 程序入口
JStormOnYarn: launch storm on yarn
LaunchCommand: 处理storm-yarn launch命令
MasterClient: 与MasterServer通信以获取storm.yaml
MasterServer: 运行在Yarn中的appMaster,负责在container中启动nimbus和ui server,同时与RM通信,汇报心跳,决定是否启动supervisor
StormAMRMClient: MasterServer辅助功能类,真正执行supervisor服务的启动
StormMasterServerHandler: MasterServer的handler,控制所有storm服务的开关,负责nimbus,ui,supervisor的启动与停止。

由于storm与jstorm的架构几乎一致,因此在jstorm on yarn项目中我也大部分重用了storm-yarn的代码,再针对jstorm进行个别修改。
目前已实现jstorm-yarn launch <master.yaml> 命令,可以提交jstorm到yarn集群上运行。

下一步计划:
1. 运行jstorm example,使之能在yarn上的jstorm集群上运行
2. 实现jstorm-yarn的更多命令

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值