遇见未知的Saturn | 第二篇:Saturn 本地环境搭建
前言
- Saturn包括两大部分,Saturn Console和Saturn Executor。
Saturn Console是一个GUI,用于作业/Executor管理,统计报表展现,系统配置等功能。它同时也是整个调度系统的大脑:将作业任务分配到各Executor。
Saturn Executor是执行任务的Worker:按照作业配置的要求去执行部署于Executor所在容器或物理机当中的作业脚本和代码。
环境准备
- JDK 7 or JDK 8
- Maven 3.0.4+
- node.js 8.7.0+
- npm 5.4.2+
- git
1. 代码获取
- 你可以用工具SourceTree|tower 下载到本地,也可以用下边的命令下载到本地。
$ git clone https://github.com/vipshop/Saturn
$ git checkout develop
$ cd saturn-docker
$ chmod +x quickstart.sh
$ ./quickstart.sh|quickstart.bat
2.项目运行
quickstart脚本将做如下事情:
- 启动内嵌的ZooKeeper
- 启动内嵌的Saturn-Console
- 启动内嵌的Saturn-Executor(包含了一个Java作业的实现)
- 在Saturn-Console添加该Java作业
- 启动完成后,您可以访问Saturn-Console:http://localhost:9088
如下图所示:
在首页的search bar点击会出现一个叫做’mydomain’的namespace。点击进去会见到一个名为’SaturnJavaJob’的作业,该作业有5个分片,每隔5秒调度一次。
问题梳理
- 以上是Saturn 官网给出的本地环境搭建,会报错,需要修改几个文件,以mysql为例
- mysql 数据库创建
从这里获取最新的schema.sql。如果希望获得其他版本的schema,可以在源代码的其他tag上获取。 - 修改 saturn-console/src/main/resources/context/applicationContext.xml
- <import resource="applicationContext_datasource_${db.profiles.active:mysql}.xml"></import>
+ <import resource="applicationContext_datasource_mysql.xml"></import>
- 修改 saturn-console/src/main/resources/context/applicationContext_datasource_mysql.xml
- <property name="url" value="${SATURN_CONSOLE_DB_URL:jdbc:mysql://a.b.c.d}" />
- <property name="username" value="${SATURN_CONSOLE_DB_USERNAME:}" />
- <property name="password" value="${SATURN_CONSOLE_DB_PASSWORD:}" />
+ <property name="url" value="${SATURN_CONSOLE_DB_URL}" />
+ <property name="username" value="${SATURN_CONSOLE_DB_USERNAME}" />
+ <property name="password" value="${SATURN_CONSOLE_DB_PASSWORD}" />
- 修改 quickstart/quickstart.sh
- nohup java -Dfile.encoding=UTF-8 -Dsaturn.embeddedZk=true -Dsaturn.embeddedDb=true -Dspring.h2.console.enabled=true -Dsaturn.stdout=true -jar saturn-console/target/saturn-console-master-SNAPSHOT-exec.jar > ./saturn-console.log 2>&1 &
+ nohup java -Dfile.encoding=UTF-8 -DVIP_SATURN_RUNNING_IP=192.168.33.113 -Dsaturn.embeddedZk=true -Dsaturn.embeddedDb=true -DSATURN_CONSOLE_DB_URL=jdbc:mysql://localhost:3306/saturn_console -DSATURN_CONSOLE_DB_USERNAME=root -DSATURN_CONSOLE_DB_PASSWORD=123456 -Dspring.h2.console.enabled=true -Dsaturn.stdout=true -jar saturn-console/target/saturn-console-master-SNAPSHOT-exec.jar > ./saturn-console.log 2>&1 &
DVIP_SATURN_RUNNING_IP 本地机器的IP
DSATURN_CONSOLE_DB_URL mysql 连接地址
DSATURN_CONSOLE_DB_USERNAME mysql 用户名
DSATURN_CONSOLE_DB_PASSWORD myslq 密码
小结:这三个文件的调整,就可以在本地正常的启动项目。
文档地址
代码开源地址
贡献者
- Dylan Xue [email protected]
- Chembo Huang [email protected]
- Xiaopeng He [email protected]
- Juanying Yang [email protected]
- Jeff Zhu [email protected]
- Timmy Hu [email protected]
- Jamin Li [email protected]
- Gilbert Guo [email protected]
- Ivy Li [email protected]
- Lan Jian [email protected]
前人栽树后人乘凉,感谢Saturn贡献者。