




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、阿里otter应用 系统部署手册版本号日期作者备注0.12016-4-29fashchina初始产品说明 名称:otter t(r)译意: 水獭,数据搬运工语言: 纯java开发定位: 基于数据库增量日志解析,准实时同步到本机房或异地机房的mysql/oracle数据库. 一个分布式数据库同步系统。工作原理一、原理描述:1. 基于Canal开源产品,获取数据库增量日志数据。 什么是Canal, 请点击2. 典型管理系统架构,manager(web管理)+node(工作节点) a. manager运行时推送同步配置到node节点 b. node节点将同步状态反馈到manager上3. 基于zoo
2、keeper,解决分布式状态调度的,允许多node节点之间协同工作. 二、什么是canal?otter之前开源的一个子项目,开源链接地址: HYPERLINK /alibaba/canal /alibaba/canalotter能解决什么?1. 异构库同步 a. mysql - mysql/oracle. (目前开源版本只支持mysql增量,目标库可以是mysql或者oracle,取决于canal的功能)2. 单机房同步 (数据库之间RTT 200ms,亮点) a. 机房容灾4. 双向同步 a. 避免回环算法 (通用的解决方案,支持大部分关系型数据库) b. 数据一致性算法 (保证双A机房模式
3、下,数据保证最终一致性,亮点)5. 文件同步 a. 站点镜像 (进行数据复制的同时,复制关联的图片,比如复制产品数据,同时复制产品图片).初步性能指标1. 单机房同步 a. 100tps , 延迟100ms b. 5000tps, 延迟1s2. 中美异地机房同步 a. 100tps , 延迟2s b. 5000tps ,延迟10sps. 性能指标取决于目标数据库性能,数据大小等多个因素,单机房100b大小,极限tps可以1w+名词解释Pipeline:从源端到目标端的整个过程描述,主要由一些同步映射过程组成。Channel:同步通道,单向同步中一个Pipeline组成,在双向同步中有两个Pip
4、eline组成。DataMediaPair:根据业务表定义映射关系,比如源表和目标表,字段映射,字段组等。DataMedia : 抽象的数据介质概念,可以理解为数据表/mq队列定义。DataMediaSource : 抽象的数据介质源信息,补充描述DateMedia。ColumnPair : 定义字段映射关系。ColumnGroup : 定义字段映射组。Node : 处理同步过程的工作节点,对应一个jvm。otter的S/E/T/L stage阶段模型说明:为了更好的支持系统的扩展性和灵活性,将整个同步流程抽象为Select/Extract/Transform/Load,这么4个阶段.Sele
5、ct阶段: 为解决数据来源的差异性,比如接入canal获取增量数据,也可以接入其他系统获取其他数据等。Extract/Transform/Load 阶段:类似于数据仓库的ETL模型,具体可为数据join,数据转化,数据Load的环境准备1. 操作系统 a. otter为纯java编写,windows/linux均可支持 b. jdk建议使用1.6.25以上的版本,稳定可靠,目前阿里巴巴使用基本为此版本2. 整个otter同步由manager、node部分组成,需要预先进行安装, 3. otter node依赖于zookeeper进行分布式调度,需要安装一个zookeeper节点或者集群.在ma
6、nager启动完成后,需要首先定义不同机房的zookeeper机器集群。网络要求千兆网络环境安装MANAGER的安装环境准备1. otter manager依赖于mysql进行配置信息的存储,所以需要预先安装mysql,并初始化otter manager的系统表结构 a. 安装mysql,这里略过。 b. 初始化otter manager系统表找到安装脚本otter-manager-schema.sql,然后登入MYSQL后执行下面语句:source otter-manager-schema.sql2. 整个otter架构依赖了zookeeper进行多节点调度,所以需要预先安装zookeepe
7、r,不需要初始化节点,otter程序启动后会自检.a. manager需要在perties中指定一个就近的zookeeper集群机器环境安装网上下载或者自己下源码打包都可以,如果是网上下载,直接从官网下载,如果自己编译,通过GIT进行checkout,具体命令如下:git clone git:alibaba/otter.gitcd otter; mvn clean install -Dmaven.test.skip -Denv=release执行上面命令后会生成软件包名字为manager.deployer-x.y.z.tar.gz,进行解压mkdir /usr/local/managertar
8、 zxvf manager.deployer-$version.tar.gz -C /usr/local/manager进行/usr/local/manager/conf目录,对perties文件进行修改# otter manager domain name #修改为正确访问ip,生成URL使用otter.domainName = # otter manager http portotter.port = 8080# jetty web config xmlotter.jetty = jetty.xml# otter manager database config ,修改为正确数据库信息 =
9、com.mysql.jdbc.Driverotter.database.driver.url = jdbc:mysql:/127.0.01:3306/ottermanagerotter.database.driver.username = roototter.database.driver.password = hello# otter communication portmunication.manager.port = 1099# otter communication pool sizemunication.pool.size = 10# default zookeeper addres
10、s,修改为正确的地址,手动选择一个地域就近的zookeeper集群列表otter.zookeeper.cluster.default = :2181# default zookeeper sesstion timeout = 90sotter.zookeeper.sessionTimeout = 90000# otter arbitrate connect manager configotter.manager.address = $otter.domainName:$munication.manager.port PS:注意上面标红的地方,这些地方都是需要调整的。启动和关闭/usr/loca
11、l/manager/bin/startup.sh启动/usr/local/manager/bin/stop.sh关闭通过看日志信息获得是否正常cd /usr/local/managertail f logs/manager.log如果启动日志中包含下面语句则说明manager配置成功。2013-08-14 13:19:45.911 WARN com.alibaba.otter.manager.deployer.JettyEmbedServer - #Jetty Embed Server is startup!2013-08-14 13:19:45.911 WARN com.alibaba.ot
12、ter.manager.deployer.OtterManagerLauncher - # the manager server is running now .验证访问: :8080/,出现otter的页面,即代表启动成功访问::8080/login.htm,初始密码为:admin/admin,即可完成登录. 目前:匿名用户只有只读查看的权限,登录为管理员才可以有操作权限PS:上述和8080是在perties中配置。NODE节点安装环境准备1. otter node会受otter manager进行管理,所以需要预先安装otter manager。2. 完成manager安装后,需要在man
13、ager页面为node定义配置信息,并生一个唯一id.a. 首先访问manager页面(通过admin/admin登录)的机器管理页面,点击添加机器按钮上面配置说明如下:机器名称:可以随意定义,方便自己记忆即可机器ip:对应node节点将要部署的机器ip,如果有多ip时,可选择其中一个ip进行暴露. (此ip是整个集群通讯的入口,实际情况千万别使用,否则多个机器的node节点会无法识别)机器端口:对应node节点将要部署时启动的数据通讯端口,建议值:2088下载端口:对应node节点将要部署时启动的数据下载端口,建议值:9090外部ip :对应node节点将要部署的机器ip,存在的一个外部ip
14、,允许通讯的时候走公网处理。zookeeper集群:为提升通讯效率,不同机房的机器可选择就近的zookeeper集群.node这种设计,是为解决单机部署多实例而设计的,允许单机多node指定不同的端口。b. 机器添加完成后,跳转到机器列表页面,获取对应的机器序号nid通过这两部操作,获取到了node节点对应的唯一标示,称之为node id,简称:nid. 记录该nid,后续启动nid时会使用3. node节点进行跨机房传输时,会使用到HTTP多线程传输技术,目前主要依赖了aria2c做为其下载客户端。环境安装安装aria2软件包列表安装顺序如下:rpm ivh nettle-2.2-1.el6
15、.rf.x86_64.rpmrpm ivh nettle-devel-2.2-1.el6.rf.x86_64.rpmrpm ivh aria2-1.16.4-1.el6.rf.x86_64.rpm2、安装node网上下载或者自己下源码打包都可以,如果是网上下载,直接从官网下载,如果自己编译,通过GIT进行checkout,具体命令如下:git clone git:alibaba/otter.gitcd otter; mvn clean install -Dmaven.test.skip -Denv=release执行上面命令后会生成软件包名字为node.deployer-x.y.z.tar.g
16、z,进行解压。mkdir /usr/local/nodetar zxvf manager.deployer-$version.tar.gz -C /usr/local/node配置修改 a.nid配置 (将环境准备中添加机器后获取到的序号,保存到conf目录下的nid文件,比如我添加的机器对应序号为1)echo 1 conf/nidb.进行/usr/local/node/conf目录,对perties文件进行修改# otter node root dir#上述为/usr/local/node路径otter.nodeHome = $user.dir/./node # otter node dir
17、otter.htdocs.dir = $otter.nodeHome/htdocsotter.download.dir = $otter.nodeHome/downloadotter.extend.dir= $otter.nodeHome/extend# default zookeeper sesstion timeout = 90sotter.zookeeper.sessionTimeout = 90000# otter communication pool sizemunication.pool.size = 10# otter arbitrate & node connect manag
18、er config , #otter manager的perties中的# munication.manager.port值otter.manager.address = :1099启动和关闭/usr/local/node/bin/startup.sh 启动/usr/local/node/bin/stop.sh 关闭查看日志cd /usr/local/nodetail f log/node/node.log如果manager页面的ip配置不正确,会出现类似错误Exception in thread main java.lang.IllegalArgumentException: node1 i
19、p port2088 , but your host ip15 is not matched! at com.alibaba.otter.node.etl.OtterController.checkNidVaild(OtterController.java:245) at com.alibaba.otter.node.etl.OtterController.initNid(OtterController.java:230) at com.alibaba.otter.node.etl.OtterController.start(OtterController.java:73) at com.al
20、ibaba.otter.node.deployer.OtterLauncher.main(OtterLauncher.java:25)时修改ip为对应的host ip后,再次启动即可。日志出现下述文字则表明配置启动准确。2013-08-14 15:42:16.886 main INFO com.alibaba.otter.node.deployer.OtterLauncher - INFO # the otter server is running now .验证在manager控制管理页的节点管理,如果显示已启动,则表明manager和node通讯正常。MYSQL以及JDK的安装配置MYSQ
21、L和JDK的安装本文不做介绍,请参考其他相关指南完成安装和配置,另外otter只支持5.6及以下版本的Mysql,不支持maridb,请务必注意。在mysql安装完成后,修改mysql的配置文件f文件,主要是打开bin-log以及调整bin-log-format方式,具体如下:vi /etc/f log-bin=mysql-bin # binary logging format - mixed recommended #binlog_format=mixed binlog_format=ROW #修改成ROW server-id = 1 #确保serverid设置为不一样的值ps:注意上面红色
22、标注的配置。加入cannel用户权限用管理员用户登录mysql#暂且定mysql的管理员用户名和密码为root/123456mysql u root p 123456 登录成功后,以此在mysql终端输入下面SQLCREATE USER canal IDENTIFIED BY canal; GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO canal%;FLUSH PRIVILEGES;show grants for canal;Zookeeper的安装和配置otter使用zookeeper作为集群管理,zookeeper可以用单机
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 青岛今年数学试卷
- 宁乡市初三联考数学试卷
- 2025北京国家金融科技风险监控中心有限公司招聘市场发展笔试参考题库附带答案详解
- 盘锦中考题数学试卷
- 2025年浙江台州市体育中心有限公司公开招聘工作人员笔试参考题库附带答案详解
- 期中九年级数学试卷
- 2025年山东烟台凤凰文旅发展集团有限公司招聘工作人员20人笔试参考题库附带答案详解
- 毕业论文通信专业
- 2025年度中国联合航空有限公司乘务员招聘(北京站)笔试参考题库附带答案详解
- 平顶山中考二模数学试卷
- 2023年山东威海乳山市事业单位招聘带编入伍高校毕业生12人笔试备考题库及答案解析
- 结构方案论证会汇报模板参考83P
- GB/T 24218.1-2009纺织品非织造布试验方法第1部分:单位面积质量的测定
- 《企业人力资源管理专业实践报告2500字》
- 万东GFS型高频高压发生装置维修手册
- 公寓de全人物攻略本为个人爱好而制成如需转载注明信息
- 企业经营沙盘模拟实训指导书
- 魏家庄村道路实施方案
- 智能制造生产线运营与维护课件完整版
- 【外科学】心脏疾病
- 内部审计-内部审计准则完整版-中国内部审计准则体系
评论
0/150
提交评论