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,建议采用以下步骤:

  1. 将saturn-executor-{version} copy到多个

  2. 在启动这些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部署相关推荐

  1. 快速学习-Saturn Console部署

    Saturn Console部署 这一节会介绍如何从零开始安装和部署Saturn Console. 1 部署前准备 1.1 硬件准备 Linux服务器至少1台,服务器数量视乎计划的Saturn Con ...

  2. 快速学习-Saturn Executor运维

    Executor运维 Saturn 3.0.0致力于让用户做到自运维:一方面为用户trouble shooting提供便利,另外一方面希望作为一站式平台去管理executor. 下面讲讲Saturn自 ...

  3. 快速学习-Saturn创建作业

    创建作业 1 登录 使用浏览器访问 saturn.vip.vip.com.如果启用了登录功能(-Dauthentication.enabled=true),会被重定向到CAS进行身份认证. 为了获得最 ...

  4. 快速学习-Saturn性能测试报告

    Saturn性能测试报告 1. 测试目的 评估zk集群可以负荷的域数量 zk参数调优 2. 测试环境 ZooKeeper Ensemble (5) Version: 3.4.6 server id r ...

  5. Saturn Executor部署过程

    1.配置环境变量VIP_SATURN_CONSOLE_URI 内容如下: 进行了上述的配置后,记得刷新配置文件,使配置立即生效.source /etc/profile 2.准备 executor 从h ...

  6. 快速学习-Saturn FAQ

    FAQ Q: Executor启动失败怎么办? A: executor启动失败,首先看提示是否参数问题,是否端口重用,如果都不是,根据控制台提示的路径,查看saturn-nohup.out的日志. 日 ...

  7. 快速学习-Saturn用户的认证与授权

    用户的认证与授权 从3.0.1起,Saturn Console支持用户的认证与授权. 1 认证 Saturn3.0.0开始,Console支持用户登录认证.但用户注册功能不在Scope里面,这意味着用 ...

  8. 快速学习-Saturn(英文版入门指引)

    Saturn Saturn is a platform created by VIP.com(唯品会) to provide a distributed, fault tolerant and hig ...

  9. 新手搭ssm要多久_如何快速学习ssm 框架?

    要快速学习SSM框架,你需要一套学习曲线平滑的教程 1. 很快可以看到效果 SSM框架这种教程的,在百度或者git上一搜一大把,不过很遗憾,大部分你照着上面的流程做,是做不出来的,要么缺少包,要么配置 ...

最新文章

  1. 用筛法求之N内的素数。(N 1000000)
  2. CachedNetworkImage 图片缓存
  3. 理解TCP为什么需要进行三次握手(白话)(转载)
  4. GCD Game HDU - 7061
  5. 扫盲丨关于区块链你需要了解的所有概念
  6. Eureka和Zookeeper注册中心的区别
  7. [Android] 环境优化配置Android Studio发展NDK
  8. ncl批量处理多个nc文件_Python办公自动化批量处理文件,一学就会
  9. [运维]PowerShell简体中文编码转换
  10. 3027 - Corporative Network
  11. 绿色版Tomcat的配置
  12. 网易2017笔试 编程题目
  13. 分支限界 java_0035算法笔记——【分支限界法】布线问题
  14. 屌丝、小白怎么拿国内巨头offer
  15. Python设置excel单元格格式
  16. 电脑一会,电脑一会黑屏一会正常怎么回事
  17. 哪个品牌台灯护眼效果好?分享被央视315表扬的护眼灯
  18. 干货干货~C语言版学生成绩管理系统【数据结构课程设计,百行代码实现功能强化版(内附源码)】
  19. python分三行将你的学号姓名班级_python第三次作业——叶耀宗
  20. 超详细注释NLP Question answering竞赛(印度语和泰米尔语)

热门文章

  1. 外链代发切勿用群发器
  2. 欧姆龙PLC CP1E如何实现远程上下载和编程调试?
  3. 施密特正交化单位化目的:AA(转置)=E 得到Q(转置)=Q(逆); 单位化,正交化目的; 相似矩阵理解; 为什么特征向量构成P; 余子式和代数余子式; 特征向量; 对角化; 标准化;
  4. python3 [爬虫入门实战]爬虫之mongoDB数据库的安装配置与可视化
  5. 个人对java的认识_JAVA自学的个人看法
  6. UG二次开发加载dll,ufusr出错,Failed to load image
  7. 如何查看python代码中的数据集 按住data鼠标右键_Python小练习——电影数据集TMDB预处理...
  8. 分享自己做的一个词典小软件
  9. 【Python】Python之禅
  10. 基于启发式蝙蝠算法、粒子群算法、花轮询算法和布谷鸟搜索算法的换热器PI控制器优化(Matlab代码实现)