otter安装

article/2025/10/20 14:07:54

译意: 水獭,数据搬运工

语言: 纯java开发

定位: 基于数据库增量日志解析,准实时同步到本机房或异地机房的mysql/oracle数据库. 一个分布式数据库同步系统

otter的环境需要:mysql,jdk,zookeeper,node,aria2,manager

otter安装需要三台机器,我实现的是两台机器之间的Mysql数据库同步,即双写同步,zookeeper集群。

在master机器上安装manager,在slave1和slave2上面安装node


1 、在slave1和slave2上安装JDK并配置JDK的环境变量

本文使用的jdk:jdk-7u79-linux-x64.tar.gz

直接解压,配置环境变量就OK了。


2、在slave1和slave2上安装mysql

# yum install -y mysql-server mysql mysql-devel

# service mysqld start         //启动mysql服务

# mysqladmin -u root password 'root'  // 给root账号设置密码为 root

安装完后,修改mysql的配置文件:
# vim /etc/my.cnf
在[mysqld]下面添加:
log-bin=mysql-bin
binlog-format=ROW       #修改成ROW
server-id = 1     #两个机房的serverid设置为不一样的值

然后重启数据库,分别在slave1和slave2库上创建otter的数据库账号和密码,例如canal/canal

CREATE USER canal IDENTIFIED BY 'canal'; 
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%';
FLUSH PRIVILEGES;
 
show grants for 'canal';   #查看权限


3、安装zookeeper

zookeeper可以只单机安装,也可以以集群形式安装,安装完成后启动。本文是安装的集群,三台机器。

本文使用的是:zookeeper-3.4.6.tar.gz

解压,进入conf下面进行配置

# cp zoo_sample.cfg zoo.cfg

# vim zoo.cfg 

dataDir=/root/cloud/zookeeper-3.4.6/data          #进行修改

添加下面的内容:

server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888

在zookeeper-3.4.6 下面创建data,然后进入data

# vim myid

里面添加1。

scp -rq zookeeper-3.4.6 slave1:/root/cloud/

把slave1里面的myid里面的内容改为2

scp -rq zookeeper-3.4.6 slave2:/root/cloud/

把slave2里面的myid里面的内容改为3

都修改完后,启动zookeeper

进入zookeeper-3.4.6/bin下面执行

 ./zkServer.sh start      启动

 ./zkServer.sh status     查看状态


4、安装manager,在master机器上面安装

manager依赖于mysql进行配置信息的存储,所以需要预先安装mysql

# yum install -y mysql-server mysql mysql-devel

# service mysqld start         //启动mysql服务

# mysqladmin -u root password 'root'  // 给root账号设置密码为 root

初始化otter manager系统表:
下载:

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

载入sql:
# mysql -uroot -proot

mysql> source /root/cloud/otter-manager-schema.sql

# mkdir manager
# tar -zxvf manager.deployer-4.2.13.tar.gz -C manager

配置修改

进入conf下面修改

# vim otter.properties

otter.domainName = 192.168.10.1          修改为manager的ip,用户web访问

## otter manager database config           manager上面的mysql信息
otter.database.driver.class.name = com.mysql.jdbc.Driver
otter.database.driver.url = jdbc:mysql://127.0.0.1:3306/otter
otter.database.driver.username = root
otter.database.driver.password = root

## default zookeeper address       选择一个就近的zookeeper集群地址
otter.zookeeper.cluster.default = 192.168.10.1:2181

准备启动
# bin/startup.sh

查看日志
vim logs/manager.log

2016-12-08 15:28:14.844 [] INFO  com.alibaba.otter.manager.deployer.OtterManagerLauncher - ## start the manager server.
2016-12-08 15:28:37.179 [] INFO  com.alibaba.otter.manager.deployer.JettyEmbedServer - ##Jetty Embed Server is startup!
2016-12-08 15:28:37.179 [] INFO  com.alibaba.otter.manager.deployer.OtterManagerLauncher - ## the manager server is running now ......

出现类似日志,代表启动成功

验证
访问: http://192.168.10.1:8080/,出现otter的页面,即代表启动成功


初始密码为:admin/admin,即可完成登录。目前:匿名用户只有只读查看的权限,登录为管理员才可以有操作权限

manager安装完成。


5、安装node

node会受到otter manager进行管理,需要在manager页面为node定义配置信息,并生成一个唯一id。

a. 首先访问manager页面的机器管理,添加zookeeper管理,点击添加


b. 访问manager页面的机器管理,点击node管理,点击添加


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


机器添加完成后,跳转到机器列表页面,获取对应的机器序号nid


通过上面的操作,获取到了node节点对应的唯一标示,称之为node id,简称:nid. 记录该nid,后续启动nid时会使用

安装aria2

node 需要aria2支持,在slave1和slave2机器上分别安装了一套。

本文用到的是:aria2-1.17.1.tar.gz,node.deployer-4.2.13.tar.gz

# tar -zxvf aria2-1.17.1.tar.gz

进入目录: cd aria2-1.17.1
编译:  
./configure

出现如下错误:

configure: error: in `/root/cloud/aria2-1.17.1':
configure: error: no acceptable C compiler found in $PATH

# yum -y install gcc

然后./configure,现在就成功通过了。

# make   报错的话,再重新执行一次/configure这个就好了。
# make install

安装node

# mkdir node

# tar -zxvf node.deployer-4.2.13.tar.gz -C node

配置修改
nid配置 (将上面获取到的序号,保存到conf目录下的nid文件,比如我添加的机器对应序号为1)

# echo 1 > conf/nid

otter.properties配置修改

## otter arbitrate & node connect manager config
otter.manager.address = 192.168.10.1:1099       修改为manager服务地址

准备启动
# sh startup.sh

查看日志

# more logs/node/node.log

2016-12-08 15:59:31.666 [main] INFO  com.alibaba.otter.node.deployer.OtterLauncher - INFO ## the otter server is running now ......

看到如上日志,代表node启动完成.

验证
访问: http://192.168.10.1:8080,查看对应的节点状态,如果变为了已启动,代表已经正常启动。(ps,如果是未启动,会是一个红色高亮)

slave2机器上也安装上面的部署安装aria2和node


表示node安装成功。


到此otter安装成功。


http://chatgpt.dhexx.cn/article/EaCZ6qf1.shtml

相关文章

Otter 安装部署维护

介绍 淘宝开源的产品,基于数据库增量日志解析,准实时同步到本机房或异地机房的mysql/oracle数据库,一个分布式数据库同步系统。 目前同步规模: 同步数据量6亿 文件同步1.5TB(2000w张图片) 涉及200个数据库实例之间的同步 80台机器…

Otter配置说明

Otter配置说明 标签: Otter 下载 最新版Otter下载地址 CSDN下载地址 需要下载manager.deployer-4.2.13.tar.gz,node.deployer-4.2.13.tar.gz和Source code (zip) 需要安装zookeeper和jdk支持,canal已经内置,不需要安装 manage…

mysql otter_MySQL数据库实现远程同步的工具alibaba otter

MySQL数据库实现远程同步的工具alibaba otter 发布时间:2020-06-03 15:46:57 来源:51CTO 阅读:291 作者:三月 本篇文章给大家主要讲的是关于MySQL数据库实现远程同步的工具alibaba otter的内容,感兴趣的话就一起来看看…

Otter源码深入详解(三)

分析Node的代码前,需要理解Node的工作机制,需要先了解其工作原理: https://github.com/alibaba/otter/wiki/Otter调度模型 这里用到了SEDA模型,SEDA模型这里有偏文章介绍的很好: https://www.jianshu.com/p/e184fdc0ad…

otter mysql教学视频_3.Otter快速上手

QuickStart 1.几点说明 有一点特别注意:目前canal支持mixed,row,statement多种日志协议的解析,但配合otter进行数据库同步,目前仅支持row协议的同步,使用时需要注意. 环境准备 操作系统 a. otter为纯java编写,windows/…

通过docker构建otter

本文是通过docker构建otter环境与mysql环境 一、使用docker构建otter docker pull canal/otter-all curl -fsSL https://raw.githubusercontent.com/alibaba/otter/master/docker/run.sh | bash 访问otter:http://192.168.102.212:8080 账号密码默认是admin/adm…

Otter详解

otter girthub链接: https://github.com/alibaba/otter 有兴趣的同学可以移步笔者的个人博客 更多博客 整体架构 子模块解释 zooKeeper 分布式一致性协调服务,主要用来调度配置好的node模块。 manager 管理中心,用来配置同步信息&#…

otter 配置问题笔记

otter 部署启动 : 1,启动zookeeper 2,启动manager 3,启动node 4 在manger管理界面配置zookeeper 和node 添加映射关系表 点击pipeline的名称, 点击[批量添加] (一个一个的添加, 太累) 按照以下格式输入 数据库名,表1,【数据源配置】序号,目的数据源的序号 item,s…

otter快速开始

目录 一、Otter简介二、Otter目前支持了什么三、Canal & Otter 的一些注意事项四、otter单向同步搭建测试1. 环境准备2. Manager使用(任务配置整个流程)配置完整流程 3. 过程问题整理3.1 Problem accessing /channelList.htm. Reason:3.2 show maste…

Otter

一.概述 Otter 阿里巴巴分布式数据库同步系统:https://github.com/alibaba/otter Otter底层依赖Canal接收和解析mysql binlog日志,提供了可配置化的同步机制,纯java开发,免费开源的,基于数据库增量日志解析&#xff…

otter学习 | otter 基本介绍

一、项目介绍 名称:otter [‘ɒtə(r)] 译意: 水獭,数据搬运工 语言: 纯java开发 定位: 基于数据库增量日志解析,准实时同步到本机房或异地机房的mysql/oracle数据库。 二、工作原理 原理描述&#xf…

Otter-安装配置

简介 OTTER是阿里巴巴公司为了解决杭州/美国机房数据间同步研发的一个开源软件。OTTER基于数据库增量日志解析,准实时同步到本机房或异地机房的mysql/oracle数据库,是一个分布式数据库同步系统。 工作原理图: 原理描述: 基于Can…

Otter入门简介

一、Otter简介 1.1 otter是什么? otter 译意: 水獭,数据搬运工 语言: 纯java开发 定位: 基于数据库增量日志解析,准实时同步到本机房或异地机房的mysql/oracle数据库. 一个分布式数据库同步系统。Ottter是…

2.Otter原理介绍

Introduction 项目介绍 名称:otter [ɒtə(r)] 译意: 水獭,数据搬运工 语言: 纯java开发 定位: 基于数据库增量日志解析,准实时同步到本机房或异地机房的mysql/oracle数据库. 工作原理 image 原理描述&…

斐波那契数列输出的C语言实现

斐波那契数列输出的C语言实现 1.流程图 2.代码实现 #include <stdio.h>#define num1 0//第一项 #define num2 1//第二项int Fibonacci_Sequence(int num_n1, int num_n2, int times_0,int times_already)//num_1为第n-2位数&#xff0c;int num_n2为第n-1位数&#xf…

蓝桥杯入门训练Fibonacci数列 C语言

Fibonacci数列 C语言 问题描述 Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。 当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。 输入格式 输入包含一个整数n。 输出格式 输出一行,包含一个整数,表示Fn除以10007的余数。 说明: 在本题中…

C语言 计算斐波那契数列

C语言 计算斐波那契数列 前言 在学习C语言的道路上多次遇到了求斐波那契数列的问题&#xff0c;今天来总结一下我所知道的几种思想方法。方法一&#xff1a;循环 使用斐波那契数列的推导式&#xff0c;通过循环将每一个值保存到数组fib中。需要说明的是&#xff0c;这里的fi…

c语言数组的斐波那契数列

c语言数组的斐波那契数列 核心思想&#xff1a;后一项是前一项的和 a[i]a[i-1]a[i-2]&#xff1b; 题干 转换为代码 #include<stdio.h> int main() {int i,n,a[20]{1,1};scanf("%d",&n);if(n<2)printf("%d",1);else{for(i2;i<n;i)a[i]a…

C语言数组之斐波那契数列

目录 一、斐波那契数列是什么&#xff1f; 二、代码展示 1.斐波那契数列 2.冒泡排序 总结 一、斐波那契数列是什么&#xff1f; 斐波那契数列指的是这样一个数列&#xff1a;1、1、2、3、5、8、13、21、34、……在数学上&#xff0c;斐波那契数列以如下被以递推的方法定义…

斐波那契数列c语言实现 每行五个输出

斐波那契数列 指的是这样一个数列&#xff1a; 0 1 1 2 3 5 8 13 21 34 55 89 144 233… 这个数列从第3项开始&#xff0c;每一项都等于前两项之和。 设计思路&#xff0c;考虑到数列是从第三项开始呈现规律&#xff0c;故将前两项先定义&#xff0c;第三项设为变量。 后续通过…