jstorm-yarn的启动脚本位于 bin/jstorm-yarn,同时还有一个辅助脚本为同目录下的read-link,这两个脚本基本重用了storm-yarn中的启动脚本,只对需要的环境变量和启动参数作了相应的调整。启动流程大致为:
一:jstorm-yarn
1. jstorm-yarn脚本中读取jstorm路径,设置$JSTORM_BIN和$JSTORM_CLASSPATH,若未安装jstorm,则退出。
2. 检查是否设置$JAVA_HOME,若无,则退出。
3. 设置$CLASSPATH
4. 调用com.alibaba.jstorm.yarn.Client类,执行java代码。
二:Client
判断传递过来的命令行命令
1. 若是help命令,则打印可用命令接口内容,然后退出。
2. 若是launch命令,具体实现在LaunchCommand中。首先向yarn申请一个application,获得其appId,然后准备appContext,指定好appMaster类路径及其它相关环境变量后,再向yarn提交jstorm-yarn这个应用。提交成功后,jstorm开始在yarn中运行,等待用户提交jstorm任务。简单的说,jstorm是运行在yarn上的一个应用程序,jstorm-yarn的主要作用是作为client向yarn提交以及写好jstorm在成功提交后应当如何启动自己的各个服务。同时实现一些其它命令接口以供管理员可以控制和了解jstorm在yarn中的运行情况。
3. 其它命令。通过thrift与appMaster通信,发送客户端命令,然后由appMaster对命令进行处理。