1.背景
公司要求是某些业务报表达到实时标准,数据量最多的表大概400W+,报表逻辑复杂,计算一年24W数据,整个程个流程下来差不多一个小时,主要时间耗在全量数据同步跟计算上。年后大概实时需求会更多,数据量会更大,各分部数据到会到数据仓库。用脚本增量同步有限制,主要因为业务数据每天定时批量更新,周期是分钟,每次更新至少10W以上,脚本从下载数据到导入数据之后计算,流程复杂,时间太长。所以首先要解决的是数据实时同步到数据仓库。
2.OTTER 介绍
安装步骤,原理介绍 参考:https://yq.aliyun.com/articles/223077?utm_content=m_32233
上面安装会有点小问题,自己安装研究了下:详见下面
2.1 软件版本表
需要软件:java,MYSQL5.x,manager,node,ZOOKEEPER,aria2
软件名 | 版本号 | 备注 |
JAVA | 1.8.0_131 | |
mysql | 5.6 | |
manager | 4.2.12 | 最新版是,新版下载安装后发现实际目录结构跟启动脚本中路径不匹配. 例如:启动脚本配置文件是conf目录里面,然而实际的目录结构没有conf而是resource目录。 |
node | 4.2.12 | 与manager版本保持一致 |
zookeeper | 3.4.10 | |
aria2 | 1.15.2 | 下载插件,manager邮件提醒用,启动node是会检查,没有会报错。 |
2.2 安装
mysql java 安装这里不做说明,其他博客有说明。
mysql配置:
show variables like 'binlog_format' #binlong 格式必须是row
show variables like '%server_id%' #必须有server_id,该参数跟数据库复制有关,详情看官网
show variables like '%char%' #字符集character_set_server 必须是utf8,否则配置数据源表验证不通过。
#my.ini
[mysqld] 添加以下配置
character-set-server=utf8
collation-server=utf8_general_ci
binlog_format=row
log-bin=mysql-bin
server_id=1
初始化otter manager系统表:
[otter@user node]$ wget https://raw.github.com/alibaba/otter/master/manager/deployer/src/main/resources/sql/otter-manager-schema.sql
[otter@user node]$ mysql -h127.0.0.1 -uroot -p******* otter -e "source otter-manager-schema.sql";
2.2.1 zookeeper 安装
下载解压zookeeper 到/usr/local/zookeeper目录下:
[root@master conf]# cp zoo_sample.cfg zoo.cfg
[root@master conf]# cat zoo.cfg |grep -v ^#
tickTime=2000
initLimit