大数据系统大体可以分成以下四个部分:
1,数据采集层
2,数据计算层
3,数据服务层
4,数据应用层
下图是阿里巴巴大数据系统架构图:
一、数据采集层
数据采集主要分成以下三块数据:
1,Web 端日志
2,App 端日志
3,第三方数据(比如 mysql 增量数据同步)
Web 端和 App 端的日志数据都需要制定各个场景下的埋点规范,用来满足各种通用业务场景下(比如浏览、点击等)的数据分析。
Web 端和 App 端数据采集一般都有各自的埋点 SDK 和对应的埋点管理平台,用来确保埋点数据的规范和准确,第三方数据同步通常会使用一些通用的数据同步工具(如 DataX、Scoop)
数据采集后为了解耦下游各系统(比如批处理计算平台、流处理计算平台等)的耦合,需要架设消息中间件(比如:Kafka、RocketMQ 等)
二、数据计算层
数据计算层包括两大体系:
1,数据存储及计算
2,数据整合及管理
1,数据存储及计算
数据存储这块,如果是公司自己搭集群,基本都是使用 hdfs,如果是用的第三方服务会有很多种(比如 aws 的 s3)
数据计算这块分成批处理和流处理。批处理这块常用的计算组件有:spark 和 hive 等,流处理的计算组件有:spark streaming,flink 等。
在计算这块,为了合理调度上下游任务,一般会使用一些调度组件来解决任务之间的依赖问题(比如 airflow、oozie、azkaban 等)
2,数据整合及管理
数据的整合和管理时为了避免数据