由于业务需求,我们数据仓库定时器太多了,又难管理,每次要更改定时器都得重启服务实在麻烦。上面又让换个框架,给了个LTS,今天开始学习哈。有问题就记录下来,对于一个资质一般的妹子而言,写程序简直太难了大哭大哭大哭。LTS网站内容很全,可是还是没教会我,是我太笨了么?
github地址: https://github.com/ltsopensource/light-task-scheduler
oschina地址: http://git.oschina.net/hugui/light-task-scheduler
1、导入maven项目
刚开始看着下载的文档,按照一般做法Import项目发现不行,然后又折腾半天,看了pom.xml文件都比较特殊,项目都有parent项目,所以这里应该是直接导入maven项目,用maven管理比较方便。成功导入。导入之后的项目结构如图。
2、执行测试用例
运行给的api例子,测试JobTraker,这里用到了jdbc,我把jdbc的配置地址改成可用的地址。运行,结果报错如下:
[INFO ] [15:45:27] org.apache.zookeeper.ZooKeeper - Initiating client connection, connectString=127.0.0.1:2181 sessionTimeout=30000 watcher=org.I0Itec.zkclient.ZkClient@b8cabe
[INFO ] [15:45:27] org.apache.zookeeper.ClientCnxn - Opening socket connection to server 127.0.0.1/127.0.0.1:2181. Will not attempt to authenticate using SASL (unknown error)
[WARN ] [15:45:28] org.apache.zookeeper.ClientCnxn - Session 0x0 for server null, unexpected error, closing socket connection and attempting reconnect
java.net.ConnectException: Connection refused: no further information
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
at sun.nio.ch.SocketChannelImpl.finishConnect(Unknown Source)
at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:350)
at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1068)
这个错误的意思是连接服务失败了,zookeeper的地址有问题,需要一个zookeeper服务!!!!!我选择在内网的一台服务器192.168.100.214上装了一个zookeeper,这里还需要数据库的配置,我把LTS的数据库放在192.168.100.213
3、安装部署zookeeper
zookeeper的官方网站下载包 http://apache.fayea.com/zookeeper/
我下的版本是zookeeper-3.4.6.tar.gz
上传至服务,解压。
通过努力,修改配置文件,原来的是zoo-sample.cfg,复制创建一个zoo.cfg,修改dataDIr和dataLogDir路径(其实也可以不修改的),zoo.cfg内容如下:
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes. 自己配置 没有的话创建一个
dataDir=/home/hadoop/zookeeper/data
dataLogDir=/home/hadoop/zookeeper/log
# the port at which the clients will connect
clientPort=2181
然后启动,zkServer.sh start,启动成功了,太开心了。也可以再启动一个client,zkCli.sh -server localhost:2181,测试连接成功了。
4、运行lts-example
再来测试一下lts-example中的类,都能够顺利启动成功,JobTrakerTest日志如下:
[INFO ] [18:06:33] com.lts.core.cluster.SubscribedNodeManager - [LTS] Add {
"address":"192.168.100.115:35001","available":true,"clusterName":"test_cluster","createTime":1461146782683,"group":"lts","hostName":"gyhdomain","httpCmdPort":8719,"identity":"3A7C23C32FD84A59B835CE554E685E32","ip":"192.168.100.115","nodeType":"JOB_TRACKER","port":35001,"threads":2}, lts version: 1.6.6-SNAPSHOT, current host: 192.168.100.115
[INFO ] [18:06:33] com.lts.core.cluster.MasterElector - [LTS] Current node become the master node:{
"address":"192.168.100.115:35001","available":true,"clusterName":"test_cluster","createTime":1461146782683,"group":"lts","hostName":"gyhdomain","httpCmdPort":8719,"identity":"3A7C23C32FD84A59B835CE554E685E32","ip":"192.168.100.115","nodeType":"JOB_TRACKER","port":35001,"threads":2}, lts version: 1.6.6-SNAPSHOT, current host: 192.168.100.115
[INFO ] [18:06:33] com.lts.jobtracker.support.checker.FeedbackJobSendChecker - [LTS] Feedback job checker started!, lts version: 1.6.6-SNAPSHOT, current host: 192.168.100.115
[INF