阿里巴巴分布式调度框架LTS的集群部署总结

Owen Jia 2019年02月14日 689次浏览

这篇文章的目的就是实现LTS从单机到集群的部署。

公司遗留的问题LTS部署在一台机器上,随着业务不断的增大这台服务器压力越来越大,首先想到的就是加一台服务器疏解压力。

关键知识点

记得官网说LTS的jobclient\jobtracker\tasktracker节点都是无状态的,所以天生支持多节点集群方式部署。分析发现一般的业务场景jobclient\tasktracker都是在业务服务内部集成,正在分成任务接收、管理、分配支持的只有jobtracker在做。这样一来目标就很清晰了,增加jobtracker节点数量。

在部署目录config下有个默认的目录zoo,结构如下:

/zoo/
jobtracker.cfg
log4j.properties
lts-monitor.cfg

jobtracker.cfg内容如下:

registryAddress=zookeeper://xxx.xx.xx.xx:2181

# JobTracker的监听端口
listenPort=3502

# 集群名称
clusterName=isesol_cluster

# LTS业务日志, 可选值 console, mysql, mongo
configs.job.logger=mysql

# zk客户端,可选值 zkclient, curator
configs.zk.client=zkclient

# ---------以下是任务队列配置-----------
# 任务队列,可选值 mysql, mongo
configs.job.queue=mysql

# ------ 1. 如果是mysql作为任务队列 ------
configs.jdbc.url=jdbc:mysql://xxx.xx.xx.xxx:8066/lts
configs.jdbc.username=lts123
configs.jdbc.password=lts123

配置多个节点步骤

  1. 将整个部署目录整体复制到另一个服务器上,目录权限分配好。

  2. 将目录/lts/config/zoo/jobtracker.cfg文件中listenPort=3502的端口修改,保证可以使用(一般复制不需要改)。同时需要保证zookeeper和mysql的ip&port配置都是正确的,一般公司都是一样的。

  3. 在/lts/bin的目录下有个启动脚本jobtracker.sh,执行命令:./jobtracker.sh zoo start

  4. 检查/lts/logs目录下是否有jobtracker-zoo.out日志,zoo这个名字会更加zoo目录名自动生成,也就是会随着它一起改变。

总结

LTS的节点:JobClient,JobTracker,TaskTracker,三个是无状态,可以支持多节点集群部署。

在一台服务器上启动多个jobtracker只需要将zoo目录复制一份改个名字,把里面的jobtracker.cfg中端口号配置不冲突即可。

lts-admin不支持多节点,只能启动一个服务。

作者:Owen Jia
欢迎关注他的博客:Owen Blog