阿里 otter搭建部署

IP:10.10.6.172 部署:mysql目标库,mysql源数据库
IP:10.10.6.173 部署:zookeeper,manager,node,canal (也都部署到源库服务器上)

由于otter进行数据库同步,目前仅支持row,所以需要把源库的binlog_format改为ROW

log-bin=mysql-bin
expire_logs_days=3
binlog_format=ROW
character-set-server=utf8
#default-character-set=utf8
collation-server=utf8_general_ci   #设置mysql的字符集

下载ddl同步策略表

https://github.com/alibaba/otter/tree/master/node/deployer/src/main/resources/sql/otter-system-ddl-mysql.sql

下载manager系统表

 wget https://raw.github.com/alibaba/otter/master/manager/deployer/src/main/resources/sql/otter-manager-schema.sql #导入otter数据库中

导入系统表和otter用户

mysql>source otter-manager-schema.sql
mysql>source otter-system-ddl-mysql.sql
mysql>CREATE USER canal IDENTIFIED BY 'canal; 
mysql>GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%';
mysql>GRANT ALL PRIVILEGES ON *.* TO 'canal'@'%';
mysql>FLUSH PRIVILEGES;

otter为纯java编写(manager,node,canal都为java编写),所以需要安装JDK。
设置java环境变量
vi /etc/profile

export JAVA_HOME=/usr/local/jdk
export JRE_HOME=/usr/local/jdk/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$PATH

source /etc/profile

一、部署zookeeper
下载地址:http://pan.baidu.com/s/1miC2j4O
官网地址:https://zookeeper.apache.org/

tar zxvf zookeeper-3.4.10.tar.gz
mv zookeeper-3.4.10 /usr/local/zookeeper
cd /usr/local/zookeeper/conf
mv zoo_sample.cfg zoo.cfg
mkdir /usr/local/zookeeper/data

修改zoo.cfg配置文件
vi /usr/local/zookeeper/conf/zoo.cfg

dataDir=/usr/local/zookeeper/data
autopurge.purgeInterval=1

修改bin/zkEnv.sh脚本
vi /usr/local/zookeeper/bin/zkEnv.sh
将ZOO_LOG_DIR="." 修改为ZOO_LOG_DIR="/usr/local/zookeeper/data"
将ZOO_LOG4J_PROP=”INFO,CONSOLE” 修改为ZOO_LOG4J_PROP="INFO,ROLLINGFILE"

修改bin/zkServer.sh脚本:
vi /usr/local/zookeeper/bin/zkServer.sh
将ZOOBIN="${BASH_SOURCE-$0}" 修改为ZOOBIN=`readlink -f "${BASH_SOURCE-$0}"`

修改bin/zkCli.sh脚本:
vi /usr/local/zookeeper/bin/zkCli.sh
将ZOOBIN="${BASH_SOURCE-$0}" 修改为ZOOBIN=`readlink -f "${BASH_SOURCE-$0}"`

建立软连接
ln -s /usr/local/zookeeper/bin/zkServer.sh /usr/local/bin/zk-server
ln -s /usr/local/zookeeper/bin/zkCli.sh /usr/local/bin/zk-cli

echo 1 > /usr/local/zookeeper/data/myid

启动:zk-server start
关闭:zk-server stop

二、部署manager
下载地址:http://pan.baidu.com/s/1i5aEEw9
官网地址:https://github.com/alibaba/otter/releases

mkdir /usr/local/manager
tar zxvf manager.deployer-4.2.14.tar.gz -C /usr/local/manager

配置修改
vi /usr/local/manager/conf/otter.properties

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

## otter manager database config #修改为正确数据库信息 otter数据库SQL:http://pan.baidu.com/s/1kUEVQEN
otter.database.driver.class.name = com.mysql.jdbc.Driver
otter.database.driver.url = jdbc:mysql://10.10.6.199:3306/otter
otter.database.driver.username = root
otter.database.driver.password = 123456

## default zookeeper address #修改为zookeeper地址信息
otter.zookeeper.cluster.default = 127.0.0.1:2181

启动:/usr/local/manager/bin/startup.sh
关闭:/usr/local/manager/bin/stop.sh

三、部署node
下载地址:http://pan.baidu.com/s/1bpEg2g3
官网地址:https://github.com/alibaba/otter/releases

mkdir /usr/local/node
tar zxvf node.deployer-4.2.14.tar.gz -C /usr/local/node

cd /usr/local/node
echo 1 > conf/nid #需要和manager管理页面的序号相同

配置修改
vi /usr/local/node/conf/otter.properties

## otter arbitrate & node connect manager config #修改manager的地址信息
otter.manager.address = 127.0.0.1:1099

启动:/usr/local/node/bin/startup.sh #先不用启动
关闭:/usr/local/node/bin/stop.sh

node需要aria2

下载地址:http://pan.baidu.com/s/1hsonOA4

rpm -ivh rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
yum -y install aria2

四、部署canal
下载地址:http://pan.baidu.com/s/1jIE8nTc
官网地址:https://github.com/alibaba/canal/releases #下载canal.deployer

mkdir /usr/local/canal
tar zxvf canal.deployer-1.0.24.tar.gz -C /usr/local/canal

只需部署canal无需配置和启动,canal可嵌入式运行,在manager页面管理中设置

五、设置manager管理页面
访问地址:http://10.10.6.173:8080/login.htm 用户名密码都为admin,密码可以系统管理中修改

1、Zookeeper管理
此处输入图片的描述

2、Node管理

此处输入图片的描述

3、数据源配置

此处输入图片的描述
此处输入图片的描述

此处输入图片的描述

4、数据表配置

先在源库和目标库新建一个测试表

SQL代码:

CREATE TABLE `test`.`example` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(32) COLLATE utf8_bin DEFAULT NULL ,
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

此处输入图片的描述
此处输入图片的描述
此处输入图片的描述
此处输入图片的描述

5、canal配置
此处输入图片的描述

6、同步管理
此处输入图片的描述
此处输入图片的描述
此处输入图片的描述
此处输入图片的描述
此处输入图片的描述
此处输入图片的描述
此处输入图片的描述
此处输入图片的描述

7、测试

在源库中增加、修改、删除数据,在目标库中会准实时跟着变更。
无论channel是否运行,点击推送,都可以同步两个数据库的数据
channel配置的两个数据库,一个数据库停止,channel会挂起,点击推送后恢复正常运行

posted @ 2017-11-13 13:18  xiaoganghu  阅读(1356)  评论(1编辑  收藏  举报