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
相关推荐
杨DaB8 分钟前
【SpringMVC】MVC中Controller的配置 、RestFul的使用、页面重定向和转发
java·笔记·后端·学习·spring·mvc·restful
linyb极客之路11 分钟前
干货来袭!5 分钟学会快速实现责任链,效率直接拉满!
java
创码小奇客15 分钟前
保姆级 Talos 超参数优化实战指南:从入门到封神
java·后端·架构
程序媛李李李李李蕾22 分钟前
你不能直接用现成的吗?整个前端做笔记管理工具真是折腾人
javascript·vue.js·后端
青云交23 分钟前
Java 大视界 -- Java 大数据在智能安防入侵检测系统中的多源数据融合与误报率降低策略(369)
java·大数据·入侵检测·智能安防·多源数据融合·误报率降低·视频语义理解
望获linux30 分钟前
【Linux基础知识系列】第六十四篇 - 了解Linux的硬件架构
linux·运维·服务器·开发语言·数据库·操作系统·嵌入式软件
易元31 分钟前
设计模式-访问者模式
前端·后端·设计模式
我会冲击波35 分钟前
告别手写注释!变量命名、注释IDEA插件更新了,AI帮你搞定一切代码注释
java·intellij idea
全栈小540 分钟前
【数据库】使用Sql Server将分组后指定字段的行数据转为一个字段显示,并且以逗号隔开每个值,收藏不迷路
数据库·sql server