数据同步利器-otter的搭建使用详细说明

环境准备

环境准备:

  • zookeeper-3.4.5
  • jdk1.8
  • otter v4.2.14(最新的v4.2.16还是alpha版本,官网不建议用v4.2.15版本)
  • Mysql 5.6.22

Otter manager搭建

①. otter manager依赖于mysql进行配置信息的存储,所以需要预先安装mysql,并初始化otter manager的系统表结构
a. 安装mysql[略]
b. 初始化otter manager系统表:

下载otter manager的系统表结构
wget https://raw.github.com/alibaba/otter/master/manager/deployer/src/main/resources/sql/otter-manager-schema.sql 

数据同步利器-otter的搭建使用详细说明_第1张图片

载入[进入mysql]
source otter-manager-schema.sql

数据同步利器-otter的搭建使用详细说明_第2张图片

②. 整个otter架构依赖了zookeeper进行多节点调度,所以需要预先安装zookeeper,不需要初始化节点,otter程序启动后会自检。

安装otter manager

①. 下载otter manager
直接下载 ,可访问:https://github.com/alibaba/otter/releases ,会列出所有历史的发布版本包下载方式,比如以x.y.z版本为例子:

wget https://github.com/alibaba/otter/releases/download/otter-x.y.z/manager.deployer-x.y.z.tar.gz

②. 解压缩

mkdir /export/servers/otter_manager
tar -zxvf manager.deployer-4.2.14.tar.gz -C /export/servers/otter_manager/

③. 配置修改

vi otter.properties
## otter manager domain name #修改为正确访问ip,生成URL使用
otter.domainName = 192.168.75.14
## otter manager http port
otter.port = 8080
## jetty web config xml
otter.jetty = jetty.xml

## otter manager database config #修改为正确数据库信息
otter.database.driver.class.name = com.mysql.jdbc.Driver
otter.database.driver.url = jdbc:mysql://192.168.75.14:3306/otter
otter.database.driver.username = root
otter.database.driver.password = 123456

## otter communication port
otter.communication.manager.port = 1099

## otter communication pool size
otter.communication.pool.size = 10

## default zookeeper address #修改为正确的地址,手动选择一个地域就近的zookeeper集群列表
otter.zookeeper.cluster.default = 192.168.75.14:2181
## default zookeeper sesstion timeout = 60s
otter.zookeeper.sessionTimeout = 90000

## otter arbitrate connect manager config
otter.manager.address = ${otter.domainName}:${otter.communication.manager.port}

## should run in product mode , true/false
otter.manager.productionMode = true

## self-monitor enable or disable
otter.manager.monitor.self.enable = true
## self-montir interval , default 120s
otter.manager.monitor.self.interval = 120
## auto-recovery paused enable or disable
otter.manager.monitor.recovery.paused = true
# manager email user config

④. 准备启动

sh startup.sh

⑤. 查看日志

cat logs/manager.log

数据同步利器-otter的搭建使用详细说明_第3张图片

出现类似日志,代表启动成功

⑥. 验证
访问: http://192.168.75.14:8080/,出现otter的页面,即代表启动成功
数据同步利器-otter的搭建使用详细说明_第4张图片
访问:http://192.168.75.14:8080/login.htm,初始密码为:admin/admin,即可完成登录. 目前:匿名用户只有只读查看的权限,登录为管理员才可以有操作权限
数据同步利器-otter的搭建使用详细说明_第5张图片

⑦. 关闭

sh stop.sh

Otter node搭建

①. 下载otter node
直接下载 ,可访问:https://github.com/alibaba/otter/releases ,会列出所有历史的发布版本包下载方式,比如以x.y.z版本为例子:

wget https://github.com/alibaba/otter/releases/download/otter-x.y.z/node.deployer-x.y.z.tar.gz

②. 解压缩

mkdir /export/servers/otter_node
tar -zxvf node.deployer-4.2.14.tar.gz -C /export/servers/

③. 配置修改
a. nid配置 (将环境准备中添加机器后获取到的序号,保存到conf目录下的nid文件,比如我添加的机器对应序号为1)

echo 1 > conf/nid
修改 otter.properties配置
# otter node root dir
#otter.nodeHome = ${user.dir}/../
otter.nodeHome = /export/servers/otter_node

## 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 = 90s
otter.zookeeper.sessionTimeout = 90000

## otter communication pool size
otter.communication.pool.size = 10

## otter arbitrate & node connect manager config
otter.manager.address = 192.168.75.14:1099

④. 准备启动

sh startup.sh

⑤. 查看日志

cat logs/node/node.log

在这里插入图片描述
看到如下日志,代表node启动完成.

⑥. 验证
访问: http://192.168.75.14:8080/node_list.htm,查看对应的节点状态,如果变为了已启动,代表已经正常启动。(ps,如果是未启动,会是一个红色高亮),如下图:
数据同步利器-otter的搭建使用详细说明_第6张图片
⑦. 关闭

sh stop.sh

Otter单向同步配置

环境准备
  • otter node会受otter manager进行管理,所以需要预先安装otter manager
  • 完成manager安装后,需要在manager页面为node定义配置信息,并生一个唯一id.

#####①. 添加zookeeper
首先确保你的zookeeper已启动成功。
otter依赖zookeeper,访问manager页面的机器管理页面,选择菜单进入“机器管理→zookeeper管理”页面:
数据同步利器-otter的搭建使用详细说明_第7张图片

点击添加进入“添加Zookeeper集群”页面
数据同步利器-otter的搭建使用详细说明_第8张图片

#####②. 添加node

Zookeeper添加成功后,进入“机器管理→Node管理”页面:
数据同步利器-otter的搭建使用详细说明_第9张图片

点击添加进入添加机器页面
数据同步利器-otter的搭建使用详细说明_第10张图片

  • 机器名称:可以随意定义,方便自己记忆即可
  • 机器ip:对应node节点将要部署的机器ip,如果有多ip时,可选择其中一个ip进行暴露. (此ip是整个集群通讯的入口,实际情况千万别使用127.0.0.1,否则多个机器的node节点会无法识别)
  • 机器端口:对应node节点将要部署时启动的数据通讯端口,建议值:2088
  • 下载端口:对应node节点将要部署时启动的数据下载端口,建议值:9090
  • 外部ip :对应node节点将要部署的机器ip,存在的一个外部ip,允许通讯的时候走公网处理。
  • zookeeper集群:为提升通讯效率,不同机房的机器可选择就近的zookeeper集群.
  • node这种设计,是为解决单机部署多实例而设计的,允许单机多node指定不同的端口

####配置一个同步任务
搭建一个数据库同步任务,源数据库必须开启binlog,并且binlog_format为ROW,即在mysql的配置文件加上以下两行

  log-bin=mysql-bin
  binlog-format=ROW

如果源库已开启binlog,通过mysql客户端命令show master status查看
数据同步利器-otter的搭建使用详细说明_第11张图片

#####添加canal

Otter使用canal开源产品获取数据库增量日志数据,可以把cannal看作是源库的一个伪slave。
原理: canal模拟mysql slave的交互协议,伪装自己为mysql slave,向mysql master发送dump协议,mysql master收到dump请求,开始推送binarylog给slave(也就是canal), canal解析binary log对象(原始为byte流)。

#####①. 在Otter Manager“配置管理-canal配置”页面点击添加:
数据同步利器-otter的搭建使用详细说明_第12张图片
#####②. 进入添加cannal页面:
数据同步利器-otter的搭建使用详细说明_第13张图片
Node集成了cannal,所以不需要单独下载cannal;

      Cannal 存储机制分为memory和file,也可以在运行模式选项选择作为独立服务运行;

      勾选其他参数设置,可以设置cannal的服务端口;

      必须配置位点信息,否则如果你的数据库已有存量数据,第一次运行时需要等待比较长的时间,可以通过连接源库客户端执行sql获取,如下:

#####添加数据源
数据同步利器-otter的搭建使用详细说明_第14张图片

数据同步利器-otter的搭建使用详细说明_第15张图片
源库和目标库的schema需要一致,不然无法执行ddl语句

#####添加数据表配置
“配置管理-数据表配置”进入数据表管理页面:
数据同步利器-otter的搭建使用详细说明_第16张图片
table示例说明:

  • 单表配置:alibaba.product
  • 分表配置:alibaba[1-64].product , alibaba.product[01-32]
  • 正则配置:(.).(.)
  • schema name和table name都设置成.*表示全库同步
添加一个channel

如下图,点击添加按钮进入添加channel页面,输入Channel Name后保存,则成功添加一个channel;
数据同步利器-otter的搭建使用详细说明_第17张图片

#####配置一个pipeline
添加channel成功后,点击Channel名字,进入Pipeline管理页面,添加一个pipeline:
在这里插入图片描述
进入添加pipeline页面
数据同步利器-otter的搭建使用详细说明_第18张图片
如上图填好所需信息,勾选高级设置,可以选是否过滤ddl同步等选项,点击保存,成功后会返回Pipeline管理页面。

#####添加映射关系

添加pipeline成功后,点击Pipeline名字
数据同步利器-otter的搭建使用详细说明_第19张图片
进入映射关系列表页面,点击添加
数据同步利器-otter的搭建使用详细说明_第20张图片

点击保存返回映射关系列表页面,如果源数据表是只同步一个表可以点击下一步,选择需要同步的字段映射关系;

#####启用同步
以上配置,一个简单的同步任务就完成了,返回Channel管理页面
数据同步利器-otter的搭建使用详细说明_第21张图片
点击“启用”,运行状态就变为“运行”;
数据同步利器-otter的搭建使用详细说明_第22张图片
现在可以新增一个表,插入记录,查看数据是否同步过去了。

点击Channel名字,进入Pineline管理页面,可点击“监控”查看同步状态
注意:如果master库没有设置server-id会报错,如下所示:在master的my.cnf加上server-id就行了。
在这里插入图片描述

你可能感兴趣的:(java)