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 同步即可

 

posted on 2014-05-06 10:04  Love I Smile  阅读(7194)  评论(0编辑  收藏  举报