知名大厂如何搭建大数据平台&架构
今天我们来看一下淘宝、美团和滴滴的大数据平台,一方面进一步学习大厂大数据平台的架构,另一方面也学习大厂的工程师如何画架构图。通过大厂的这些架构图,你就会发现,不但这些知名大厂的大数据平台设计方案大同小异,架构图的画法也有套路可以寻觅。
淘宝大数据平台
淘宝可能是中国互联网业界较早搭建了自己大数据平台的公司,下图是淘宝早期的 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(数据提取、转换、装载)开发,提交任务作业并进行数据管理。
滴滴大数据平台
滴滴大数据平台分为实时计算平台(流式计算平台)和离线计算平台(批处理计算平台)两个部分。
实时计算平台架构如下。数据采集以后输出到 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 上的数据。
小结
你可以看到,这些知名大厂的大数据平台真的是大同小异,他们根据各自场景和技术栈的不同,虽然在大数据产品选型和架构细节上略有调整,但整体思路基本上都是一样的。
不过也正是这种大同小异,让我们从各个角度更加了解大数据平台架构,对大数据平台架构有了更加深刻的认知。
知名大厂如何搭建大数据平台&架构的更多相关文章
- 《阿里如何实现秒级百万TPS?搜索离线大数据平台大数据平台架构解读》读后感
在使用淘宝时发现搜索框很神奇,它可以将将我们想要的商品全部查询出来,但是我们并感觉不到数据库查询的过程,速度很快.通过阅读这篇文章让我知道了搜索框背后包含着很多技术,对我以后的学习可能很有借鉴. 平时 ...
- 《阿里如何实现秒级百万TPS?搜索离线大数据平台架构解读》--阅读
离线?在阿里搜索工程体系中我们把搜索引擎.在线算分.SearchPlanner等ms级响应用户请求的服务称之为“在线”服务:与之相对应的,将各种来源数据转换处理后送入搜索引擎等“在线”服务的系统统称为 ...
- 1.1大数据平台架构及Hadoop生态圈
1.硬件架构实例 2.软件架构实例 3.数据流通用概念模型 a.数据源(互联网.物联网.企业数据):App.Device.Site b.数据收集(ETL.提取.转换.加载):Flume.Kafka.S ...
- 小白入门AI教程:教你快速搭建大数据平台『Hadoop+Spark』
Apache Spark 简介 Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎.Spark是UC Berkeley AMP lab (加州大学伯克利分校的AMP实验室)所开源 ...
- 大数据平台架构(flume+kafka+hbase+ELK+storm+redis+mysql)
上次实现了flume+kafka+hbase+ELK:http://www.cnblogs.com/super-d2/p/5486739.html 这次我们可以加上storm: storm-0.9.5 ...
- 如何基于Go搭建一个大数据平台
如何基于Go搭建一个大数据平台 - Go中国 - CSDN博客 https://blog.csdn.net/ra681t58cjxsgckj31/article/details/78333775 01 ...
- 基于Hadoop的大数据平台实施记——整体架构设计[转]
http://blog.csdn.net/jacktan/article/details/9200979 大数据的热度在持续的升温,继云计算之后大数据成为又一大众所追捧的新星.我们暂不去讨论大数据到底 ...
- 基于Hadoop的大数据平台实施记——整体架构设计
大数据的热度在持续的升温,继云计算之后大数据成为又一大众所追捧的新星.我们暂不去讨论大数据到底是否适用于您的组织,至少在互联网上已经被吹嘘成无所不能的超级战舰.好像一夜之间我们就从互联网时代跳跃进了大 ...
- Spark大型项目实战:电商用户行为分析大数据平台
本项目主要讲解了一套应用于互联网电商企业中,使用Java.Spark等技术开发的大数据统计分析平台,对电商网站的各种用户行为(访问行为.页面跳转行为.购物行为.广告点击行为等)进行复杂的分析.用统计分 ...
随机推荐
- Java多线程之线程的互斥处理
Java多线程之线程的互斥处理 一.前言 多线程程序中的各个线程都是自由运行的,所以它们有时就会同时操作同一个实例.这在某些情况下会引发问题.例如,从银行账户取款时,余额确认部分的代码应该是像下面这样 ...
- React生命周期函数理解
一.组件挂载阶段 1. componentWillMount() 该方法在首次渲染之前调用,在一个组件挂载到卸载的过程中,仅仅执行这一次.该函数内可以state初始化的工作,与constructor的 ...
- mac系统chrome浏览器快捷键
开发中谷歌浏览器常用快捷键: 开发者工具台快捷键:option+command+iconsole控制台快捷键:option+command+j 或者 option+command+c 1. 标签页和窗 ...
- 过滤掉Abp框架不需要记录的日志
该文章是系列文章 基于.NetCore和ABP框架如何让Windows服务执行Quartz定时作业 的其中一篇. 问题 ABP.WindowsService/Demo.MyJob/4.0.0该项目不仅 ...
- 2019nc#2
A Eddy Walker 题意 你有n个点(0-n-1),按顺序形成一个环,初始时你在0的位子,你随机顺时针走一步或者逆时针走一步, 一旦你走到一个点后,环上所有点都被经过至少一次后,你就必须停下来 ...
- hdu 5902 GCD is Funny
Problem Description Alex has invented a new game for fun. There are n integers at a board and he per ...
- 2018湖南多校第二场-20180407 Column Addition
Description A multi-digit column addition is a formula on adding two integers written like this:
- The Sultan's Successors UVA - 167
the squares thus selected sum to a number at least as high as one already chosen by the Sultan. (For ...
- to_char()、to_date()的区别
to_char 是把日期或数字转换为字符串 to_date 是把字符串转换为数据库中得日期类型 还记得以前初次接触oracle时对一些函数还不是很熟悉,老是弄错,比如在mysql中可以运行,但在ora ...
- java课堂测试样卷-----简易学籍管理系统
程序设计思路:分别建立两个类:ScoreInformation类(用来定义学生的基本信息以及设置set和get函数)ScoreManagement类(用来定义实现学生考试成绩录入,考试成绩修改,绩点计 ...