引言

大数据除了体现数据5V特性外,代表了一种理念、一种问题解决的思路和一系列技术的集合。随着分布式技术的发展、处理能力的增强,数据已经从过去的采样处理转为全量化、实时化处理。在大数据技术体系方面可以分为数据收集、数据存储、资源管理与服务协调、计算引擎和数据分析这五个方面。本文从基于围绕这五个方面,介绍大数据平台整体结构、开源系和商业公司的技术栈体系,从而帮助大家对大数据技术有一个全面的认识。

技术体系

  • 数据收集层:数据源具有分布式、异构、多样化、流式产生等特点,因此收集组件需要具备扩展性、适配不同数据源、数据传输不或少量丢失、敏感数据安全性、入库延迟性要低。
  • 数据存储层:数据量增加具备线性扩展、利用廉价机器具备容错性、数据多样性具备支持多种数据模型存储。
  • 资源管理与服务协调层:
    • 轻量级弹性资源管理平台:资源管理方面,基于一套集群和轻量级隔离方案实现资源共享,错峰运行多个应用;
    • 服务协调组件:leader选举、服务命名、分布式队列、分布式锁、发布订阅功能等。
  • 计算引擎层:不同应用场景,对数据处理的吞吐率和延迟要求不同。例如:
    • 批处理:分钟、小时、天级别(10s-1h+),追求高吞吐率,单位时间处理数据尽可能大,如离线构建索引、批量数据分析等;
    • 交互式处理:秒级(1-10s),提供类SQL便于用户使用,如数据查询、报表生成、OLAP等;
    • 实时处理:秒级以内(0-1s),如舆情监测、广告系统等。
  • 数据分析层:对接用户应用程序,提供类SQL、API、数据挖掘SDK等。一般基于批处理对原始数据做处理,形成小规模数据集,之后采用交互式处理工具堆积数据集快速查询和获取结果。
  • 数据可视化层:展示大数据价值的门户。

谷歌技术栈

事实上,大数据技术来源于互联网行业,尤其是谷歌公司发表的三篇大数据论文(Google FileSystem,Google BigTable,Google MapReduce),提取码:cuvq,对大数据技术的发展起到了重要作用。技术栈如下图所示:

开源技术栈

阿里技术栈

腾讯技术栈

参考资料