今天我们来看一下淘宝、美团和滴滴的大数据平台,一方面进一步学习大厂大数据平台的架构,另一方面也学习大厂的工程师如何画架构图。通过大厂的这些架构图,你就会发现,不但这些知名大厂的大数据平台设计方案大同小异,架构图的画法也有套路可以寻觅。
淘宝大数据平台
淘宝早期的 Hadoop 大数据平台,比较典型。架构如下:
淘宝的大数据平台基本也是分成三个部分,上面是数据源与数据同步;中间是云梯 1,也就是淘宝的 Hadoop 大数据集群;下面是大数据的应用,使用大数据集群的计算结果。数据源主要来自 Oracle 和 MySQL 的备库,以及日志系统和爬虫系统,这些数据通过数据同步网关服务器导入到 Hadoop 集群中。其中 DataExchange 非实时全量同步数据库数据,DBSync 实时同步数据库增量数据,TimeTunnel 实时同步日志和爬虫数据。数据全部写入到 HDFS 中。
在 Hadoop 中的计算任务会通过天网调度系统,根据集群资源和作业优先级,调度作业的提交和执行。计算结果写入到 HDFS,再经过 DataExchange 同步到 MySQL 和 Oracle 数据库。处于平台下方的数据魔方、推荐系统等从数据库中读取数据,就可以实时响应用户的操作请求。
DBSync、TimeTunnel、DataExchange 这些数据同步组件也是淘宝内部开发的,可以针对不同的数据源和同步需求进行数据导入导出。这些组件淘宝大都已经开源,我们可以参考使用。
美团大数据平台
美团大数据平台的数据源来自 MySQL 数据库和日志,数据库通过 Canal 获得 MySQL 的 binlog,输出给消息队列 Kafka,日志通过 Flume 也输出到 Kafka。
Kafka 的数据会被流式计算和批处理计算两个引擎分别消费。流处理使用 Storm 进行计算,结果输出到 HBase 或者数据库。批处理计算使用 Hive 进行分析计算,结果输出到查询系统和 BI(商业智能)平台。
数据分析师可以通过 BI 产品平台进行交互式的数据查询访问,也可以通过可视化的报表工具查看已经处理好的常用分析指标。公司高管也是通过这个平台上的天机系统查看公司主要业务指标和报表。
滴滴大数据平台
滴滴大数据平台分为实时计算平台(流式计算平台)和离线计算平台(批处理计算平台)两个部分。
实时计算平台
数据采集以后输出到 Kafka 消息队列,消费通道有两个,一个是数据 ETL,使用 Spark Streaming 或者 Flink 将数据进行清洗、转换、处理后记录到 HDFS 中,供后续批处理计算。另一个通道是 Druid,计算实时监控指标,将结果输出到报警系统和实时图表系统 DashBoard。
离线计算平台
滴滴的离线大数据平台是基于 Hadoo 2(HDFS、Yarn、MapReduce)和 Spark 以及 Hive 构建,在此基础上开发了自己的调度系统和开发系统。调度系统和前面其他系统一样,调度大数据作业的优先级和执行顺序。开发平台是一个可视化的 SQL 编辑器,可以方便地查询表结构、开发 SQL,并发布到大数据集群上。
小结
你可以看到,这些知名大厂的大数据平台真的是大同小异,他们根据各自场景和技术栈的不同,虽然在大数据产品选型和架构细节上略有调整,但整体思路基本上都是一样的,所以我们看到,很多大数据产品的架构也都是差不多的,比如 Hadoop 1、Yarn、Spark、Flink、Storm,这些产品的部署架构真的是太像了。
对于有志于成为架构师的工程师来说,一方面当然是提高自己的编程水平,另一方面也可以多看看各种架构设计文档,多去参加一些架构师技术大会。在我看来,编程需要天分;而架构设计,真的是孰能生巧。
思考题
下图是腾讯的大数据平台架构,请你尝试对这个架构图的主要组件和运行机制进行分析。
来自极客时间的精选留言
大神1
老师你好
我们公司是做互联网金融的,流处理需求很少,大多都是批处理之后生成的报表
每天基本上就是用sqoop增量的把MySQL中前一天的业务数据导入到hive。然后做一些业务上的报表计算,另外还有我负责的风控中请求的几个第三方数据,每天大概有五六十GB的样子,还有用户的通讯录数据等,以及一些相关报表的计算,数据量的话多的也就二三十亿条,离线计算都是Spark on yarn,调度系统是azkaban。
因为现在没有业务需求会用到hbase,
有很少的埋点数据,用kafka,Sparkstreaming处理一下。
感觉现在的那些批处理的东西都用的差不多了,天天觉得没啥有挑战的事情做,觉得心里挺空的,想过了年换工作,但是目前,各大公司也都在裁员,很是纠结。希望老师给点建议😁
作者回复:多了解业务,了解哪些业务的问题可以用大数据解决,走出去而不是等需求,多学习大数据的知识,扩展知识面,思考哪些大数据技术可以用到自己的工作中,会有很多机会的
大神2
通过这一节的阅读,熟悉了各大互联网公司的大数据平台。大致模式是通过某种方式,对数据库中的数据进行提取,导入到大数据平台中,然后对数据平台的数据进行计算,返回可使用的数据。
对整个过程的调度和把控,淘宝、美团、滴滴各自用自身公司开发的调度管理系统,处理调度的优先级和执行顺序。
生活在今天这个时代,每个人都能享受这种数据智能的便捷,除了计算机本身的功能,更有一大批从事数据工作的人为我们提供了这样的服务。数据能如此精准,那同样我们对于我们的工作和生活,也应有像数据人那样,认真对待,这样才会工作之余更好的跟上数据智能时代的节奏,把握我们自身的生活。
该笔记摘录自极客时间课程
《从0开始学大数据》