淘宝官方参考手册:http://code.taobao.org/p/tbschedule/wiki/index/
http://www.jianshu.com/p/e66aa342f0d1
1.TBSchedule项目其实可以分为两部分:
①TBSchedule管理控制台。负责监控,监控任务执行状态
②实际执行job的客户端程序
在实际使用时,首先要启动zookeeper,然后部署TBSchedule web界面的管理控制台,最后启动实际执行job的客户机器。这里zookeeper并不实际控制任务调度,它只是负责与N台执行job的客户端通讯,协调,管理,监控这些机器的运行信息。司机分配任务的是TBSchedule管理控制台,控制台从zookeeper获取job的运行信息。
TBSchedule通过控制ZNode的创建,修改,删除来间接控制Job的执行,执行Job的客户端会监听他们对应ZNode的状态更新事件,从而达到通过 TBSchedule控制Job执行的目的。
一,部署zookeeper(在这里为了简单安装的单机模式 ,集群模式参考我的另外一篇博客)
下载地址:http://zookeeper.apache.org/releases.html#download,在此我下载的是zookeeper-3.3.6.tar.gz 。
1.下载完成后解压到/application/software目录下面
2.建立软连接ln -s /application/software/zookeeper-3.3.6 /opt/zookeeker
3.将 /conf目录下的zoo_sample.cfg更名为zoo.cfg,因为zookeeper启动时会在这个目录下找zoo.cfg读取配置信息。这个文件里有几个重要的参数需要说明一下:
tickTime=2000
定义时间计量单位。这里表示一个tick为2秒。以后在配置时间相关的东西时,都是以tick为单位的。
dataDir=/opt/zookeer/data
定义快照(snapshot)文件的存储位置。zookeeper会将节点信息定时写入到这个目录中。这个目录必须存在,否则启动时会报错。
clientPort=2181
指定客户端连接端口。 zookeeper会在这个端口监听连接请求。
server.1=127.0.0.1:2000:3000
这个参数仅在集群部署时起作用。格式为:server.id=host:port:port。id表示服务器的唯一标识,一般从1开始计数。第一个port表示zookeeper集群机器之间的通讯端口,第二个port表示当集群机器在选举leader时使用的通讯端口。只有当集群第一次启动,或master机崩溃时,才会进行leader选举。
4.配置完成后,切换到/bin目录,执行:./zkServer.sh start
即可启动zookeeper,默认会在后台运行,如果想在前端运行,需要执行:./zkServer.sh start-foreground
注意:Zookeeper所在的linux服务器与TBSchedule客户端代码所在的机器时间要一致,简单起见可以使用linux命令设置时间日期
二,部署ScheduleConsole
下载地址:http://code.taobao.org/p/tbschedule/wiki/index/ ,在此我直接下载的ScheduleConsole.war
ScheduleConsole就是个用ser