淘宝云梯分布式计算平台架构

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何时会离开某个关键路径,也就是决定了斜率的斜率。


Category golang