Otter 安装流程

优质博文:IT-BLOG-CN

一、背景

随着公司的发展,订单库的数据目前已达到千万级别,需要进行分表分库,就需要对数据进行迁移,我们使用了otter,这里简单整理下,otter 的安装过程,希望对你有所帮助。

二、环境准备

otter manager依赖于mysql进行配置信息的存储,所以需要预先安装mysql,并初始化otter manager的系统表结构

初始化otter manager系统表:

下载:

shell 复制代码
wget https://raw.github.com/alibaba/otter/master/manager/deployer/src/main/resources/sql/otter-manager-schema.sql 

载入:

shell 复制代码
source otter-manager-schema.sql

otter-manager-schema.sql 脚本说明(了解):是Otter数据同步工具的管理数据库的SQL脚本文件,用于创建和初始化Otter的管理数据库表结构。这个文件包含了Otter管理系统所需的各种表和索引的定义。这些表用于存储同步任务的配置信息、任务状态、日志等。

以下是一个简化的示例,展示了otter-manager-schema.sql中可能包含的内容:

sql 复制代码
-- 创建用于存储同步任务配置信息的表
CREATE TABLE `otter_channel` (
    `id` BIGINT(20) NOT NULL AUTO_INCREMENT,
    `name` VARCHAR(100) NOT NULL,
    `description` VARCHAR(255) DEFAULT NULL,
    `status` VARCHAR(20) DEFAULT NULL,
    `gmt_create` DATETIME NOT NULL,
    `gmt_modified` DATETIME NOT NULL,
    PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- 创建用于存储同步任务状态的表
CREATE TABLE `otter_pipeline` (
    `id` BIGINT(20) NOT NULL AUTO_INCREMENT,
    `channel_id` BIGINT(20) NOT NULL,
    `name` VARCHAR(100) NOT NULL,
    `description` VARCHAR(255) DEFAULT NULL,
    `status` VARCHAR(20) DEFAULT NULL,
    `gmt_create` DATETIME NOT NULL,
    `gmt_modified` DATETIME NOT NULL,
    PRIMARY KEY (`id`),
    KEY `idx_channel_id` (`channel_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- 创建用于存储节点信息的表
CREATE TABLE `otter_node` (
    `id` BIGINT(20) NOT NULL AUTO_INCREMENT,
    `name` VARCHAR(100) NOT NULL,
    `ip` VARCHAR(20) NOT NULL,
    `port` INT(11) NOT NULL,
    `status` VARCHAR(20) DEFAULT NULL,
    `gmt_create` DATETIME NOT NULL,
    `gmt_modified` DATETIME NOT NULL,
    PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- 创建用于存储同步任务日志的表
CREATE TABLE `otter_log` (
    `id` BIGINT(20) NOT NULL AUTO_INCREMENT,
    `pipeline_id` BIGINT(20) NOT NULL,
    `message` TEXT NOT NULL,
    `log_time` DATETIME NOT NULL,
    PRIMARY KEY (`id`),
    KEY `idx_pipeline_id` (`pipeline_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- 创建用于存储数据变更事件的表
CREATE TABLE `otter_event` (
    `id` BIGINT(20) NOT NULL AUTO_INCREMENT,
    `pipeline_id` BIGINT(20) NOT NULL,
    `event_type` VARCHAR(20) NOT NULL,
    `data` TEXT NOT NULL,
    `event_time` DATETIME NOT NULL,
    PRIMARY KEY (`id`),
    KEY `idx_pipeline_id` (`pipeline_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

整个otter架构依赖了zookeeper进行多节点调度,所以需要预先安装zookeeper,不需要初始化节点,otter程序启动后会自检。manager需要在otter.properties中指定一个就近的zookeeper集群机器

三、启动步骤

下载otter manager

直接下载 ,可访问:https://github.com/alibaba/otter/releases ,会列出所有历史的发布版本包下载方式,比如以x.y.z版本为例子:

shell 复制代码
wget https://github.com/alibaba/otter/releases/download/otter-x.y.z/manager.deployer-x.y.z.tar.gz

或者自己编译

shell 复制代码
git clone git@github.com:alibaba/otter.git
cd otter; 
mvn clean install -Dmaven.test.skip -Denv=release

编译完成后,会在根目录下产生target/manager.deployer-$version.tar.gz

解压缩

shell 复制代码
mkdir /tmp/manager
tar zxvf manager.deployer-$version.tar.gz  -C /tmp/manager

配置修改

yml 复制代码
## otter manager domain name #修改为正确访问ip,生成URL使用
otter.domainName = 127.0.0.1    
## 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://127.0.01:3306/ottermanager
otter.database.driver.username = root
otter.database.driver.password = hello

## otter communication port
otter.communication.manager.port = 1099

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

## default zookeeper address,修改为正确的地址,手动选择一个地域就近的zookeeper集群列表
otter.zookeeper.cluster.default = 127.0.0.1:2181
## default zookeeper session timeout = 90s
otter.zookeeper.sessionTimeout = 90000

## otter arbitrate connect manager config
otter.manager.address = ${otter.domainName}:${otter.communication.manager.port}

准备启动

shell 复制代码
sh startup.sh

查看日志

shell 复制代码
vi logs/manager.log

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

log 复制代码
2024-11-14 13:19:45.911 [] WARN  com.alibaba.otter.manager.deployer.JettyEmbedServer - ##Jetty Embed Server is startup!
2024-11-14 13:19:45.911 [] WARN  com.alibaba.otter.manager.deployer.OtterManagerLauncher - ## the manager server is running now ......

验证

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

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

关闭

shell 复制代码
sh stop.sh
相关推荐
余衫马1 小时前
CentOS7 离线安装 Postgresql 指南
数据库·postgresql
E___V___E2 小时前
MySQL数据库入门到大蛇尚硅谷宋红康老师笔记 高级篇 part 2
数据库·笔记·mysql
m0_748254882 小时前
mysql之如何获知版本
数据库·mysql
张铁牛2 小时前
5. 想在代码中验证sql的正确性?
db·calcite
小金的学习笔记2 小时前
如何在本地和服务器新建mysql用户和密码
运维·服务器·mysql
yngsqq3 小时前
c# —— StringBuilder 类
java·开发语言
mikey棒棒棒3 小时前
Redis——优惠券秒杀问题(分布式id、一人多单超卖、乐悲锁、CAS、分布式锁、Redisson)
数据库·redis·lua·redisson·watchdog·cas·并发锁
Asthenia04123 小时前
浏览器缓存机制深度解析:电商场景下的性能优化实践
后端
星星点点洲3 小时前
【操作幂等和数据一致性】保障业务在MySQL和COS对象存储的一致
java·mysql
xiaolingting3 小时前
JVM层面的JAVA类和实例(Klass-OOP)
java·jvm·oop·klass·instanceklass·class对象