快速学习-Saturn Executor部署
Saturn Executor部署
Executor是作业的执行器。这一节将介绍如何将调试好的作业部署到Executor上面运行。关于如何开发调试作业,见“入门”一章。
Executor启动时,需要指定所属的域。启动后,Executor会自动拉取域下的作业配置信息,然后根据Saturn Console scheudler的调度安排,以及作业的Cron表达式去执行作业调度。
1 部署前准备
1.1 硬件准备
Linux服务器1台
这里只介绍Linux OS的方式。其他OS差别不大。
1.2 软件准备
JDK >= 1.7
1.3 检查
- 检查是否能访问Saturn Console (参见Saturn Console部署指南)
- 检查Saturn Console上是否有指定的namespace(可以在Console的注册中心搜索一下namespace名字)
- 检查是否能访问ZooKeeper (参见Saturn Console部署指南)。可以通过telnet 对应zk的端口,默认是(2181)
- 如果你要部署的是Java作业,检查是否已经打包了一个*-app.zip的包。详情参见Saturn作业开发指引之Java作业
2 开始部署
2.1 设置环境变量
设置saturn console uri:
export VIP_SATURN_CONSOLE_URI=http://localhost:9088
2.2 获取executor
从https://github.com/vipshop/Saturn/releases 中点击链接获取最新版本的’Executor Zip File’,
将得到一个saturn-executor-{version}-zip.zip的文件。
将zip文件放到你期望的安装路径下(称作$TARGET_DIR),并解压,得到saturn-executor-{version}的目录。目录结构如下:
saturn-executor-{version}-/bin-/demo_script-/lib-/logs-saturn-executor.jar
/bin: 存放executor的启动脚本(saturn-executor.sh)
/bin: 存放executor的启动脚本(saturn-executor.sh)
/demo_script: 一些演示用的脚本(4个php脚本)
/lib: 存放executor的依赖及第三方jar包
/logs: 已经不作使用,将被废弃
saturn-executor.jar:executor启动的主jar
2.3 作业部署
2.3.1 部署Shell作业
把开发好的shell脚本放在某一个目录,比如/apps/saturn/shell目录,然后通过 console 添加作业即可。
请确保这些脚本有足够的权限被执行。
2.3.2 部署Java作业
将开发并打包好的**-app.zip在/saturn-executor-{version}同一级目录进行解压。目录结构见下图。
Executor启动时会扫描这个app目录,并加载这个目录下(含子目录)所有的jar包。
saturn-executor-{version}-/bin-/demo_script-/lib-/logs-saturn-executor.jar
app-/lib- abc.jar- xyz.jar
2.3 网卡名字的修改
确保你的网卡名字包含bond0或者eth0上。否则在启动时报一下错误:
getCachedAddressException:java.lang.Exception: wrong with get ip cause by could not read any info from local host, bond0 and eth0
如果没有bond0或者eth0,你需要修改一下你的网卡名字。
2.4 启动executor
cd saturn-executor-{version}/bin
#修改权限
chmod a+x saturn-executor.sh
#启动
./saturn-executor.sh start -n www.abc.com -e executor_001
参数描述:
参数 | 必填 | 描述 | 默认值 |
---|---|---|---|
-n | Y | 本executor所属的namespace | |
-e | N | 本executor的唯一ID,如果不指定则使用hostname | hostname |
-env | N | 运行模式,可取值为dev/product。 dev模式下-Xmx为512m,product模式下-Xmx为2G | product |
-d | N | 业务library所在目录 | $TARGET_DIR/app |
-r | N | 运行模式,前台(foreground)或者后台(background),空代表background模式。 | 空 |
-t | N | 本executor启动的超时时间,单位为秒 | 120 |
-jmx | N | jmx端口 | 24501 |
-sld | N | saturn日志目录 | /apps/logs/saturn/{namespace}/{executorname}-{ip}/ |
jvmArgs | N | 需要添加的JVM参数 | 空 |
VIP_SATURN_INIT_JOB_BY_GROUPS (-D或环境变量) | N |
如果Executor机器设置了这个变量,则该Executor只能启动该域下属于该groups的作业; 否则,可以启动该域下全部作业。 多值用逗号分隔groups1,groups2 |
无 |
VIP_SATURN_START_TIMEOUT | N | 本executor的启动超时时间,单位为秒 | 120 |
VIP_SATURN_RUNNING_IP (-D或环境变量) |
N | 本executor的运行ip(在某些mac上没有eth0和bond0时启动会报错,通过配置hosts或者配置该环境变量可以解决此报错问题) | |
VIP_SATURN_RUNNING_HOSTNAME | N | 本executor的运行主机名 |
下面展示一个成功启动的console 输出:
$ ./saturn-executor.sh start -n www.abc.com -e executor-0134The java version is 1.8.0_121
Log redirects to /apps/logs/saturn/www.abc.com/executor-0134-xxx.xxx.xxx.xxx
The jmx port is 24501.Saturn executor start successfully, running as process:18332.
如果启动失败,根据console提示的路径查看saturn-executor.log。
2.5 单台物理机启动多个executor
建议在一台物理机启动一个executor。 如果想在单台物理机启动多个executor,建议采用以下步骤:
将saturn-executor-{version} copy到多个
在启动这些executor时,分别指定不同executorname和JMX端口,命令如下:
$ ./saturn-executor.sh start -n www.abc.com -e executor-001 -jmx 24502
注意:executor name,默认是hostname;jmx端口默认是24501
2.6 FAQ
Q:新作业部署时,流程是怎么样?
A:参见“灰度发布”一章。
快速学习-Saturn Executor部署相关推荐
- 快速学习-Saturn Console部署
Saturn Console部署 这一节会介绍如何从零开始安装和部署Saturn Console. 1 部署前准备 1.1 硬件准备 Linux服务器至少1台,服务器数量视乎计划的Saturn Con ...
- 快速学习-Saturn Executor运维
Executor运维 Saturn 3.0.0致力于让用户做到自运维:一方面为用户trouble shooting提供便利,另外一方面希望作为一站式平台去管理executor. 下面讲讲Saturn自 ...
- 快速学习-Saturn创建作业
创建作业 1 登录 使用浏览器访问 saturn.vip.vip.com.如果启用了登录功能(-Dauthentication.enabled=true),会被重定向到CAS进行身份认证. 为了获得最 ...
- 快速学习-Saturn性能测试报告
Saturn性能测试报告 1. 测试目的 评估zk集群可以负荷的域数量 zk参数调优 2. 测试环境 ZooKeeper Ensemble (5) Version: 3.4.6 server id r ...
- Saturn Executor部署过程
1.配置环境变量VIP_SATURN_CONSOLE_URI 内容如下: 进行了上述的配置后,记得刷新配置文件,使配置立即生效.source /etc/profile 2.准备 executor 从h ...
- 快速学习-Saturn FAQ
FAQ Q: Executor启动失败怎么办? A: executor启动失败,首先看提示是否参数问题,是否端口重用,如果都不是,根据控制台提示的路径,查看saturn-nohup.out的日志. 日 ...
- 快速学习-Saturn用户的认证与授权
用户的认证与授权 从3.0.1起,Saturn Console支持用户的认证与授权. 1 认证 Saturn3.0.0开始,Console支持用户登录认证.但用户注册功能不在Scope里面,这意味着用 ...
- 快速学习-Saturn(英文版入门指引)
Saturn Saturn is a platform created by VIP.com(唯品会) to provide a distributed, fault tolerant and hig ...
- 新手搭ssm要多久_如何快速学习ssm 框架?
要快速学习SSM框架,你需要一套学习曲线平滑的教程 1. 很快可以看到效果 SSM框架这种教程的,在百度或者git上一搜一大把,不过很遗憾,大部分你照着上面的流程做,是做不出来的,要么缺少包,要么配置 ...
最新文章
- 用筛法求之N内的素数。(N 1000000)
- CachedNetworkImage 图片缓存
- 理解TCP为什么需要进行三次握手(白话)(转载)
- GCD Game HDU - 7061
- 扫盲丨关于区块链你需要了解的所有概念
- Eureka和Zookeeper注册中心的区别
- [Android] 环境优化配置Android Studio发展NDK
- ncl批量处理多个nc文件_Python办公自动化批量处理文件,一学就会
- [运维]PowerShell简体中文编码转换
- 3027 - Corporative Network
- 绿色版Tomcat的配置
- 网易2017笔试 编程题目
- 分支限界 java_0035算法笔记——【分支限界法】布线问题
- 屌丝、小白怎么拿国内巨头offer
- Python设置excel单元格格式
- 电脑一会,电脑一会黑屏一会正常怎么回事
- 哪个品牌台灯护眼效果好?分享被央视315表扬的护眼灯
- 干货干货~C语言版学生成绩管理系统【数据结构课程设计,百行代码实现功能强化版(内附源码)】
- python分三行将你的学号姓名班级_python第三次作业——叶耀宗
- 超详细注释NLP Question answering竞赛(印度语和泰米尔语)
热门文章
- 外链代发切勿用群发器
- 欧姆龙PLC CP1E如何实现远程上下载和编程调试?
- 施密特正交化单位化目的:AA(转置)=E 得到Q(转置)=Q(逆); 单位化,正交化目的; 相似矩阵理解; 为什么特征向量构成P; 余子式和代数余子式; 特征向量; 对角化; 标准化;
- python3 [爬虫入门实战]爬虫之mongoDB数据库的安装配置与可视化
- 个人对java的认识_JAVA自学的个人看法
- UG二次开发加载dll,ufusr出错,Failed to load image
- 如何查看python代码中的数据集 按住data鼠标右键_Python小练习——电影数据集TMDB预处理...
- 分享自己做的一个词典小软件
- 【Python】Python之禅
- 基于启发式蝙蝠算法、粒子群算法、花轮询算法和布谷鸟搜索算法的换热器PI控制器优化(Matlab代码实现)