Otter 安装流程

优质博文:IT-BLOG-CN

一、背景

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

二、环境准备

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

初始化otter manager系统表:

下载:

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

载入:

source otter-manager-schema.sql

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

以下是一个简化的示例,展示了otter-manager-schema.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版本为例子:

wget https://github.com/alibaba/otter/releases/download/otter-x.y.z/manager.deployer-x.y.z.tar.gz

或者自己编译

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

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

解压缩

mkdir /tmp/manager
tar zxvf manager.deployer-$version.tar.gz  -C /tmp/manager

配置修改

## 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}

准备启动

sh startup.sh

查看日志

vi logs/manager.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,即可完成登录. 目前:匿名用户只有只读查看的权限,登录为管理员才可以有操作权限

关闭

sh stop.sh

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/478292.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Web3 游戏周报(11.17 - 11.23)

回顾上周的区块链游戏概况,查看 Footprint Analytics 与 ABGA 最新发布的数据报告。 【11.17 - 11.23】Web3 游戏行业动态: 加密游戏开发商 Gunzilla Games 发推表示,其已与 Coinbase Ventures 达成合作并获得其投资。 国际足联将与 Mythica…

【linux学习指南】初识Linux进程信号与使用

文章目录 📝信号快速认识📶⽣活⻆度的信号📶 技术应⽤⻆度的信号🌉 前台进程(键盘)🌉⼀个系统函数 📶信号概念📶查看信号 🌠 信号处理🌉 忽略此信…

3DEXPERIENCE软件是干什么的—3DE软件代理商微辰三维

在当今数字化转型浪潮席卷全球各个行业的大背景下,3DEXPERIENCE 软件宛如一颗璀璨的明星,闪耀在产品设计、制造以及协同创新等诸多领域。它是由达索系统公司推出的一款综合性的、功能强大的商业软件平台,为企业的整个产品生命周期管理带来了前…

【大数据学习 | Spark-Core】广播变量和累加器

1. 共享变量 Spark两种共享变量:广播变量(broadcast variable)与累加器(accumulator)。 累加器用来对信息进行聚合,相当于mapreduce中的counter;而广播变量用来高效分发较大的对象&#xff0c…

STM32编程小工具FlyMcu和STLINK Utility 《通俗易懂》破解

FlyMcu FlyMcu 模拟仿真软件是一款用于 STM32 芯片 ISP 串口烧录程序的专用工具,免费,且较为非常容易下手,好用便捷。 注意:STM32 芯片的 ISP 下载,只能使用串口1(USART1),对应的串口…

MTK主板_安卓主板方案_MTK联发科主板定制开发

联发科(MTK)主板以其强大的性能和多样化的功能而受到广泛关注。该平台包括多个型号,例如MT6761、MT8766、MT6762、MT6765、MT8768和MT8788等,均配置了四核或八核64位处理器,主频可高达2.0GHz。采用先进的12nm工艺,搭载Android 11.…

信息收集(1)

学习视频引路信息收集(1)_哔哩哔哩_bilibili View信息收集(1) 分享一个漏洞挖掘平台:补天 以吉林通用航空职业技术学院|官网 (jlthedu.com)为目标 第一步:查看cdn和域名被注册的信息 可以查询域名信息的…

React(六)——Redux

文章目录 项目地址基本理解一、配置Redux store二、创建slice配置到store里并使用三、给Slice配置reducers,用来修改初始值 项目地址 教程作者:教程地址: 代码仓库地址: 所用到的框架和插件: dbt airflow基本理解 s…

如何利用ATECLOUD平台来实现数据报告的导出和数据分析?-纳米软件

1.数据报告导出 选择报告模板:ATECLOUD 平台通常会提供多种预设的数据报告模板,这些模板是根据不同的测试场景和需求设计的。例如,在电源模块测试中,有针对输出电压、电流、功率等基本参数的报告模板,也有包含纹波系数…

[ZJCTF 2019]NiZhuanSiWei

[ZJCTF 2019]NiZhuanSiWei 上面代码,使用get上传了三个参数,在text者用力恒等于,然后就输出,接着第二个参数中出现flag就输出not now,接着第三个参数是反序了一下输出。 ?textdata://text/plain,welcome to the zjct…

JSONCPP 数据解析与序列化

常用类接口 Json::Value 类 用于存储 JSON 数据的核心类。它支持将数据解析为对象、数组或基本类型(如字符串、数值等) 赋值操作符:Value& operator(Value other); 用于将一个 JSON 值赋给另一个 JSON 值 Json::Value value; value &…

40分钟学 Go 语言高并发:【实战】并发安全的配置管理器(功能扩展)

【实战】并发安全的配置管理器(功能扩展) 一、扩展思考 分布式配置中心 实现配置的集中管理支持多节点配置同步实现配置的版本一致性 配置加密 敏感配置的加密存储配置的安全传输访问权限控制 配置格式支持 支持YAML、TOML等多种格式配置格式自动…

ChatGPT 桌面版发布了,如何安装?

本章教程教大家如何进行安装。 一、下载安装包 官网地址地址:https://openai.com/chatgpt/desktop/ 支持Windows和MacOS操作系统 二、安装步骤 Windows用户下载之后,会有一个exe安装包,点击运行安装即可。 注意事项,如果Windows操…

【Electron学习笔记(二)】基于Electron开发应用程序

基于Electron开发本地应用程序 基于Electron开发本地应用程序前言正文1、创建 pages 目录2、创建 index.html 文件3 、创建 html.css 文件4 、main.js里引入页面5 、运行 start 命令6 、启用开发者模式7 、解决内容安全策略8、完善窗口行为9、配置自动重启,保存后自…

力扣--LCR 154.复杂链表的复制

题目 请实现 copyRandomList 函数&#xff0c;复制一个复杂链表。在复杂链表中&#xff0c;每个节点除了有一个 next 指针指向下一个节点&#xff0c;还有一个 random 指针指向链表中的任意节点或者 null。 提示&#xff1a; -10000 < Node.val < 10000 Node.random 为…

windows server 2019 启动 nginx 报错

环境 &#xff1a;windows server 2019 &#xff0c;nginx-1.19.7 背景&#xff1a; 自己经常用这个 nginx 包作为 web 服务器。今天发现 部署到 server 2019 上直接报错了。这可是原生的包&#xff0c;我啥也没改&#xff0c;怎么可能报错。而且之前在 其他服务器用都没问题…

在ASP.NET Core WebAPI 中使用轻量级的方式实现一个支持持久化的缓存组件

前言 在 WebAPI 开发中&#xff0c;缓存是一种常用的优化手段。Redis 是广泛使用的缓存解决方案&#xff0c;但在某些场景下&#xff0c;我们可能不希望引入第三方依赖&#xff0c;而是希望使用轻量级的方式实现一个支持持久化的缓存组件&#xff0c;满足以下需求&#xff1a;…

【区块链】深入理解椭圆曲线密码学(ECC)

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 深入理解椭圆曲线密码学(ECC)1. 概述2. 椭圆曲线的数学基础2.1 基本定义2.2 有限…

内存不足引发C++程序闪退崩溃问题的分析与总结

目录 1、内存不足一般出现在32位程序中 2、内存不足时会导致malloc或new申请内存失败 2.1、malloc申请内存失败&#xff0c;返回NULL 2.2、new申请内存失败&#xff0c;抛出异常 3、内存不足项目实战案例中相关细节与要点说明 3.1、内存不足导致malloc申请内存失败&#…