IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 使用otter实现数据同步——mysql、oracle的数据同步利器 -> 正文阅读

[大数据]使用otter实现数据同步——mysql、oracle的数据同步利器

Otter?前?持了什么

  1. 单向同步, mysql/oracle互相同步
  2. 双向同步,?冲突变更
  3. ?件同步,本地/aranda?件
  4. 双A同步,冲突检测&冲突补救
  5. 数据迁移,中间表/?记录同步

导历史表还需要程序代码实现吗? 还在?mysql的主从复制吗? Otter都能为你解决。

典型的场景是账户信息表和账户交易明细表,更新账户余额后需要登记?条账户明细,并且保证在?个事务?,?户可以通过交易明细表查看交易记录,但是交易明细表的数据量是逐步递增的,?户量多的系统,?个?下来的数据超过千万了,表数据量?多就导致查询和 插?变慢,??开始就对账户明细做分表处理就难于保证强?致性事务,通过otter可以将记录同步导历史表,并且进?分表处理,?户往 年的交易记录就可以查询历史表了,?原交易明细表就可以删除?个?甚??天前的数据;

实际测试中,otter的同步速度相?于mysql的复制,约有5倍左右的性能提升,这取决于其同步算法的实现. 抛弃了强?致性,得到了 性能提升。

整体架构

在这里插入图片描述
原理描述:
基于Canal开源产品,获取数据库增量?志数据。
典型管理系统架构,manager(web管理)+node(?作节点)
a. manager运?时推送同步配置到node节点
b. node节点将同步状态反馈到manager上
基于zookeeper,解决分布式状态调度的,允许多node节点之间协同?作.

名词解释:
Channel:同步通道,单向同步中?个Pipeline组成,在双向同步中有两个Pipeline组成;
Pipeline:从源端到?标端的整个过程描述,主要由?些同步映射过程组成;
DataMediaPair:根据业务表定义映射关系,?如源表和?标表,字段映射,字段组等;
DataMedia: 抽象的数据介质概念,可以理解为数据表/mq队列定义;
DataMediaSource: 抽象的数据介质源信息,补充描述DateMedia;
ColumnPair: 定义字段映射关系;
ColumnGroup: 定义字段映射组;
Node: 处理同步过程的?作节点,对应?个jvm;

环境准备

  1. otter manager依赖于mysql进?配置信息的存储,所以需要预先安装mysql,并初始化otter manager的系统表结构
    a. 安装mysql
  2. 整个otter架构依赖了zookeeper进?多节点调度,所以需要预先安装zookeeper,不需要初始化节点,otter程序启动后会?检.
    manager需要在otter.properties中配置zookeeper集群机器
  3. 安装jdk1.6+

下载安装

创建manager?录 : mkdir ~/manager
tar zxvf manager.deployer-4.2.14.tar.gz -C ~/manager

创建node?录: mkdir ~ /node
tar zxvf node.deployer-4.2.14.tar.gz -C ~ /node

修改配置?件运?

Manager

  1. otter.properties配置修改 vi ~/manager/conf/otter.properties

##修改为正确访问ip,?成URL使?,node的配置需要?到
otter.domainName= 127.0.0.1
##manage页?的访问端?
otter.port =8080
##修改为正确数据库信息
otter.database.driver.class.name = com.mysql.jdbc.Driver
otter.database.driver.url = jdbc:mysql://127.0.01:3306/ottermanager
otter.database.driver.username = root
otter.database.driver.password = hello
##为node连接manager的端?, node的配置需要?到
otter.communication.manager.port= 1099
##配置zookeeper集群机器
otter.zookeeper.cluster.default= 127.0.0.1:2181

其它使?默认配置即可

  1. Manager启动

Linux : sh ~/manager/bin/startup.sh
Windows:startup.bat
查看?志: vi ~/manager/logs/manager.log

现在访问我们地址的8080端口,要关掉8080的防火墙,否则访问不通。
出现如下界面,则表示manager配置成功
在这里插入图片描述

  1. 关闭manager

sh ~/manager/bin/stop.sh

Node

node会受ottermanager进?管理,所以需要预先安装otter manager,完成manager安装后,需要在manager页?为node定义 配置信息,并??个唯?id。

  1. 添加zookeeper

?先确保你的zookeeper已启动成功。
otter依赖zookeeper,访问manager页?的机器管理页?,选择菜单进?“机器管理→zookeeper管理”页?:
在这里插入图片描述
点击添加进?“添加Zookeeper集群”页?
在这里插入图片描述

  1. 添加node

Zookeeper添加成功后,进?“机器管理→Node管理”页?:
在这里插入图片描述
点击添加进?添加机器页?
在这里插入图片描述

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

机器添加完成后,跳转到机器列表页?,获取对应的机器序号nid:
在这里插入图片描述
通过这?步操作,获取到了node节点对应的唯?标?,称之为node id,简称nid,?如我添加的机器对应序号为1
执?echo 1 >~/node/conf/nid , 保存到conf?录下的nid?件;

  1. otter.properties配置修改 vi ~/otter/conf/otter.properties

#node的安装?录
otter.nodeHome = ${user.dir}/node
#manager的服务地址
otter.manager.address = 127.0.0.1:1099

  1. 启动

Linux:sh~/node/bin/startup.sh
Windows:startup.bat

打开?志: vi ~/node/logs/node/node.log,出现以下的错误,表?manager页?的ip配置不正确,此时修改ip为对应的host ip 后,再次启动即可。
在这里插入图片描述
关闭:sh ~/node/bin/stop.sh

配置?个同步任务

搭建?个数据库同步任务,源数据库必须开启binlog,并且binlog_format为ROW,即在mysql的配置?件加上以下两?
log-bin=mysql-bin
binlog-format=ROW
如果源库已开启binlog,通过mysql客户端命令show master status查看
在这里插入图片描述

添加canal

Otter使?canal开源产品获取数据库增量?志数据,可以把cannal看作是源库的?个伪slave。

原理: canal模拟mysql slave的交互协议,伪装??为mysql slave,向mysql master发送dump协议,mysql master收到dump 请求,开始推送binarylog给slave(也就是canal), canal解析binary log对象(原始为byte流)。

  1. 在Otter Manager“配置管理-canal配置”页?点击添加:
    在这里插入图片描述
  2. 进?添加cannal页?:
    在这里插入图片描述
    Node集成了cannal,所以不需要单独下载cannal;
    Cannal 存储机制分为memory和file,也可以在运?模式选项选择作为独?服务运?;
    勾选其他参数设置,可以设置cannal的服务端?;

必须配置位点信息,否则如果你的数据库已有存量数据,第?次运?时需要等待?较长的时间,可以通过连接源库客户端执?sql获 取,如下:
在这里插入图片描述

添加数据源

在这里插入图片描述
源库和?标库的schema需要?致,不然?法执?ddl语句(可以不一致,在设置Pipeline同步关系时可以指定同步某几个字段)

添加数据表配置

“配置管理-数据表配置”进?数据表管理页?:
在这里插入图片描述
点击添加,进?添加数据表页?:
在这里插入图片描述
table?例说明

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

添加?个channel

如下图,点击添加按钮进?添加channel页?,输?Channel Name后保存,则成功添加?个channel;
在这里插入图片描述

配置?个pipeline

添加channel成功后,点击Channel名字,进?Pipeline管理页?,添加?个pipeline;
在这里插入图片描述
进?添加pipeline页?
在这里插入图片描述
如上图填好所需信息,勾选?级设置,可以选是否过滤ddl同步等选项,点击保存,成功后会返回Pipeline管理页?。

添加映射关系

添加pipeline成功后,点击Pipeline名字
在这里插入图片描述
进?映射关系列表页?,点击添加
在这里插入图片描述
进?添加映射关系页?
在这里插入图片描述
点击保存返回映射关系列表页?,如果源数据表是只同步?个表可以点击下?步,选择需要同步的字段映射关系;

点击下一步后,出现两个表的所有字段,将需要同步的字段下移,注意顺序一一对应。
再点击下一步后,出现字段确认,此时将所有字段下移即可。

启?同步

以上配置,?个简单的同步任务就完成了,返回Channel管理页?
在这里插入图片描述
点击“启?”,运?状态就变为“运?”;
在这里插入图片描述
现在可以新增?个表,插?记录,查看数据是否同步过去了。
点击Channel名字,进?Pineline管理页?,可点击“监控”查看同步状态
在这里插入图片描述

避坑指南

同?个源表,同步到多个不同表,如果配置了Event Processor:source,运?时候会出现莫名其妙的数据问题。

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-06-18 23:28:02  更:2022-06-18 23:28:14 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 16:58:46-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码