SpringXD集群搭建

最近一直在看SpringXD的相关东西,发现这玩意儿在国内用的真不多,资料忒少,百度搜索出来的基本上都是介绍这个框架的。折腾了一周,查了好多资料,看官方文档,才终于慢慢的把这个集群给搭建起来。仔细想来SpringXD跟Hadoop有点类似,Hadoop中有NameNode,DataNode,以及集群通信方式RPC;SpringXD有admin,container以及signalnode,通信方式通过redis或者MQ。下面介绍安装过程:

一、安装环境

服务器:CentOS6.5(3台)

java版本:jdk1.8

二、相关依赖

安装XD的集群需要先了解XD的工作方式,XD在我的工作中主要用来调度SpringBatch的任务,XD执行SpringBatch的任务是创建job,然后执行job,单机模式下用的是自带的数据库HSQLDB来存储job执行的相关信息,而在集群模式下则需要使用其他的RDBMS作为统一的job执行信息存储媒介。集群调度时才用的通讯方式如前所述为MQ或者redis,由于对MQ不太会使,所以本例中用的是redis,然后就是集群高可靠性常用的工具-zookeeper。所以,需要下载:

  • MySql
  • Redis
  • Zookeeper

三、安装依赖

分别安装mysql,redis,zookeeper

1、安装mysql

http://blog.csdn.net/liumm0000/article/details/18841197

2、安装redis

http://www.cnblogs.com/_popc/p/3684835.html

3、zookeeper集群搭建

http://blog.csdn.net/gobitan/article/details/8659175

按照以上提供的链接地址安装完成之后分别启动mysql,redis和zookeeper集群。

四、XD集群搭建

1、下载SpringXD的安装文件

wget http://repo.spring.io/libs-release/org/springframework/xd/spring-xd/1.2.0.RELEASE/spring-xd-1.2.0.RELEASE-dist.zip

2、放到/opt/springxd目录下并解压

unzip  spring-xd-1.2.0.RELEASE-dist.zip

3、修改配置文件

vi   spring-xd-1.2.0.RELEASE/xd/servers.yml
配置redis:

redis:
      headers:
        #comman-delimited list of additional (string-valued) header names to transport
      default:
            # default bus properties, if not specified at the module level
        backOffInitialInterval:    1000
        backOffMaxInterval:        10000
        backOffMultiplier:         2.0
        concurrency:               1
        maxAttempts:               3	

spring:
  redis:
   port: 6379
   host: 192.168.12.175
#   sentinel:
#     master: mymaster
#     nodes: 127.0.0.1:26379,127.0.0.1:26380,127.0.0.1:26381
配置zookeeper:

zk:
  namespace: xd
  client:
     connect: 192.168.12.174:2181
     sessionTimeout: 60000
     connectionTimeout: 30000
     initialRetryWait: 1000
     retryMaxAttempts: 3
配置mysql:
spring:
  datasource:
    url: jdbc:mysql://192.168.12.174:3306/xdjob
    username: root
    password: 1234
    driverClassName: com.mysql.jdbc.Driver
    validationQuery: select 1

配置执行JOB时的集群共享目录:

xd:
  customModule:
    home: file:///opt/springxd/share/	
这个步骤的配置是当用户创建SpringBatch的job时,XD用于存放源文件的地方,集群方式下,job的执行会放在container中,而admin则负责调度,不同于hadoop的任务分发机制,XD的执行jar包无法直接拷贝至container所在的服务器执行路径。官方的建议是使用NFS,即网络文件共享,因此这里配置一个admin用于存放job源文件的目录,而后将admin的这个目录设置成网络共享,那么admin对本机该文件夹的操作都会在对应的container上产生一个副本,那个副本就是container执行job时放jar文件的目录。下一步会配置NFS。

4、配置NFS

创建目录:

mkdir	/opt/springxd/share/

编辑exports文件:

vi  /etc/exports
在文件末尾加上两行:

/opt/springxd/share       192.168.12.174(rw,sync,no_root_squash)
/opt/springxd/share       192.168.12.175(rw,sync,no_root_squash)
这是配置给174和175两台服务器能够挂载本机上的该目录

配置生效:

exportfs -r

重启NFS服务:

service nfs restart
174和175服务器挂载该目录:

mount -t  nfs 192.168.12.176:/opt/springxd/share/ opt/springxd/share

5、xd文件远程拷贝至其他服务器

scp -r root@192.168.12.176:/opt/springxd/ /opt/springxd/
6、启动集群

需要分别启动admin和container

176为admin,174和175位container,直接运行每台机器上/opt/springxd/xd/bin目录下的xd-admin和xd-container即可启动。然后可通过web页面查看集群状况。由于我的admin启动是在176服务器上,所以直接在浏览器中打开

http://192.168.12.176:9393/admin-ui
以下是集群container截图:


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值