淘宝,滴滴,美团各大厂是如何搭建大数据平台架构的?

news/2024/5/20 1:12:35 标签: 大数据, hadoop, spark, hdfs, kafka

今天我们来看一下淘宝、美团和滴滴的大数据平台,一方面进一步学习大厂大数据平台的架构,另一方面也学习大厂的工程师如何画架构图。通过大厂的这些架构图,你就会发现,不但这些知名大厂的大数据平台设计方案大同小异,架构图的画法也有套路可以寻觅。

淘宝大数据平台

淘宝可能是中国互联网业界较早搭建了自己大数据平台的公司,下图是淘宝早期的Hadoop 大数据平台,比较典型。

淘宝的大数据平台基本也是分成三个部分,上面是数据源与数据同步;中间是云梯 1,也就是淘宝的 Hadoop 大数据集群;下面是大数据的应用,使用大数据集群的计算结果。

数据源主要来自 Oracle 和MySQL 的备库,以及日志系统和爬虫系统,这些数据通过数据同步网关服务器导入到 Hadoop 集群中。其中 DataExchange 非实时全量同步数据库数据,DBSync 实时同步数据库增量数据,TimeTunnel 实时同步日志和爬虫数据。数据全部写入到 HDFS 中。

在 Hadoop 中的计算任务会通过天网调度系统,根据集群资源和作业优先级,调度作业的提交和执行。计算结果写入到 HDFS,再经过 DataExchange 同步到 MySQL 和 Oracle 数据库。处于平台下方的数据魔方、推荐系统等从数据库中读取数据,就可以实时响应用户的操作请求。

淘宝大数据平台的核心是位于架构图左侧的天网调度系统,提交到 Hadoop 集群上的任务需要按序按优先级调度执行,Hadoop 集群上已经定义好的任务也需要调度执行,何时从数据库、日志、爬虫系统导入数据也需要调度执行,何时将 Hadoop 执行结果导出到应用系统的数据库,也需要调度执行。可以说,整个大数据平台都是在天网调度系统的统一规划和安排下进行运作的。

DBSync、TimeTunnel、DataExchange 这些数据同步组件也是淘宝内部开发的,可以针对不同的数据源和同步需求进行数据导入导出。这些组件淘宝大都已经开源,我们可以参考使用。 

美团大数据平台

美团大数据平台的数据源来自 MySQL 数据库和日志,数据库通过 Canal 获得 MySQL 的binlog,输出给消息队列 Kafka,日志通过 Flume也输出到 Kafka。

Kafka 的数据会被流式计算和批处理计算两个引擎分别消费。流处理使用 Storm 进行计算,结果输出到 HBase 或者数据库。批处理计算使用 Hive 进行分析计算,结果输出到查询系统和 BI(商业智能)平台。

数据分析师可以通过 BI 产品平台进行交互式的数据查询访问,也可以通过可视化的报表工具查看已经处理好的常用分析指标。公司高管也是通过这个平台上的天机系统查看公司主要业务指标和报表。

美团大数据平台的整个过程管理通过调度平台进行管理。公司内部开发者使用数据开发平台访问大数据平台,进行 ETL(数据提取、转换、装载)开发,提交任务作业并进行数据管理。

滴滴大数据平台

滴滴大数据平台分为实时计算平台(流式计算平台)和离线计算平台(批处理计算平台)两个部分。想系统学习大数据的话,可以加入大数据技术学习扣扣君羊:522189307

实时计算平台架构如下。数据采集以后输出到 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 上的数据。

小结

你可以看到,这些知名大厂的大数据平台真的是大同小异,他们根据各自场景和技术栈的不同,虽然在大数据产品选型和架构细节上略有调整,但整体思路基本上都是一样的。

不过也正是这种大同小异,让我们从各个角度更加了解大数据平台架构,对大数据平台架构有了更加深刻的认知。


http://www.niftyadmin.cn/n/1574171.html

相关文章

【质因数分解】SAC E#1 一道中档题 Factorial

SAC E#1 一道中档题 Factorial 思路:一个数x在y进制下末尾有多少零, 就是在十进制下能被y连续整除的次数 首先分解k进制,然后对于每个质因数,求出n!里有多少个质因数,然后如果k里有x个这个质因数,则求出的结…

2020年大数据学习路线指南

大数据是对海量数据进行存储、计算、统计、分析处理的一系列处理手段,处理的数据量通常是TB级,甚至是PB或EB级的数据,这是传统数据处理手段所无法完成的,其涉及的技术有分布式计算、高并发处理、高可用处理、集群、实时性计算等&a…

PoPo数据可视化周刊第6期

PoPo数据可视化 聚焦于Web数据可视化与可视化交互领域,发现可视化领域有意思的内容。不想错过可视化领域的精彩内容, 就快快关注我们吧 :)本期可视化精彩视频请关注公众号浏览全天智能获Pre-A轮千万融资 助力开启全天候实时大数据可视化模式腾讯AI加速器二期项目全天…

本科生自学Java大数据成功入职外企:大数据值得转吗?门槛高吗?

我今年大四,大二的时候先后在厦门的两家小公司实习 Java,大三的时候在 Apche Kylin 的贡献团队 Kyligence 实习,现在在一家西班牙集团就职大数据开发。 由于一路都是自己摸爬滚打过来的,而我又是一个喜欢总结且善于总结&#xff…

P1951 收费站_NOI导刊2009提高(2)

二分答案dijkstra 这道题有被改编的另一道题:“通往奥格瑞玛的道路”,相信你也做过吧。。。 看到“交的费用中最多的一次最少是多少”,就应该想到二分答案了。 所以我们二分费用,判断最多的费用是一个\(mid\)的时候可不可以成功到…

5.1.4.8 RDD 持久化

1) RDD Cache 缓存 RDD 通过 Cache 或者 Persist 方法将前面的计算结果缓存,默认情况下会把数据以缓存 在 JVM 的堆内存中。但是并不是这两个方法被调用时立即缓存,而是触发后面的 action 算 子时,该 RDD 将会被缓存在计算节点的内存中&…

Java大数据技术学习指南与成长路线

对于普通在校大学生来说,参加岗前实训能够有效的把理论和实践结合起来,快速获得动手能力的提升并到达企业对于软件工程师的技能要求,从而获得更高的职业起点和更好的职业发展前景的有效途径。Java发展成熟、功能强大、使用Java开发的大数据框…

非科班大数据开发学习路线

第一阶段:Java部分 Java基础、JVM、并发、数据库、缓存、设计模式、计算机网络、操作系统、Linux第二阶段:大数据框架 MapReduce、YARN、HDFS、HBase、Hive、Zookeeper、Spark、Storm、Flink、Kafka第三阶段:面试就业 封装项目、面经、简历、…