阿里otter系统部署手册.docx

上传人:b****6 文档编号:6863710 上传时间:2023-01-11 格式:DOCX 页数:19 大小:2.28MB
下载 相关 举报
阿里otter系统部署手册.docx_第1页
第1页 / 共19页
阿里otter系统部署手册.docx_第2页
第2页 / 共19页
阿里otter系统部署手册.docx_第3页
第3页 / 共19页
阿里otter系统部署手册.docx_第4页
第4页 / 共19页
阿里otter系统部署手册.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

阿里otter系统部署手册.docx

《阿里otter系统部署手册.docx》由会员分享,可在线阅读,更多相关《阿里otter系统部署手册.docx(19页珍藏版)》请在冰豆网上搜索。

阿里otter系统部署手册.docx

阿里otter系统部署手册

阿里otter应用

系统部署手册

版本号

日期

作者

备注

0.1

2016-4-29

fashchina

初始

 

一、产品说明

名称:

otter['ɒtə(r)]

译意:

水獭,数据搬运工

语言:

纯java开发

定位:

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

二、工作原理

一、原理描述:

1.基于Canal开源产品,获取数据库增量日志数据。

什么是Canal,请点击

2.典型管理系统架构,manager(web管理)+node(工作节点)

a.manager运行时推送同步配置到node节点

b.node节点将同步状态反馈到manager上

3.基于zookeeper,解决分布式状态调度的,允许多node节点之间协同工作.

二、什么是canal?

otter之前开源的一个子项目,开源链接地址:

 

三、otter能解决什么?

1.异构库同步

a.mysql->mysql/oracle.(目前开源版本只支持mysql增量,目标库可以是mysql或者oracle,取决于canal的功能)

2.单机房同步(数据库之间RTT<1ms)

a.数据库版本升级

b.数据表迁移

c.异步二级索引

3.异地机房同步(比如阿里巴巴国际站就是杭州和美国机房的数据库同步,RTT>200ms,亮点)

a.机房容灾

4.双向同步

a.避免回环算法(通用的解决方案,支持大部分关系型数据库)

b.数据一致性算法(保证双A机房模式下,数据保证最终一致性,亮点)

5.文件同步

a.站点镜像(进行数据复制的同时,复制关联的图片,比如复制产品数据,同时复制产品图片).

四、初步性能指标

1.单机房同步

a.100tps,延迟100ms

b.5000tps,延迟1s

2.中美异地机房同步

a.100tps,延迟2s

b.5000tps,延迟10s

ps.性能指标取决于目标数据库性能,数据大小等多个因素,单机房100b大小,极限tps可以1w+

五、名词解释

Pipeline:

从源端到目标端的整个过程描述,主要由一些同步映射过程组成。

Channel:

同步通道,单向同步中一个Pipeline组成,在双向同步中有两个Pipeline组成。

DataMediaPair:

根据业务表定义映射关系,比如源表和目标表,字段映射,字段组等。

DataMedia:

抽象的数据介质概念,可以理解为数据表/mq队列定义。

DataMediaSource:

抽象的数据介质源信息,补充描述DateMedia。

ColumnPair:

定义字段映射关系。

ColumnGroup:

定义字段映射组。

Node:

处理同步过程的工作节点,对应一个jvm。

六、otter的S/E/T/Lstage阶段模型

说明:

为了更好的支持系统的扩展性和灵活性,将整个同步流程抽象为Select/Extract/Transform/Load,这么4个阶段.

Select阶段:

为解决数据来源的差异性,比如接入canal获取增量数据,也可以接入其他系统获取其他数据等。

Extract/Transform/Load阶段:

类似于数据仓库的ETL模型,具体可为数据join,数据转化,数据Load的

七、环境准备

1.操作系统

a.otter为纯java编写,windows/linux均可支持

b.jdk建议使用1.6.25以上的版本,稳定可靠,目前阿里巴巴使用基本为此版本

2.整个otter同步由manager、node部分组成,需要预先进行安装,

3.otternode依赖于zookeeper进行分布式调度,需要安装一个zookeeper节点或者集群.在manager启动完成后,需要首先定义不同机房的zookeeper机器集群。

(一)网络要求

千兆网络

八、环境安装

(一)MANAGER的安装

a)环境准备

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

a.安装mysql,这里略过。

b.初始化ottermanager系统表

找到安装脚本otter-manager-schema.sql,然后登入MYSQL后执行下面语句:

sourceotter-manager-schema.sql

2.整个otter架构依赖了zookeeper进行多节点调度,所以需要预先安装zookeeper,不需要初始化节点,otter程序启动后会自检.

a.manager需要在otter.properties中指定一个就近的zookeeper集群机器

b)环境安装

网上下载或者自己下源码打包都可以,如果是网上下载,直接从官网下载,如果自己编译,通过GIT进行checkout,具体命令如下:

gitclone:

alibaba/otter.git

cdotter;

mvncleaninstall-Dmaven.test.skip-Denv=release

 

执行上面命令后会生成软件包名字为manager.deployer-x.y.z.tar.gz,进行解压

mkdir/usr/local/manager

tarzxvfmanager.deployer-$version.tar.gz-C/usr/local/manager

 

进行/usr/local/manager/conf目录,对otter.properties文件进行修改

##ottermanagerdomainname#修改为正确访问ip,生成URL使用

otter.domainName=127.0.0.1

##ottermanagerhttpport

otter.port=8080

##jettywebconfigxml

otter.jetty=jetty.xml

##ottermanagerdatabaseconfig,修改为正确数据库信息

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

##ottercommunicationport

munication.manager.port=1099

##ottercommunicationpoolsize

munication.pool.size=10

##defaultzookeeperaddress,修改为正确的地址,手动选择一个地域就近的zookeeper集群列表

otter.zookeeper.cluster.default=127.0.0.1:

2181

##defaultzookeepersesstiontimeout=90s

otter.zookeeper.sessionTimeout=90000

##otterarbitrateconnectmanagerconfig

otter.manager.address=${otter.domainName}:

${munication.manager.port}

 

PS:

注意上面标红的地方,这些地方都是需要调整的。

启动和关闭

/usr/local/manager/bin/startup.sh启动

/usr/local/manager/bin/stop.sh关闭

通过看日志信息获得是否正常

cd/usr/local/manager

tail–flogs/manager.log

如果启动日志中包含下面语句则说明manager配置成功。

2013-08-1413:

19:

45.911[]WARNcom.alibaba.otter.manager.deployer.JettyEmbedServer-##JettyEmbedServerisstartup!

2013-08-1413:

19:

45.911[]WARNcom.alibaba.otter.manager.deployer.OtterManagerLauncher-##themanagerserverisrunningnow......

验证

访问:

,出现otter的页面,即代表启动成功

访问:

,初始密码为:

admin/admin,即可完成登录.目前:

匿名用户只有只读查看的权限,登录为管理员才可以有操作权限

PS:

上述127.0.0.1和8080是在otter.properties中配置。

(二)NODE节点安装

a)环境准备

1.otternode会受ottermanager进行管理,所以需要预先安装ottermanager。

2.完成manager安装后,需要在manager页面为node定义配置信息,并生一个唯一id.

a.首先访问manager页面(通过admin/admin登录)的机器管理页面,点击添加机器按钮

上面配置说明如下:

机器名称:

可以随意定义,方便自己记忆即可

机器ip:

对应node节点将要部署的机器ip,如果有多ip时,可选择其中一个ip进行暴露.(此ip是整个集群通讯的入口,实际情况千万别使用127.0.0.1,否则多个机器的node节点会无法识别)

机器端口:

对应node节点将要部署时启动的数据通讯端口,建议值:

2088

下载端口:

对应node节点将要部署时启动的数据下载端口,建议值:

9090

外部ip:

对应node节点将要部署的机器ip,存在的一个外部ip,允许通讯的时候走公网处理。

zookeeper集群:

为提升通讯效率,不同机房的机器可选择就近的zookeeper集群.

node这种设计,是为解决单机部署多实例而设计的,允许单机多node指定不同的端口。

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

通过这两部操作,获取到了node节点对应的唯一标示,称之为nodeid,简称:

nid.记录该nid,后续启动nid时会使用

3.node节点进行跨机房传输时,会使用到HTTP多线程传输技术,目前主要依赖了aria2c做为其下载客户端。

b)环境安装

1、安装aria2

软件包列表

安装顺序如下:

rpm–ivhnettle-2.2-1.el6.rf.x86_64.rpm

rpm–ivhnettle-devel-2.2-1.el6.rf.x86_64.rpm

rpm–ivharia2-1.16.4-1.el6.rf.x86_64.rpm

2、安装node

网上下载或者自己下源码打包都可以,如果是网上下载,直接从官网下载,如果自己编译,通过GIT进行checkout,具体命令如下:

gitclone:

alibaba/otter.git

cdotter;

mvncleaninstall-Dmaven.test.skip-Denv=release

 

执行上面命令后会生成软件包名字为node.deployer-x.y.z.tar.gz,进行解压。

mkdir/usr/local/node

tarzxvfmanager.deployer-$version.tar.gz-C/usr/local/node

配置修改

a.nid配置(将环境准备中添加机器后获取到的序号,保存到conf目录下的nid文件,比如我添加的机器对应序号为1)

echo1>conf/nid

b.进行/usr/local/node/conf目录,对otter.properties文件进行修改

#otternoderootdir

#上述为/usr/local/node路径

otter.nodeHome=${user.dir}/../node

##otternodedir

otter.htdocs.dir=${otter.nodeHome}/htdocs

otter.download.dir=${otter.nodeHome}/download

otter.extend.dir=${otter.nodeHome}/extend

##defaultzookeepersesstiontimeout=90s

otter.zookeeper.sessionTimeout=90000

##ottercommunicationpoolsize

munication.pool.size=10

##otterarbitrate&nodeconnectmanagerconfig,

#ottermanager的otter.properties中的

#munication.manager.port值

otter.manager.address=127.0.0.1:

1099

 

启动和关闭

/usr/local/node/bin/startup.sh启动

/usr/local/node/bin/stop.sh关闭

查看日志

cd/usr/local/node

tail–flog/node/node.log

如果manager页面的ip配置不正确,会出现类似错误

Exceptioninthread"main"java.lang.IllegalArgumentException:

node[1]ip[127.0.0.1]port[2088],butyourhostip[10.12.48.215]isnotmatched!

atcom.alibaba.otter.node.etl.OtterController.checkNidVaild(OtterController.java:

245)

atcom.alibaba.otter.node.etl.OtterController.initNid(OtterController.java:

230)

atcom.alibaba.otter.node.etl.OtterController.start(OtterController.java:

73)

atcom.alibaba.otter.node.deployer.OtterLauncher.main(OtterLauncher.java:

25)

 

时修改ip为对应的hostip后,再次启动即可。

日志出现下述文字则表明配置启动准确。

2013-08-1415:

42:

16.886[main]INFOcom.alibaba.otter.node.deployer.OtterLauncher-INFO##theotterserverisrunningnow......

 

验证

在manager控制管理页的节点管理,如果显示已启动,则表明manager和node通讯正常。

(三)MYSQL以及JDK的安装配置

MYSQL和JDK的安装本文不做介绍,请参考其他相关指南完成安装和配置,另外otter只支持5.6及以下版本的Mysql,不支持maridb,请务必注意。

在mysql安装完成后,修改mysql的配置文件f文件,主要是打开bin-log以及调整bin-log-format方式,具体如下:

vi/etc/f

log-bin=mysql-bin

#binaryloggingformat-mixedrecommended

#binlog_format=mixed

binlog_format=ROW#修改成ROW

server-id=1#确保serverid设置为不一样的值

ps:

注意上面红色标注的配置。

加入cannel用户权限

用管理员用户登录mysql

#暂且定mysql的管理员用户名和密码为root/123456

mysql–uroot–p123456

登录成功后,以此在mysql终端输入下面SQL

CREATEUSERcanalIDENTIFIEDBY'canal';

GRANTSELECT,REPLICATIONSLAVE,REPLICATIONCLIENTON*.*TO'canal'@'%';

FLUSHPRIVILEGES;

showgrantsfor'canal';

(四)Zookeeper的安装和配置

otter使用zookeeper作为集群管理,zookeeper可以用单机运行模式,但是强烈建议使用集权模式在增强zookeeper的可用性,由于安装配置简单,具体安装配置请参考其他资料进行,此次不再进行阐述。

九、MANAGER的配置管理

(一)添加Node

在manager的界面,添加Node,如下图:

机器管理—》Node管理

  如图,点击添加按钮,添加内容参考下图:

    添加完成后,根据添加后的node序号,如下图中,192.168.85.10中对应的序号是1,那么进入10机器下的node目录,执行echo1>conf/nid,然后启动node。

         

(二)添加Zookeeper

 机器管理-》Zookeeper管理

如图,点击添加按钮,添加内容参考下图:

(三)数据源配置

配置管理-》数据源配置,点击添加按钮

 数据源配置填写需要同步的两个数据库信息         

 添加内容如下图所示,添加完成后,点击验证连接数据源  

(四)数据表配置

配置管理-》数据表配置,点击添加按钮。

 数据表配置需要同步的表的信息 

                         

添加数据库的名称,数据表的名称和数据源名称,并点击验证连接表

       如果需要同步整个数据库,那么数据库表以“.*”代替。

(五)canal配置

 配置管理-》canal配置,点击添加按钮

                

         canal需要添加两个,每一个对应一个数据库信息,从配置的数据库中,拉取bin-log信息。

(六)同步管理

  1)添加channel

                           

点击添加按钮

2)channel下需要配置pipeline,点击channel的名字,可以添加pipeline

                        

 3)添加完成pipeline后,点击pipeline的名字,添加映射关系,映射关系配置同步的原表和目标表。

   4)配置完成后,启动channel.    

十、附录:

双写配置

由于目前是单写模式,如果双写,则需要在执行下面步骤

1)点击使用文档-》数据库初始化页面。

   在双机房的数据库(需要同步数据的数据库,而非manager自己的数据库)同时执行初始化SQL。

     

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 城乡园林规划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1