SpringXD集群搭建

来源:互联网 发布:xp电脑连接网络打印机 编辑:程序博客网 时间:2024/05/16 11:03

最近一直在看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 0
原创粉丝点击