今天咱们来看一下淘宝、美团和滴滴的大数据平台,一方面进一步学习大厂大数据平台的架构,另外一方面也学习大厂的工程师如何画架构图。经过大厂的这些架构图,你就会发现,不但这些知名大厂的大数据平台设计方案大同小异,架构图的画法也有套路能够寻觅。数据库
淘宝大数据平台服务器
淘宝多是中国互联网业界较早搭建了本身大数据平台的公司,下图是淘宝早期的 Hadoop 大数据平台,比较典型。架构
淘宝的大数据平台基本也是分红三个部分,上面是数据源与数据同步;中间是云梯 1,也就是淘宝的 Hadoop 大数据集群;下面是大数据的应用,使用大数据集群的计算结果。并发
数据源主要来自 Oracle 和 MySQL 的备库,以及日志系统和爬虫系统,这些数据经过数据同步网关服务器导入到 Hadoop 集群中。其中 DataExchange 非实时全量同步数据库数据,DBSync 实时同步数据库增量数据,TimeTunnel 实时同步日志和爬虫数据。数据所有写入到 HDFS 中。编辑器
在 Hadoop 中的计算任务会经过天网调度系统,根据集群资源和做业优先级,调度做业的提交和执行。计算结果写入到 HDFS,再通过 DataExchange 同步到 MySQL 和 Oracle 数据库。处于平台下方的数据魔方、推荐系统等从数据库中读取数据,就能够实时响应用户的操做请求。工具
淘宝大数据平台的核心是位于架构图左侧的天网调度系统,提交到 Hadoop 集群上的任务须要按序按优先级调度执行,Hadoop 集群上已经定义好的任务也须要调度执行,什么时候从数据库、日志、爬虫系统导入数据也须要调度执行,什么时候将 Hadoop 执行结果导出到应用系统的数据库,也须要调度执行。能够说,整个大数据平台都是在天网调度系统的统一规划和安排下进行运做的。oop
DBSync、TimeTunnel、DataExchange 这些数据同步组件也是淘宝内部开发的,能够针对不一样的数据源和同步需求进行数据导入导出。这些组件淘宝大都已经开源,咱们能够参考使用。学习
美团大数据平台大数据
美团大数据平台的数据源来自 MySQL 数据库和日志,数据库经过 Canal 得到 MySQL 的 binlog,输出给消息队列 Kafka,日志经过 Flume 也输出到 Kafka。ui
Kafka 的数据会被流式计算和批处理计算两个引擎分别消费。流处理使用 Storm 进行计算,结果输出到 HBase 或者数据库。批处理计算使用 Hive 进行分析计算,结果输出到查询系统和 BI(商业智能)平台。
数据分析师能够经过 BI 产品平台进行交互式的数据查询访问,也能够经过可视化的报表工具查看已经处理好的经常使用分析指标。公司高管也是经过这个平台上的天机系统查看公司主要业务指标和报表。
美团大数据平台的整个过程管理经过调度平台进行管理。公司内部开发者使用数据开发平台访问大数据平台,进行 ETL(数据提取、转换、装载)开发,提交任务做业并进行数据管理。
滴滴大数据平台
滴滴大数据平台分为实时计算平台(流式计算平台)和离线计算平台(批处理计算平台)两个部分。
实时计算平台架构以下。数据采集之后输出到 Kafka 消息队列,消费通道有两个,一个是数据 ETL,使用 Spark Streaming 或者 Flink 将数据进行清洗、转换、处理后记录到 HDFS 中,供后续批处理计算。另外一个通道是 Druid,计算实时监控指标,将结果输出到报警系统和实时图表系统 DashBoard。
离线计算平台架构以下。滴滴的离线大数据平台是基于 Hadoo 2(HDFS、Yarn、MapReduce)和 Spark 以及 Hive 构建,在此基础上开发了本身的调度系统和开发系统。调度系统和前面其余系统同样,调度大数据做业的优先级和执行顺序。开发平台是一个可视化的 SQL 编辑器,能够方便地查询表结构、开发 SQL,并发布到大数据集群上。
此外,滴滴还对 HBase 重度使用,并对相关产品(HBase、Phoenix)作了一些自定义的开发,维护着一个和实时、离线两个大数据平台同级别的 HBase 平台,它的架构图以下。
来自于实时计算平台和离线计算平台的计算结果被保存到 HBase 中,而后应用程序经过 Phoenix 访问 HBase。而 Phoenix 是一个构建在 HBase 上的 SQL 引擎,能够经过 SQL 方式访问 HBase 上的数据。
小结
你能够看到,这些知名大厂的大数据平台真的是大同小异,他们根据各自场景和技术栈的不一样,虽然在大数据产品选型和架构细节上略有调整,但总体思路基本上都是同样的。
不过也正是这种大同小异,让咱们从各个角度更加了解大数据平台架构,对大数据平台架构有了更加深入的认知。