系列文章
本文目录
美团大数据系统整体架构
一、Hadoop/Spark 定位与应用架构
1.1 功能和定位(是什么)
Hadoop 开源地址和官网
Spark 开源地址和官网
简单来说,拆解之后的 Hadoop/Spark 项目基本分为三层:① 最底层是资源调度和文件存储 ② 往上是分布式计算内核 ③最上层是 Spark 衍生的一些框架。今天说的主要是三个黑框的部分。
我们可以看到,三个黑框部分有一个共同点——都有“分布式”。那为什么是分布式呢?
以下是一台单点机器的数据
这是美团对于数据存储和应用的需要:
我们可以看到,一块商用硬盘满打满算也就能写几十 T 的数据。但是美团每日单表的增量就有 235T 的数据。这是单节点机器远远无法满足的。这是不得已要做分布式的原因。
我们想要一个能够像个人电脑一样的目录树形式的去管理自己的文件,最好存储空间没有限制,操作简单,平台无关等等。但是现实却需要面临很多问题,节点挂掉、计算失败等等。那我们通过 Hadoop/Spark 这样的集群操作系统,通过访问统一的分布式操作接口,去实现从理想到现实的这样的一个过程。
这是HDFS暴露的接口,可以去访问管理集群的文件
同时提供了 Java 编程的接口。
Spark 也提供了同样类似的接口,支持 Java, Scala 和 Python。安装后从 bin/spark-shell 可以快速起一个 Spark 环境,同时封装了提交集群作业的接口。
在写代码的时候,右边的是分布式的 “Hello World”—— wordCount。无论数据量有多大,都可以统计出来每个字符的出现次数。左边一些特性,具体可以参考 API 文档。
YARN 资源调度
有不同的资源划分模式,可以划分给不同的组织结构,后面会详细讲到。
1.2 在互联网企业的应用场景和外围系统(怎么用)
直观的来看,主要分为以上三种应用,主要通过数据仓库支撑。下面分别举例讲述。
-
商业智能 —— 经营分析
一个旅游的漏斗模型,用于整个流量转化数据的建模和分析支撑。
-
搜索/推荐/广告系统——系统架构
各种数据的存储和处理和需要很强的分布式支持。
-
数据挖掘——单车停车点聚合
通过获得得各种基础数据,经过处理,把单车调度到大家可能要骑得地方。
上述三种应用场景都需要用到数据仓库的支持。我们常见的数据组织形式是 E-R 模型,即实体关