This repository has been archived by the owner on Jun 16, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1.8k
JStorm on Apsara 概要设计
Longda edited this page Mar 17, 2014
·
3 revisions
- 初始化Apsara
- 读取jac 配置文件
配置文件中含有, package 路径, User, Priority, PackageCapability, NuwaCapability, DefaultPanguCapability, DefaultNuwaCapability
- 循环等待用户输入命令, 执行用户命令
- 检查用户输入是否正确
- 生成fuxi service文件
- 启动fuxi service, 保存jam(JStorm-Apsara-Master) EndPoint
- 向jam(JStorm-Apsara-Master)发送 上传upload-conf 请求,上传JStorm 配置文件
- 向jam(JStorm-Apsara-Master)发送 启动nimbus 请求
- 向jam(JStorm-Apsara-Master)发送 设置supervisor 请求
- 将所有的结果写入output文件
- 检查用户输入是否正确
- 根据appname, 查找jam(JStorm-Apsara-Master)
- 向jam(JStorm-Apsara-Master) 发送hello请求
- 保存appname 和jam(JStorm-Apsara-Master)EndPoint
- 检查用户输入是否正确
- 向jam(JStorm-Apsara-Master) 发送download-conf请求
- 检查用户输入是否正确
- 向jam(JStorm-Apsara-Master) 发送download-zip请求
- 检查用户输入是否正确
- 向jam(JStorm-Apsara-Master) 发送set-supervisor-num请求
- 检查用户输入是否正确
- 向向jam(JStorm-Apsara-Master) 发送shutdown请求
- 如果暴力做法, 就直接shutdown service
- 直接调用rpc call 获取每个worker的状态
- 检查用户是否输入
- 如果用户没有输入, 调用rpc call获取所有fuxi worker的EndPoint
- 如果用户输入, 生成fuxi worker对应的EndPoint
- 依次对EndPoint,发送 hello请求
- 向jam(JStorm-Apsara-Master) 发送start-nimbus请求
- 向jam(JStorm-Apsara-Master) 发送restart-nimbus请求
- 初始化pangu客户端接口
- 初始化java沙箱的policy文件
- 将jstorm.zip从package://xxxxx 路径中下载下来,并进行解压
- 如果对应的盘古目录中已经存在storm.yaml, 则将storm.yaml文件下载到本地
- 接收用户上传的storm.yaml文件,并保存到当前目录
- 将文件写入盘古对应的位置
- 返回jstorm.zip文件数据给用户
- 接受用户的supervisor的设置
- 判断是否有storm.yaml文件, 如果没有返回失败。
- 解析storm.yaml 文件和default.yaml文件, 估计出每一个supervisor将消耗多少的资源
- 向伏羲 default-app-master, 申请supervisor 消耗的资源
- 等待fuxi启动完jas (JStorm-Apsara-Supervisor)
- 向伏羲default-app-master, 收回所有的supervisor资源
- 等待fux shutdown所有的supervisor
- 删除盘古storm.yaml文件
- 关闭service
- 如果nimbus已经启动,返回sucess, 否则返回no-ready
- 检查是否含有storm.yaml文件,如果没有返回失败
- 检查是否已经启动nimbus, 如果已经启动,返回成功
- 如果没有启动nimbus, 调用jni启动nimbus
- 检查是否含有storm.yaml文件,如果没有返回失败
- 检查是否已经启动nimbus, 如果已经启动,关闭nimbus,然后再启动nimbus
- 如果没有启动nimbus, 调用jni启动nimbus
- 下载package中的jstorm.zip压缩包,并进行解压
- 下载storm.yaml文件,放入正确的位置
- 调用jni 启动supervisor
当启动supervisor后,返回给用户 success, 否则返回no-ready
- 通过文件
- 通过盘古或zookeeper
- 通过JAS 提供的rpc功能进行心跳同步