本文首发于泊浮目标简书:https://www.jianshu.com/u/204…
版本 | 日期 | 备注 |
---|---|---|
1.0 | 2021.5.9 | 文章首发 |
这是我的学习笔记,大量摘抄网上、书本里的内容,将我本人认为关联度较高的内容出现上来。
大数据从数据源开始,通过剖析、开掘到最终取得价值个别须要通过 6 个次要环节,包含数据收集、数据存储、资源管理与服务协调、计算引擎、数据分析和数据可视化,技术体系如图所示。每个环节都面临不同水平的技术挑战。
数据源
数据收集层由间接跟数据源对接的模块形成,负责将数据源中的数据近实时或实时收集到一起。数据源具备分布式、异构性、多样化及流式产生等特点:
❑ 分布式:数据源通常散布在不同机器或设施上,并通过网络连接在一起。
❑ 异构性:任何可能产生数据的零碎均能够称为数据源,比方 Web 服务器、数据库、传感器、手环、视频摄像头等。
❑ 多样化:数据的格局是多种多种多样的,既有像用户根本信息这样的关系型数据,也有如图片、音频和视频等非关系型数据。
❑ 流式产生:数据源如同“水龙头”一样,会源源不断地产生“流水”(数据),而数据收集零碎应实时或近实时地将数据发送到后端,以便及时对数据进行剖析。
数据收集层
❑ 次要由关系型与非关系型数据收集组件,分布式音讯队列形成。
❑ Sqoop/Canal:关系型数据收集和导入工具,是连贯关系型数据库(比方 MySQL)和 Hadoop(比方 HDFS)的桥梁,Sqoop 可将关系型数据库中的数据全量导入 Hadoop,反之亦可,而 Canal 则可用于实现数据的增量导入。
❑ Flume:非关系型数据收集工具,次要是流式日志数据,可近实时收集,经过滤,汇集后加载到 HDFS 等存储系统。
❑ Kafka:分布式音讯队列,个别作为数据总线应用,它容许多个数据消费者订阅并获取感兴趣的数据。相比于其余音讯队列,它采纳分布式高容错设计,更适宜大数据利用场景。
数据贮存层
在大数据时代,因为数据收集零碎会将各类数据源源不断地发到地方化存储系统中,这对数据存储层的扩展性、容错性及存储模型等有较高要求,总结如下:
❑ 扩展性:在理论利用中,数据量会一直减少,现有集群的存储能力很快将达到下限,此时须要减少新的机器裁减存储能力,这要求存储系统自身具备十分好的线性扩大能力。
❑ 容错性:思考到老本等因素,大数据系统从最后就假如构建在便宜机器上,这就要求零碎自身就有良好的容错机制确保在机器呈现故障时不会导致数据失落。
❑ 存储模型:因为数据具备多样性,数据存储层应反对多种数据模型,确保结构化和非结构化的数据可能很容易保留下来。
典型的利用:
- HDFS
- Kudu
- HBase
资源管理与服务协调层
次要是为了解决:
- 资源利用率
- 运维老本高
Iaas、K8S、Omega 都属于这一层。
计算引擎层
计算引擎层是大数据技术中最沉闷的一层,直到明天,仍一直有新的计算引擎被提出。总体上讲,可依照对工夫性能的要求,将计算引擎分为三类:
❑ 批处理:该类计算引擎对工夫要求最低,个别解决工夫为分钟到小时级别,甚至天级别,它谋求的是高吞吐率,即单位工夫内解决的数据量尽可能大,典型的利用有搜索引擎构建索引、批量数据分析等。
❑ 交互式解决:该类计算引擎对工夫要求比拟高,个别要求解决工夫为秒级别,这类零碎须要跟人进行交互,因而会提供类 SQL 的语言便于用户应用,典型的利用有数据查问、参数化报表生成等。
❑ 实时处理:该类计算引擎对工夫要求最高,个别解决提早在秒级以内,典型的利用有广告零碎、舆情监测等。
数据分析层
数据分析层间接跟用户应用程序对接,为其提供易用的数据处理工具。为了让用户剖析数据更加容易,计算引擎会提供多样化的工具,包含应用程序 API、类 SQL 查询语言、数据挖掘 SDK 等。
在解决理论问题时,数据科学家往往需依据利用的特点,从数据分析层抉择适合的工具,大部分状况下,可能会联合应用多种工具,典型的应用模式是:首先应用批处理框架对原始海量数据进行剖析,产生较小规模的数据集,在此基础上,再应用交互式解决工具对该数据集进行疾速查问,获取最终后果。
数据可视化层
数据可视化层是间接面向用户展现后果的一层,因为该层间接对接用户,是展现大数据价值的“门户”,因而数据可视化是极具意义的。思考到大数据具备容量大、结构复杂和维度多等特点,对大数据进行可视化是极具挑战性的。