https://mp.weixin.qq.com/s/phFuqPdOY3r6k1JnPHBjww
一、系统架构
1、系统整体架构
数据流向从上到下,从各数据源、Gateway、云梯、到各应用场景。
2、淘宝云计算介绍
主要由数据源、数据平台、数据集群三部分构成。
二、数据同步方案
1、数据同步方案——概览
2、数据同步方案—— 实时同步VS非实时同步
3、数据同步方案—— TimeTunnel2 介绍
TimeTunnel是一个实时数据传输平台,TimeTunnel的主要功能就是实时完成海量数据的交换,因此TimeTunnel的业务逻辑主 要也就有两个:一个是发布数据,将数据发送到TimeTunnel;一个是订阅数据,从TimeTunnel读取自己关心的数据。TimeTunnel作为一个实时数据传输平台具有以下特点:
高效性:单点1k数据可以到4万TPS高可靠性:M-S模式时保证数据不丢失
高可用性:单点故障不影响整个集群服务
顺序性:当没有故障发生时,保证所有传输都
是顺序的,或者说一次连接内的传输是顺序的。
4、数据同步方案—— Dbsync 介绍
dbsync是一个用于同步服务库数据到HDFS的产品,通过分析数据库服务器的log文件来提取相应的数据库动作,进而达到数据库到HADOOP的数据同步,供相关部门提取增量数据。
Dbsync实时同步性能
记录大小 速度
2K 4M/s
9K 10M/s
应用场景:数据量 800G,00:10分备库打开:非实时同步完成时间0:55,实时同步完成时间0:25。
5、数据同步方案—— DataX 介绍
DataX是一个在异构的数据容器之间交换数据的工具。用于在任意的数据处理系统(RDBMS/NoSql/FS)之间交换数据。
Framework+plugin,Framework处理了高速数据交换的大部分问题,插件提供对数据处理系统的访问。
运行模式 :stand-alone / on hadoop
Webui + cui 基于元数据的高效配置。例子:表A sharding为32个库,1024张表,配置时间<1 min
DataX部分性能数据:
三、调度系统
1、调度系统——生产率银弹
2、调度系统——模块/子系统
3、调度系统——任务触发方式
Flow control/Data Trigger
Time Trigger
4、调度系统——调度方式
5、调度系统——什么是Gateway? 参与天网调度的资源。
– 数据同步(dataX, DBSync,TimeTunnel2…)
– 数据上传/下载(hadoop fs –put/get/getmerge)
– 日志收集
– Hive sql语句提交运行
– MapReduce程序提交运行
– 集群间数据同步(hadoop distcp)
6、调度系统—— Gateway规模及规划
用于生产的Gateway约30台,由天网调度统一进行任务分发,并行控制。
数据同步(dataX, DBSync,TimeTunnel2…)
数据上传/下载(hadoop fs –put/get/getmerge)
日志收集
Hive sql语句提交运行
MapReduce程序提交运行
集群间数据同步(hadoop distcp)
7、调度系统——gateway standardization
8、调度系统——Dynamic LB实现
9、调度系统——优先级策略(实现)
10、调度系统——优先级策略(意义)
11、调度系统——监控全景
四、元数据应用
面对上面的问题,靠经验丰富的架构师?还是靠智能的分析系统?
1、挖掘元数据金矿
2、基于元数据的开发平台
自动生成代码/集成开发平台
自动定位输入/自动代码
优化/自动部署/自动调度
配对分析/热点分
析/字段变更影
响/转换轨迹
元数据
3、基于元数据的分析平台——运行分析系统
4、基于元数据的分析平台——分析策略概览
5、基于元数据的分析平台——运行数据收集
6、基于元数据的分析平台——宏观分析策略
7、基于元数据的分析平台——定位系统瓶颈
每个环节的吞吐能力都是动态变化的。
在某个特定时间区间内,整个系统的吞吐能力由吞吐能力最小的一个环节决定。
如果需要发现系统的短板,需要对每个环节的吞吐曲线绘制出来。
针对系统的短板进行重点优化。
对于吞吐能力抖动比较大的环节,需要在前面设置队列进行缓冲。
瓶颈定位方法:
1 每个环节的吞吐曲线
2 两个环节之前缓冲队列的状态曲线
3 统一单位到task级别
8、基于元数据的分析平台——最值得优化的任务
从关键路径的角度考虑,任务A运行时间变化,对系统对影响可以用下图中阴影的面积来计算,它取决于下面
几个因素:
A 任务的当前运行时间——决定了当前位置的曲线斜率。
B 任务在几个叶子节点的关键路径上——决定了当前位置的曲线斜率。
C 其它关联任务的运行时间——决定A何时会离开某个关键路径,也就是决定了斜率的斜率。