Otter介紹及(Manager)安裝


Otter 簡單介紹

名稱:otter ['ɒtə(r)] 譯意: 水獺,數據搬運工 語言: 純java開發 定位: 基於數據庫增量日志解析,准實時同步到本機房或異地機房的mysql/oracle數據庫. 一個分布式數據庫同步系統.。

1、基於Canal開源產品,獲取數據庫增量日志數據。 Canal對應於I/O thread,接收Master Binary Log; Otter對應於SQL thread,通過Canal獲取Binary Log數據,執行同步插入數據庫

2、典型管理系統架構,manager(web管理)+node(工作節點) a. manager運行時推送同步配置到node節點 b. node節點將同步狀態反饋到manager上

3、基於zookeeper,解決分布式狀態調度的,允許多node節點之間協同工作

安裝說明

1)下載,https://github.com/alibaba/otter/releases

下載 manager.deployer-xxx.tar.gz

下載好后上傳至服務器

mkdir ~/otter #創建otter目錄
tar zxvf manager.deployer-4.2.18.tar.gz -C ~/otter/manager-deployer/ #解壓

2)創建otter數據庫(這里用的是mysql數據庫)
執行腳本otter manager sql (內容末附上)

  1. 修改otter.properties

otter.domainName manage管理界面IP地址

otter.port 端口號

otter.database.driver.class.name mysql數據庫的driver
otter.database.driver.url 數據庫ip地址
otter.database.driver.username 數據庫用戶名
otter.database.driver.password 數據庫密碼

4)啟動

cd /home/hadoop/otter/manager-deployer/bin

sh startup.sh

  1. 查看日志

啟動成功

驗證:

http://172.16.2.119:8080/

http://172.16.2.119:8080/login.htm

初始密碼為:admin/admin,即可完成登錄. 目前:匿名用戶只有只讀查看的權限,登錄為管理員才可以有操作權限

附上otter manager sql
復制代碼

CREATE DATABASE /!32312 IF NOT EXISTS/ otter /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_bin */;

USE otter;

SET sql_mode='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

CREATE TABLE ALARM_RULE (
ID bigint(20) unsigned NOT NULL AUTO_INCREMENT,
MONITOR_NAME varchar(1024) DEFAULT NULL,
RECEIVER_KEY varchar(1024) DEFAULT NULL,
STATUS varchar(32) DEFAULT NULL,
PIPELINE_ID bigint(20) NOT NULL,
DESCRIPTION varchar(256) DEFAULT NULL,
GMT_CREATE timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
GMT_MODIFIED timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
MATCH_VALUE varchar(1024) DEFAULT NULL,
PARAMETERS text DEFAULT NULL,
PRIMARY KEY (ID)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

CREATE TABLE AUTOKEEPER_CLUSTER (
ID bigint(20) NOT NULL AUTO_INCREMENT,
CLUSTER_NAME varchar(200) NOT NULL,
SERVER_LIST varchar(1024) NOT NULL,
DESCRIPTION varchar(200) DEFAULT NULL,
GMT_CREATE timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
GMT_MODIFIED timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (ID)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

CREATE TABLE CANAL (
ID bigint(20) unsigned NOT NULL AUTO_INCREMENT,
NAME varchar(200) DEFAULT NULL,
DESCRIPTION varchar(200) DEFAULT NULL,
PARAMETERS text DEFAULT NULL,
GMT_CREATE timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
GMT_MODIFIED timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (ID),
UNIQUE KEY CANALUNIQUE (NAME)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

CREATE TABLE CHANNEL (
ID bigint(20) NOT NULL AUTO_INCREMENT,
NAME varchar(200) NOT NULL,
DESCRIPTION varchar(200) DEFAULT NULL,
PARAMETERS text DEFAULT NULL,
GMT_CREATE timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
GMT_MODIFIED timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (ID),
UNIQUE KEY CHANNELUNIQUE (NAME)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

CREATE TABLE COLUMN_PAIR (
ID bigint(20) NOT NULL AUTO_INCREMENT,
SOURCE_COLUMN varchar(200) DEFAULT NULL,
TARGET_COLUMN varchar(200) DEFAULT NULL,
DATA_MEDIA_PAIR_ID bigint(20) NOT NULL,
GMT_CREATE timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
GMT_MODIFIED timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (ID),
KEY idx_DATA_MEDIA_PAIR_ID (DATA_MEDIA_PAIR_ID)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

CREATE TABLE COLUMN_PAIR_GROUP (
ID bigint(20) NOT NULL AUTO_INCREMENT,
DATA_MEDIA_PAIR_ID bigint(20) NOT NULL,
COLUMN_PAIR_CONTENT text DEFAULT NULL,
GMT_CREATE timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
GMT_MODIFIED timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (ID),
KEY idx_DATA_MEDIA_PAIR_ID (DATA_MEDIA_PAIR_ID)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

CREATE TABLE DATA_MEDIA (
ID bigint(20) NOT NULL AUTO_INCREMENT,
NAME varchar(200) NOT NULL,
NAMESPACE varchar(200) NOT NULL,
PROPERTIES varchar(1000) NOT NULL,
DATA_MEDIA_SOURCE_ID bigint(20) NOT NULL,
GMT_CREATE timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
GMT_MODIFIED timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (ID),
UNIQUE KEY DATAMEDIAUNIQUE (NAME,NAMESPACE,DATA_MEDIA_SOURCE_ID)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

CREATE TABLE DATA_MEDIA_PAIR (
ID bigint(20) NOT NULL AUTO_INCREMENT,
PULLWEIGHT bigint(20) DEFAULT NULL,
PUSHWEIGHT bigint(20) DEFAULT NULL,
RESOLVER text DEFAULT NULL,
FILTER text DEFAULT NULL,
SOURCE_DATA_MEDIA_ID bigint(20) DEFAULT NULL,
TARGET_DATA_MEDIA_ID bigint(20) DEFAULT NULL,
PIPELINE_ID bigint(20) NOT NULL,
COLUMN_PAIR_MODE varchar(20) DEFAULT NULL,
GMT_CREATE timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
GMT_MODIFIED timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (ID),
KEY idx_PipelineID (PIPELINE_ID,ID)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

CREATE TABLE DATA_MEDIA_SOURCE (
ID bigint(20) NOT NULL AUTO_INCREMENT,
NAME varchar(200) NOT NULL,
TYPE varchar(20) NOT NULL,
PROPERTIES varchar(1000) NOT NULL,
GMT_CREATE timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
GMT_MODIFIED timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (ID),
UNIQUE KEY DATAMEDIASOURCEUNIQUE (NAME)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

CREATE TABLE DELAY_STAT (
ID bigint(20) NOT NULL AUTO_INCREMENT,
DELAY_TIME bigint(20) NOT NULL,
DELAY_NUMBER bigint(20) NOT NULL,
PIPELINE_ID bigint(20) NOT NULL,
GMT_CREATE timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
GMT_MODIFIED timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (ID),
KEY idx_PipelineID_GmtModified_ID (PIPELINE_ID,GMT_MODIFIED,ID),
KEY idx_Pipeline_GmtCreate (PIPELINE_ID,GMT_CREATE),
KEY idx_GmtCreate_id (GMT_CREATE,ID)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

CREATE TABLE LOG_RECORD (
ID bigint(20) NOT NULL AUTO_INCREMENT,
NID varchar(200) DEFAULT NULL,
CHANNEL_ID varchar(200) NOT NULL,
PIPELINE_ID varchar(200) NOT NULL,
TITLE varchar(1000) DEFAULT NULL,
MESSAGE text DEFAULT NULL,
GMT_CREATE timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
GMT_MODIFIED timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (ID),
KEY logRecord_pipelineId (PIPELINE_ID)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

CREATE TABLE NODE (
ID bigint(20) NOT NULL AUTO_INCREMENT,
NAME varchar(200) NOT NULL,
IP varchar(200) NOT NULL,
PORT bigint(20) NOT NULL,
DESCRIPTION varchar(200) DEFAULT NULL,
PARAMETERS text DEFAULT NULL,
GMT_CREATE timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
GMT_MODIFIED timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (ID),
UNIQUE KEY NODEUNIQUE (NAME,IP)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

CREATE TABLE PIPELINE (
ID bigint(20) NOT NULL AUTO_INCREMENT,
NAME varchar(200) NOT NULL,
DESCRIPTION varchar(200) DEFAULT NULL,
PARAMETERS text DEFAULT NULL,
CHANNEL_ID bigint(20) NOT NULL,
GMT_CREATE timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
GMT_MODIFIED timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (ID),
UNIQUE KEY PIPELINEUNIQUE (NAME,CHANNEL_ID),
KEY idx_ChannelID (CHANNEL_ID,ID)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

CREATE TABLE PIPELINE_NODE_RELATION (
ID bigint(20) NOT NULL AUTO_INCREMENT,
NODE_ID bigint(20) NOT NULL,
PIPELINE_ID bigint(20) NOT NULL,
LOCATION varchar(20) NOT NULL,
GMT_CREATE timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
GMT_MODIFIED timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (ID),
KEY idx_PipelineID (PIPELINE_ID)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

CREATE TABLE SYSTEM_PARAMETER (
ID bigint(20) unsigned NOT NULL,
VALUE text DEFAULT NULL,
GMT_CREATE timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
GMT_MODIFIED timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (ID)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE TABLE_HISTORY_STAT (
ID bigint(20) unsigned NOT NULL AUTO_INCREMENT,
FILE_SIZE bigint(20) DEFAULT NULL,
FILE_COUNT bigint(20) DEFAULT NULL,
INSERT_COUNT bigint(20) DEFAULT NULL,
UPDATE_COUNT bigint(20) DEFAULT NULL,
DELETE_COUNT bigint(20) DEFAULT NULL,
DATA_MEDIA_PAIR_ID bigint(20) DEFAULT NULL,
PIPELINE_ID bigint(20) DEFAULT NULL,
START_TIME timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
END_TIME timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
GMT_CREATE timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
GMT_MODIFIED timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (ID),
KEY idx_DATA_MEDIA_PAIR_ID_END_TIME (DATA_MEDIA_PAIR_ID,END_TIME),
KEY idx_GmtCreate_id (GMT_CREATE,ID)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

CREATE TABLE TABLE_STAT (
ID bigint(20) NOT NULL AUTO_INCREMENT,
FILE_SIZE bigint(20) NOT NULL,
FILE_COUNT bigint(20) NOT NULL,
INSERT_COUNT bigint(20) NOT NULL,
UPDATE_COUNT bigint(20) NOT NULL,
DELETE_COUNT bigint(20) NOT NULL,
DATA_MEDIA_PAIR_ID bigint(20) NOT NULL,
PIPELINE_ID bigint(20) NOT NULL,
GMT_CREATE timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
GMT_MODIFIED timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (ID),
KEY idx_PipelineID_DataMediaPairID (PIPELINE_ID,DATA_MEDIA_PAIR_ID)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

CREATE TABLE THROUGHPUT_STAT (
ID bigint(20) NOT NULL AUTO_INCREMENT,
TYPE varchar(20) NOT NULL,
NUMBER bigint(20) NOT NULL,
SIZE bigint(20) NOT NULL,
PIPELINE_ID bigint(20) NOT NULL,
START_TIME timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
END_TIME timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
GMT_CREATE timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
GMT_MODIFIED timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (ID),
KEY idx_PipelineID_Type_GmtCreate_ID (PIPELINE_ID,TYPE,GMT_CREATE,ID),
KEY idx_PipelineID_Type_EndTime_ID (PIPELINE_ID,TYPE,END_TIME,ID),
KEY idx_GmtCreate_id (GMT_CREATE,ID)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

CREATE TABLE USER (
ID bigint(20) NOT NULL AUTO_INCREMENT,
USERNAME varchar(20) NOT NULL,
PASSWORD varchar(20) NOT NULL,
AUTHORIZETYPE varchar(20) NOT NULL,
DEPARTMENT varchar(20) NOT NULL,
REALNAME varchar(20) NOT NULL,
GMT_CREATE timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
GMT_MODIFIED timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (ID),
UNIQUE KEY USERUNIQUE (USERNAME)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

CREATE TABLE DATA_MATRIX (
ID bigint(20) NOT NULL AUTO_INCREMENT,
GROUP_KEY varchar(200) DEFAULT NULL,
MASTER varchar(200) DEFAULT NULL,
SLAVE varchar(200) DEFAULT NULL,
DESCRIPTION varchar(200) DEFAULT NULL,
GMT_CREATE timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
GMT_MODIFIED timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (ID),
KEY GROUPKEY (GROUP_KEY)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

CREATE TABLE IF NOT EXISTS meta_history (
id bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主鍵',
gmt_create datetime NOT NULL COMMENT '創建時間',
gmt_modified datetime NOT NULL COMMENT '修改時間',
destination varchar(128) DEFAULT NULL COMMENT '通道名稱',
binlog_file varchar(64) DEFAULT NULL COMMENT 'binlog文件名',
binlog_offest bigint(20) DEFAULT NULL COMMENT 'binlog偏移量',
binlog_master_id varchar(64) DEFAULT NULL COMMENT 'binlog節點id',
binlog_timestamp bigint(20) DEFAULT NULL COMMENT 'binlog應用的時間戳',
use_schema varchar(1024) DEFAULT NULL COMMENT '執行sql時對應的schema',
sql_schema varchar(1024) DEFAULT NULL COMMENT '對應的schema',
sql_table varchar(1024) DEFAULT NULL COMMENT '對應的table',
sql_text longtext DEFAULT NULL COMMENT '執行的sql',
sql_type varchar(256) DEFAULT NULL COMMENT 'sql類型',
extra text DEFAULT NULL COMMENT '額外的擴展信息',
PRIMARY KEY (id),
UNIQUE KEY binlog_file_offest(destination,binlog_master_id,binlog_file,binlog_offest),
KEY destination (destination),
KEY destination_timestamp (destination,binlog_timestamp),
KEY gmt_modified (gmt_modified)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='表結構變化明細表';

CREATE TABLE IF NOT EXISTS meta_snapshot (
id bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主鍵',
gmt_create datetime NOT NULL COMMENT '創建時間',
gmt_modified datetime NOT NULL COMMENT '修改時間',
destination varchar(128) DEFAULT NULL COMMENT '通道名稱',
binlog_file varchar(64) DEFAULT NULL COMMENT 'binlog文件名',
binlog_offest bigint(20) DEFAULT NULL COMMENT 'binlog偏移量',
binlog_master_id varchar(64) DEFAULT NULL COMMENT 'binlog節點id',
binlog_timestamp bigint(20) DEFAULT NULL COMMENT 'binlog應用的時間戳',
data longtext DEFAULT NULL COMMENT '表結構數據',
extra text DEFAULT NULL COMMENT '額外的擴展信息',
PRIMARY KEY (id),
UNIQUE KEY binlog_file_offest(destination,binlog_master_id,binlog_file,binlog_offest),
KEY destination (destination),
KEY destination_timestamp (destination,binlog_timestamp),
KEY gmt_modified (gmt_modified)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='表結構記錄表快照表';

insert into USER(ID,USERNAME,PASSWORD,AUTHORIZETYPE,DEPARTMENT,REALNAME,GMT_CREATE,GMT_MODIFIED) values(null,'admin','801fc357a5a74743894a','ADMIN','admin','admin',now(),now());
insert into USER(ID,USERNAME,PASSWORD,AUTHORIZETYPE,DEPARTMENT,REALNAME,GMT_CREATE,GMT_MODIFIED) values(null,'guest','471e02a154a2121dc577','OPERATOR','guest','guest',now(),now());

復制代碼


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM