简单的说明:

  1. Otter支持按表字段配置同步任务, 同步性能取决目标数据库可接受的load并发度 + 地域之间的网络延迟。
  2. 数据涉及网络传输,S/E/T/L几个阶段会分散在2个或者更多Node节点上,以确保高可用,多个Node之间通过zookeeper进行协同工作 (一般是Select和Extract在一个机房的Node,Transform/Load落在另一个机房的Node)
  3. node节点可以有failover / loadBalancer. (每个机房的Node节点,都可以是集群,一台或者多台机器)
  4. 典型管理系统架构,manager(web管理)+node(工作节点),manager运行时推送同步配置到node节点,node节点将同步状态反馈到manager上。但同步数据不依赖于manager节点。
  5. 基于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管理】中添加

topic is not present单节点 单节点和多节点_otter-node

添加完成之后显示如下:

topic is not present单节点 单节点和多节点_zookeeper_02

5.otter-mananger管理台添加node,并获取唯一序号

依次添加node信息,记住序号的的数字

topic is not present单节点 单节点和多节点_otter_03

topic is not present单节点 单节点和多节点_otter_04

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已启动成功了。

topic is not present单节点 单节点和多节点_zookeeper_05

 

至此otter-node已经搭建好了,可以开始使用了!