互联网大厂的大数据解决方案
滴滴的大数据体系
我们先来看一组来自滴滴出行的数据:
截止到 2021 年 7 月,滴滴注册用户已超过 6.5 亿,年运送乘客达 150 亿人次,每日处理数据 4875+TB,日定位数超过 200 亿,每日路径规划请求超过 500 亿次。
那这样庞大的数据量,背后是由一个怎样的大数据体系作为支撑呢?如下是在全球软件开发大会上讲解的滴滴大数据研发平台。
- 最上层的红色箭头标志展示的是一个基于大数据平台开发工程的发布流程,当然,这个流程跟大数据的关系并不是很大,任何一个工程基本都要遵照这个过程进行发布。
- 紧挨着的流程是机器学习部分,机器学习会涉及数据挖掘 / 数据分析 / 数据应用几个步骤。
- 再往下是实时计算解决方案和离线计算解决方案。
- 在架构图的最底层是相关的支持,包括了数据安全、数据管理、开发运维和计算引擎四个部分。
就滴滴公布的大数据发展历程来看。
- 滴滴大数据先经历了裸奔时代:引擎初建,即通过 Sqoop 从 MySQL 导入 Hadoop,用户通过命令行访问大数据;
- 然后逐步引进了相关的工具化建设,但是这个阶段的工具还处于各自为政、四分五裂的状态:租户管理、权限管理、任务调度等;
- 在那之后,逐步产生了平台化思维,开始搭建一站式的智能开发和生产平台,使其可以覆盖整个离线场景,并且内置开发和生产两套逻辑环境,规范数据开发、生产和发布流程;
- 最后,也就是最新的一套大数据架构,在一站式开发生产平台的基础上进行了更多的扩展,已经可以集离线开发、实时开发、机器学习于一体。
阿里云大数据体系
飞天大数据平台和 AI 平台支撑了阿里巴巴所有的应用,是阿里巴巴 10 年大平台建设最佳实践的结晶,是阿里大数据生产的基石。下图是飞天大数据的产品架构:
- 最下面是计算存储引擎,这里面包含了通用的存储和计算框架。存储方面,OSS 是阿里云的云存储系统,底层的 HDFS 文件存储系统,以及其他的各种 DB 系统;在计算框架方面,有 MapReduce 这种离线计算平台、实时计算平台、图计算引擎、交互式分析引擎等。
- 在存储和计算的基础上,是全域数据集成,这里面主要是对数据的各种采集和传输,支持批量同步、增量同步、实时同步等多种传输方式。
- 集成后的数据进入到统一元数据中心,统一进行任务调度。
- 再往上是开发层,通过结合各种算法和机器学习手段开发各种不同的应用。
- 最上面的数据综合治理,其实是在大数据全流程起到保障作用的一些模块,包含了智能监控、数据安全等模块。
美团的大数据体系
这是美团早些年公开的大数据体系架构:
- 最左侧是美团的各种业务服务,从这些业务的数据库和日志,可以通过数据传输、日志采集等手段对数据进行汇总,一方面对于计算需求,直接进入到 Storm 流式计算框架进行计算,把结果存储于 HBase 等各种数据库中,并在业务上应用;另一方面,数据汇总到Hadoop 框架的存储中心,经过各种解析和结构化存储在 Hive 表中,并在各种机器学习和数据挖掘项目中进行应用。
- 在底层,是围绕着 Hadoop 架构建设的调度系统、配置中心,以及数据开放平台。
- 在最右侧,是经过集成的查询中心和查询引擎,并通过平台化开发建立了一套数据分析产品平台。
当然,美团的大数据体系不是一蹴而就的,也是随着时间的推移不断迭代和演进的:
- 在最早的 2011 年,美团基本还处于数据裸奔的状态,只有在有需求的时候才手工开发一个数据报表;
- 在 2011 年下半年引入了整个数据仓库的概念,梳理了所有数据流,设计了整个数据体系;
- 2012 年上了四台 Hadoop 机器,后面十几台,到最后的几千台以支撑各个业务的使用;
- 对于实时计算部分,在 2014 年开始启动应用,与此同时,也开始进行各种平台化的封装,以使得这些开源的工具框架能够更好地为业务所用;
- 时至今日,距离这个分享又过去了五年,在美团最新公开的一些关于大数据的文章和视频分享上,我们也可以看到整个大数据体系发生了长足的进展,不管是在平台化的演进还是对于现今技术的应用方面,都已经有了飞速的变化。
大数据体系的共同点
一口气看了这么多互联网大厂的大数据体系解决方案:
- 其中有比较早期的大数据体系,如 2016 年的美团大数据架构;
- 也有比较偏向于业务型的大数据架构,如滴滴的大数据平台;
- 也有用于通用解决方案的大数据体系,比如阿里飞天大数据平台产品架构。
它们属于不同的公司,作用于不同的业务,当然会有很多的不同点,但是不难看出,在大数据体系的发展过程中,也存在着很多相同的部分。
模块化
大数据体系涉及了关于数据的一系列动作。随着大数据体系建设的逐渐完善,各个步骤变得更加清晰可分,不管是存储、调度、计算都被拆分成单独的模块,从而可以支持更多的业务,并根据需要进行灵活的选用。
平台化
实施大数据的公司往往都有各种各样的业务,早期的大数据一定是围绕着各个业务去单独建设的,但是随着时间的流逝,各个业务之间的大数据体系存在着各种各样的差异,这就使得业务之间的数据互动成了一个难以跨越的鸿沟,建设一个把各业务的相似点统一起来,又能够包容各业务的差别的平台,让这些数据发挥出更大的价值成了一个迫在眉睫的需求。
实时化
实时化一直是互联网公司不懈追求的。在大数据体系的演进中也充分体现了这一点。
最早期的开源大数据框架 Hadoop 都是基于磁盘开发的,不管是底层数据的存储还是计算的中间结果存储都放在磁盘上,而且其中的计算框架 MapReduce 也是基于离线的数据批处理,没办法对实时数据进行计算。
而看现在几大公司的大数据体系,实时计算已经成了大数据体系中一个非常重要的组成部分。
不完善
根据最近几年的工作经验,虽然大数据体系在不断地发展和变化,各种新技术不断地应用,但是大数据体系还远没有达到一个完善的水平,其中仍然存在着各种各样的问题。我们的数据在不停地生产,规模不断扩大,虽然说各种硬件的性能在提升,价格在下降,但是这仍然是公司非常巨大的一笔开支;同时,在大数据的治理方面还很欠缺,随着数据的不断增长,数据的共享和合理利用效率在不断地下降,同时在数据安全方面也存在着很大的隐患。所以,关于大数据架构的迭代还远没有结束,在未来肯定还会有更多更好的解决方案推陈出新,解决旧问题,满足新需求。