简单的说明:
- Otter支持按表字段配置同步任务, 同步性能取决目标数据库可接受的load并发度 + 地域之间的网络延迟。
- 数据涉及网络传输,S/E/T/L几个阶段会分散在2个或者更多Node节点上,以确保高可用,多个Node之间通过zookeeper进行协同工作 (一般是Select和Extract在一个机房的Node,Transform/Load落在另一个机房的Node)
- node节点可以有failover / loadBalancer. (每个机房的Node节点,都可以是集群,一台或者多台机器)
- 典型管理系统架构,manager(web管理)+node(工作节点),manager运行时推送同步配置到node节点,node节点将同步状态反馈到manager上。但同步数据不依赖于manager节点。
- 基于zookeeper,解决分布式状态调度的,允许多node节点之间协同工作
本篇博客介绍的是单机多节点(单服务器多个node节点)的安装步骤,至少要搭建两个node节点,一个作为select机器,一个作为load机器,具体过程如下:
1.安装JDK
otter-node是基于JAVA的,所以要先安装JDK,具体过程参考上一篇博客:
2.创建目录并解压软件到指定目录
#mkdir /opt/otter-node1
#mkdir /opt/otter-node2
#mkdir /opt/otter-node3
#tar -xzvf node.deployer-4.2.14.tar.gz -C /opt/otter-node1
#tar -xzvf node.deployer-4.2.14.tar.gz -C /opt/otter-node2
#tar -xzvf node.deployer-4.2.14.tar.gz -C /opt/otter-node3
3.修改配置,三个节点的配置文件一致
#vim /opt/otter-node1/conf/otter.properties
logback.xml nid otter.properties
[root@otter ~]# cat /opt/otter-node1/conf/otter.properties
# otter node root dir
otter.nodeHome = ${user.dir}/../## otter node dir
otter.htdocs.dir = ${otter.nodeHome}/htdocs
otter.download.dir = ${otter.nodeHome}/download
otter.extend.dir= ${otter.nodeHome}/extend## default zookeeper sesstion timeout = 60s
otter.zookeeper.sessionTimeout = 60000## otter communication payload size (default = 8388608)
otter.communication.payload = 8388608## otter communication pool size
otter.communication.pool.size = 10## otter arbitrate & node connect manager config
otter.manager.address = 192.168.147.129:1099 ## 此端口要与otter-manager的配置文件(otter.properties)中##otter.communication.manager.port 配置的端口一致
说明:
otter.manager.address = 192.168.147.129:1099
此端口要与otter-manager的配置文件(otter.properties)中otter.communication.manager.port 配置的端口一致,如果有多台otter-manager则地址中间要以逗号隔开 192.168.147.129:1099,192.168.147.128:1099
4.otter-manager管理台添加ZK集群(此步骤也可以在搭建完otter-manager之后就进行)
在【机器管理】下的【zookeeper管理】中添加
添加完成之后显示如下:
5.otter-mananger管理台添加node,并获取唯一序号
依次添加node信息,记住序号的的数字
1、机器名称:可以随意定义,方便自己记忆即可
2、机器ip:对应node节点将要部署的机器ip,如果有多ip时,可选择其中一个ip进行暴露. (此ip是整个集群通讯的入口,实际情况千万别使用127.0.0.1,否则多个机器的node节点会无法识别)
3、机器端口:对应node节点将要部署时启动的数据通讯端口,建议值:2088
4、下载端口:对应node节点将要部署时启动的数据下载端口,建议值:9090
5、外部ip :对应node节点将要部署的机器ip,存在的一个外部ip,允许通讯的时候走公网处理。
6、zookeeper集群:为提升通讯效率,不同机房的机器可选择就近的zookeeper集群.
7、node这种设计,是为解决单机部署多实例而设计的,允许单机多node指定不同的端口
6.nid配置
将第四步中获取到的node序号写入nid文件
#echo 1
#echo 2 > /opt/otter-node2/conf/nid
#echo 5
node序号一定要对应好,不然启动的时候会报错,启动失败
7.安装aria2c
由于node间传输数据,如果使用HTTP传输,则默认使用aria2进行传输,故需要安装此工具。
首先要安装依赖包:
yum install bison libssh2-devel expat-devel gmp-devel nettle-devel libuv-devel libssh2-devel zlib-devel c-ares-devel cppunit-devel gnutls-devel libgcrypt-devel libxml2-devel sqlite-devel gettext lzma-devel xz-devel gperftools gperftools-devel gperftools-libs jemalloc-devel gcc
openssl、zlib、zlib-devel 、gnutls、gnutls-devel、gcc
这几个包必须的,其他包错误可忽略
下载链接:
http://ftp.tu-chemnitz.de/pub/linux/dag/redhat/el6/en/x86_64/rpmforge/RPMS/
进行安装
#rpm -ivh aria2-1.16.4-1.el6.rf.x86_64.rpm
8.启动otter-node服务
#sh /opt/otter-node1/bin/startup.sh
#sh /opt/otter-node2/bin/startup.sh
#sh /opt/otter-node3/bin/startup.sh
查看对应的日志文件 cat /opt/otter-node1/logs/node/node.log,如果出现
[main] INFO com.alibaba.otter.node.deployer.OtterLauncher - INFO ## the otter server is running now ......
则表示otter-node启动成功
或者可以登录otter-manager管理台,node的状态为“已启动”也表示otter-node已启动成功了。
至此otter-node已经搭建好了,可以开始使用了!