otter配置详解
说明 : 为了 mysql 中国、美国、欧洲数据库实时同步
文档和地址
项目源码 https://github.com/alibaba/otter 发布的版本 https://github.com/alibaba/otter/releases 文档 https://github.com/alibaba/otter/wiki/Faq
说明
mysql 可以单独为一个服务器上
node 节点也可单独在一个服务器上
zookeeper 也可单独在一个服务器上
manager 也可单独在一个服务器上
启动顺序
1 ) mysql
2 ) zookeeper
3 ) manager
otter.properties 中 otter.zookeeper.cluster.default
配置zookeeper集群 离manager最近的一个 zookeeper server地址:port
4 ) node
例子部署图
配置前准备阶段
1. ) JDK必须 1.6以上版本.
Linux 下载 rpm 包 执行 rpm -ivh 包名.rpm
Ubuntu 下载 tar.gz 执行压缩 tar -zxvf 包名.tar.gz
Ubuntu 需配置环境变量
sudo gedit ~/.profile 在文件末尾加上 export JAVA_HOME=jdk文件路径 export JRE_HOME=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 ~/.profile
//查看java版本
java -version
2. ) 安装mysql 5.1 > 以上版本.
注意:mysql 5.6 安装后 密码初始随机 在 root/ .mysql_secret 文件里
查看隐藏文件 ll –a
my.cnf文件在 /usr/my.cnf目录了, 不在 /etc/my.cnf
配置文件参考如下
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
##最大连接数
max_connections=1000
##服务器字符编码
character_set_server=utf8
##开启log-bin row
log-bin=mysql-bin
binlog_format='row'
##日志默认保存3天
expire_logs_days=3
##必须配置,每个数据库配置的值不一样
server-id=1
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
3. ) 源数据库已开启binlog,并且binlog_format为ROW.
mysql> show variables like '%binlog_format%';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| binlog_format | ROW |
+---------------+-------+
安装aria2 (在 node 节点服务器上安装)
下载地址 http://sourceforge.net/projects/aria2/files/stable/
需要g++ 如没有需要安装 yum install gcc-c++ libstdc++-devel 下载aria2 并解压 之后编译 配置环境 例子如下 mkdir /usr/local/aria2 ./configure --prefix=/usr/local/aria2 make && make install vi /etc/profile PATH=$PATH:/usr/local/aria2/bin source /etc/profile 测试是否安装成功 aria2c 命令
安装zookeeper 并启动
参考地址 http://zookeeper.apache.org/doc/trunk/zookeeperStarted.html#sc_RunningReplicatedZooKeeper
http://blog.csdn.net/shirdrn/article/details/7183503#
主机名称到IP地址映射配置
192.168.0.179 slave-01
192.168.0.178 slave-02
192.168.0.177 slave-03
配置zookeeper conf文件
cp zoo_sample.cfg zoo.cfg
vi zoo.cfg
修改
tickTime=2000
dataDir=/home/otter/zookeeper/data
clientPort=2181
initLimit=5
syncLimit=2
server.1=slave-01:2888:3888
server.2=slave-02:2888:3888
server.3=slave-03:2888:3888
里面的目录没有 需要自行创建 不然无法启动
启动之前还要配置 host文件
vi /etc/hosts
192.168.0.179 slave-01
192.168.0.178 slave-02
192.168.0.177 slave-03
启动 zookeeper server ./zkServer.sh start
zookeeper manager里面查看zookeper需要 nc 如果没有 需要安装(不安装也不影响同步)
yum install nc
(另:配置集群观察者模式 在 zoo.cfg 文件中做如下修改
在需要观察者模式的zookeeper server上
配置如下
tickTime=2000
dataDir=/home/otter/zookeeper/data
clientPort=2181
initLimit=5
syncLimit=2
peerType=observer
server.1=slave-01:2888:3888:observer
server.2=slave-02:2888:3888
server.3=slave-03:2888:3888
##在 slave-01上配置文件如上,slave-01即是观察者模式 不参与选举
)
解压manager 并启动
conf/目录下 otter.properties ## otter manager domain name otter.domainName = 192.168.0.100 -- web管理ip和node节点配置的 ## 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://localhost:3306/otter otter.database.driver.username = root otter.database.driver.password = ## otter communication port otter.communication.manager.port = 1099 ## otter communication pool size otter.communication.pool.size = 10 ## default zookeeper address otter.zookeeper.cluster.default = 192.168.0.179:2181 ##如果有多个逗号分开,一个集群只需要写离manager最近的一个即可 ## default zookeeper sesstion timeout = 60s otter.zookeeper.sessionTimeout = 60000 ## 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 otter.manager.monitor.email.host = smtp.gmail.com otter.manager.monitor.email.username = otter.manager.monitor.email.password = otter.manager.monitor.email.stmp.port = 465
解压node 并启动
先进入manager中 按如下操作
机器管理 (菜单)-->> zookeeper管理(选项)(按照提示添加部署好的zookeeper集群)
图如下
机器管理 (菜单) -->> Node管理 (选项)(安装提示添加node节点,)
图如下
机器端口 2088
添加成功后 会产生一个 序号 (> 0 整数)
将此序号写入 node conf目录中
echo 序号 > node/conf
修改配置文件 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 pool size
otter.communication.pool.size = 10
## otter arbitrate & node connect manager config
## manager管理地址 : port
otter.manager.address = 192.168.0.100:1099
启动 node 节点
./node/bin/startup.sh
启动成功后能够在manager管理里面看到 添加的node节点 状态 为 “已启动”
接下来在manager里
1.)配置管理菜单中 依次配置 数据源 、数据表 、canal
2.)在同步管理菜单中添加 channel (是否开启数据一致性:开启)
(注意:参数尽量选择默认)
3.)添加 pipeline (一个channel 只能添加两个 pipeline ,
两个为双向同步,如果要用DDL同步,一个pipeline开启ddl同步,
另一个不要开启,且都要开启跳过ddl异常,DryRun模式 不要开启)
4.)配置 表映射
5.)在channel管理中开启 channel 同步即可