基于alibaba开源的分布式数据同步系统安装配置文档otter之环境配置


otter项目开源地址:https://github.com/alibaba/otter

canal项目开源地址:https://github.com/alibaba/canal

我们的用这个系统的背景:主要是做异地容灾,可是我们需要的现网的数据需要同步到容灾区。

 

工作原理:

原理描述:

1.基于Canal开源产品,获取数据库增量日志数据。 什么是Canal, 请点击

2.典型管理系统架构,manager(web管理)+node(工作节点)

a. manager运行时推送同步配置到node节点

b. node节点将同步状态反馈到manager上

3.基于zookeeper,解决分布式状态调度的,允许多node节点之间协同工作.

 

组件解释:

  canal:

  什么是canal?  otter之前开源的一个子项目,开源链接地址:http://github.com/alibaba/canal

  定位:基于数据库增量日式解析,提供增量数据订阅&消费,目前主要支持了mysql

工作原理:

原理相对简单:类似MYSQL原有的主从复制机制。

1.canal模拟mysql slave 的交互协议,伪装自己为mysql slave,想mysql master发送dump协议

2.mysql master收到dump请求,开始推送binary log给slave(也就是canal)

3.canal解释binary log 对象(原始为byte流)

相关文档:

See the wiki page for : wiki文档 

 

环境配置:

  canal、otter依赖jdk环境、node依赖 aria2启动:

    apt-get update && apt-get install default-jdk aria2 -y

 

组件安装配置:

  canal:

    a. canal原理基于mysql  binlog技术;需要binlog的支持,而且log的format格式为ROW:

    [mysqld]

    log-bin=mysql-bin #添加这一行就ok

    binlog-format=ROW #选择row模式

    server_id=1 #配置mysql replaction需要定义,不能和canal的slaveId重复

    b. 授权slave同步:

    CREATE USER canal IDENTIFIED BY ‘canal‘;

    GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO ‘canal‘@‘%‘;

或者:GRANT ALL PRIVILEGES ON *.* TO ‘canal‘@‘%‘ ;

    FLUSH PRIVILEGES;

    解压直接使用。

配置文件:

vi conf/example/instance.properties

    #################################################

    ## mysql serverId

    canal.instance.mysql.slaveId = 1234

    # position info,需要改成自己的数据库信息

    canal.instance.master.address = 127.0.0.1:3306  #指定master 的ip:port

    canal.instance.master.journal.name =   #配置binlog的file 可以不用配置(默认是以当前启动)

    canal.instance.master.position =           #配置binlog的postion 可以不用配置(默认是以当前启动)

    canal.instance.master.timestamp =

    #canal.instance.standby.address =

    #canal.instance.standby.journal.name =

    #canal.instance.standby.position =

    #canal.instance.standby.timestamp =

    # username/password,需要改成自己的数据库信息

    canal.instance.dbUsername = canal    #配置为授权的账号

    canal.instance.dbPassword = canal     #配置授权的密码

    canal.instance.defaultDatabaseName =  #可以指定数据库

    canal.instance.connectionCharset = UTF-8  #配置编码格式

    # table regex

    canal.instance.filter.regex = .*\\..*

    #################################################

    启动、停止:

    bin/startup.sh  bin/stop.sh

  zookeeper:

    安装配置:

    配置所有的zk主机的hosts文件

    192.168.56.1  zk

    192.168.56.2  re

    192.168.56.3  yt

    zk配置文件:

    vim conf/zoo.cfg

    #################################################

    # The number of milliseconds of each tick

    tickTime=2000

    # The number of ticks that the initial

    # synchronization phase can take

    initLimit=10

    # The number of ticks that can pass between

    # sending a request and getting an acknowledgement

    syncLimit=5

    # the directory where the snapshot is stored.

    # do not use /tmp for storage, /tmp here is just

    # example sakes.

    dataDir=/usr/local/zk_cluster/zookeeper-3.4.6_node1/data  #目录需要创建

    #dataLogDir

    # the port at which the clients will connect

    clientPort=2181                         #每一个节点的port也不一样

    server.1=zk:2887:3892               #不管是前面的port还是后面的port。每一个节点都不一样

    server.2=zk:2888:3893

    server.3=zk:2889:3894

    server.4=re:3386:3388:observer  #远端的zkobserver角色

    server.5=re:3387:3389:observer  #远端的zkobserver角色

    server.6=yt:2892:3895:observer  #远端的zkobserver角色

    # the maximum number of client connections.

    # increase this if you need to handle more clients

    observer配置:

    # The number of milliseconds of each tick

    tickTime=2000

    # The number of ticks that the initial

    # synchronization phase can take

    initLimit=10

    # The number of ticks that can pass between

    # sending a request and getting an acknowledgement

    syncLimit=5

    peerType=observer  #指定此节点为observer类型

    # the directory where the snapshot is stored.

    # do not use /tmp for storage, /tmp here is just

    # example sakes.

    dataDir=/usr/local/zk_cluster/zookeeper-3.4.6_node4/data

    #dataLogDir

    # the port at which the clients will connect

    clientPort=2184

    server.1=zk:2887:3892

    server.2=zk:2888:3893

    server.3=zk:2889:3894

    server.4=re:2890:3890:observer

    server.5=re:2891:3891:observer

    server.6=yt:2892:3895:observer

    # the maximum number of client connections.

    # increase this if you need to handle more clients

    启动、停止:

    zookeeper-3.4.6_node4/bin/zkServer.sh start   zookeeper-3.4.6_node4/bin/zkServer.sh stop

    注意:每一个节点都有一个唯一的myid,这个需要在data目录下创建一个myid文件并将本地节点对应的server.x  x的id写入myid中。data目录需要建立哦

列如: 第一个节点:

      server.1=zk:2887:3892   只需要在myid文件中输入 1即可

  otter:

    manager:

    manager是web管理界面,需要mysql数据库的支持,在manager上部署mysql、授权。还需要原始的数据、载入原始数据;网上下载即可:

    wget https://raw.github.com/alibaba/otter/master/manager/deployer/src/main/resources/sql/otter-manager-schema.sql

    配置文件:

    vim conf/otter.properties

    ## otter manager domain name #修改为正确访问ip,生成URL使用

    otter.domainName = 192.168.56.4    #配置访问的域名或者ip

    ## otter manager http port

    otter.port = 8080                         #配置web访问的port

    ## 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://127.0.01:3306/ottermanager   #配置manager链接数据库

    otter.database.driver.username = otter                                                #配置连接数据库的用户名

    otter.database.driver.password = otter                                                #配置连接数据库的密码

    ## otter communication port

    otter.communication.manager.port = 1099                                         #配置node链接的port

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

    ## default zookeeper address,修改为正确的地址,手动选择一个地域就近的zookeeper集群列表

    otter.zookeeper.cluster.default = 192.168.56.1:2181,192.168.56.1 :2182,192.168.56.1:2183,192.168.56.2:3384,192.168.56.2:3385,192.168.56.3:2186  #配置一个就近的zk群集地址 写离manager最近的一个也可以 例      如:192.168.56.1:2181

    ## default zookeeper sesstion timeout = 90s
    otter.zookeeper.sessionTimeout = 90000

    ## otter arbitrate connect manager config

    otter.manager.address = ${otter.domainName}:${otter.communication.manager.port

    启动、停止:

    bin/startup.sh    bin/stop.sh

    访问url:

    http://192.168.168.4:8080

    默认账号密码:admin/admin

  node:

    vim 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

    otter.manager.address = 192.168.56.4:1099   # 指定manager的ip:port

    启动、停止:注:node启动需要先配置nid,下面解释。

    bin/startup.sh   bin/stop.sh

    注意:这里提到一个nid,这是node唯一的标识 我们如何得到这个nid的标识号呢?这个在manager上面添加的node产生的,下面会提到。这个nid文件需要在node的conf目录;也是只是添加标识号即可。nid位于conf目录下。

 
时间: 2024-08-04 02:45:42

基于alibaba开源的分布式数据同步系统安装配置文档otter之环境配置的相关文章

Kerberos主从配置文档

Kerberos主从配置文档   1. Kerberos主从同步机制 在Master上通过以下命令同步数据: kdb5_util dump /var/kerberos/krb5kdc/slave_db kprop -f  /var/kerberos/krb5kdc/slave_db kerberos2.hadoop.com 2. 搭建 Kerberos 3.1 环境 我们在两个备用NameNode节点上实现Kerberos主从,并在其它需要接入认证的主机上安装Kerberos客户端. 操作系统:

httpd主配置文档的介绍及小练习

一.httpd 主配置文档的介绍/etc/httpd/conf/httpd.conf ### Section 1: Global Environment 全局环境 ServerRoot "/etc/httpd" 主服务程序在这个目录下 PidFile run/httpd.pid Pid 在主服务目录下的这个文件 Timeout 60 超时时间为60秒 KeepAlive Off 持久连接关闭 MaxKeepAliveRequests 100 最大连接数 KeepAliveTimeout

.NET平台开源项目速览(4).NET文档生成工具ADB及使用

转载自  http://www.cnblogs.com/asxinyu/p/dotnet_Opensource_project_ADB_CSharpDocument.html 阅读目录 1.ADB介绍 2.ADB生成.NET文档过程 3.资源与代码 很久以前就使用ADB这个工具来生成项目的帮助文档.功能强大,在学习一些开源项目的过程中,官方没有提供CHM帮助文档,所以为了快速的了解项目结构和注释.就生成文档来自己看,非常好用.这也是一个学习方法吧.例如本文在: .NET平台开源项目速览(2)Co

Hadoop集群安装配置文档

Hadoop集群安装配置文档 日期 内容 修订人 2015.6.3 文档初始化 易新             目录 1 文档概要... 5 1.1软件版本... 5 1.2机器配置... 5 2 虚拟机配置... 5 2.1新建虚拟机... 5 2.2虚拟网络配置... 8 3 CentOS安装及配置... 9 3.1系统安装... 9 3.2系统配置... 10 3.2.1防火墙配置... 10 3.2.2 SElinux配置... 10 3.2.3 IP配置... 11 3.2.4安装vim

Git专题--Git服务器端配置文档

Git是一个开源的分布式版本控制系统,用以有效.高速的处理从很小到非常大的项目版本管理. 分布式相比于集中式的最大区别在于开发者可以提交到本地,每个开发者通过克隆(git clone),在本地机器上拷贝一个完整的Git仓库. 从一般开发者的角度 1.从服务器上克隆完整的Git仓库(包括代码和版本信息)到单机上. 2.在自己的机器上根据不同的开发目的,创建分支,修改代码. 3.在单机上自己创建的分支上提交代码. 4.在单机上合并分支. 5.把服务器上最新版的代码fetch下来,然后跟自己的主分支合

redis.conf 配置文档详解

redis 配置文档详解. 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411

Hadoop配置文档

预节 在这一节中,笔者主要向大家介绍了该配置文档中,所用到的Linux命令和Linux的帮助. 终端提示信息 在Linux中,终端的每一行都有提示信息,其包含了当前终端登录的用户,当前登录的主机,当前终端所在的目录. 如:[[email protected] ~]$其格式为:[[用户名]@[hosts主机名或主机ip [当前所在路径]]$解析后可以知道,例子给的提示,实际上代表的是:当前终端登录的主机为master,所有的操作都是针对master的,登录主机的用户为frank,当前终端cd命令进

Nginx配置文档具体解释

Nginx的配置文档具体解释.在这儿做个总结,以便以后使用的时间查看. 下面大部分自己整理.部分来自參考 #设置用户 #user  nobody; #启动进程数(一般和server的CPU同样) #能够使用 $ cat /proc/cpuinfo 查看内核数 worker_processes  2; #设置错误文件存放的路径 #error_log  logs/error.log; #error_log  logs/error.log  notice; #error_log  logs/error

IIS配置文档

IIS配置文档: 1.安装IIS.控制面板→程序→打开关闭Windows功能,Web管理服务和万维网服务都勾上. 2.部署网站:ASP.Net项目的发布:项目中点右键“发布”,选择“文件系统”,发布到一个文件夹下. 3.在IIS中新建网站,设定域名,这样多个域名可以放到一个IIS服务器上.需要绑定域名. 4.模拟域名,如果启用了UAC,则用管理员权限运行记事本,打开 C:\Windows\System32\drivers\etc下的hosts文件 做一下域名协议的欺骗.伪造一些域名出来. 5.如