大数据是一种规模大到在获取、存储、管理、分析方面大大超出了传统数据库软件工具能力范围的数据集合。它具有海量的数据规模、快速的数据流转、多样的数据类型和价值密度低四大特征。大数据技术的战略意义不在于掌握庞大的数据信息,而在于对这些含有意义的数据进行专业化处理。
一、大数据的特点
-
数据体量巨大:大数据通常以TB、PB甚至EB为单位进行衡量,数据量远超传统数据处理范围。
-
数据形式多样:大数据不仅包括传统的结构化数据(如数据库中的表格),还包括大量的半结构化和非结构化数据(如社交媒体帖子、视频、音频等)。广泛的数据来源决定了大数据形式的多样性。
-
处理速度快:大数据的生成和传输速度非常快,需要实时地进行收集、处理和分析。这种处理速度的要求使得大数据处理需要借助分布式计算、云计算等先进技术。
-
价值密度低:大数据中包含了大量的无用信息,真正有价值的数据占比较低。因此,大数据处理需要有效的数据分析和挖掘技术,以从海量数据中提取出有价值的信息。
二、大数据的分析过程
- 数据收集
-
定义:数据收集是大数据分析的第一步,它涉及从各种数据源中获取数据。
-
数据来源:数据来源广泛,包括企业内部系统、外部数据库、传感器、社交媒体、网络爬虫等。数据可以是结构化的(如数据库、电子表格)、半结构化的或非结构化的(如文本、图像、视频等)。
-
关键要素:在数据收集阶段,需要确保数据的完整性和准确性,同时要考虑数据的存储和管理。
-
- 数据清洗
-
定义:数据清洗是指对收集到的数据进行预处理,以提高数据质量,为后续的分析工作提供可靠的基础。
-
主要操作:数据清洗包括去重、去噪、填充缺失值、处理异常值等操作。例如,去除数据中的无关信息或错误数据,填补数据集中某些字段的缺失值,处理偏离正常范围的异常值等。
-
重要性:数据清洗是大数据分析过程中非常重要的一环,只有经过清洗的数据才能够为后续的分析工作提供可靠的基础。
-
- 数据存储
-
定义:数据存储是指将清洗后的数据保存到适当的存储介质中。
-
存储方案:根据数据的类型和分析需求,可以选择不同的存储方案,如关系型数据库、NoSQL数据库、数据仓库和云存储等。这些存储方案各有优缺点,需要根据具体需求进行选择。
-
考虑因素:选择合适的存储方案可以提高数据的访问速度和处理效率,同时也有助于降低存储成本
-
- 数据处理
-
定义:数据处理是对存储的数据进行进一步的预处理和转换,以便进行后续的分析。
-
主要任务:数据处理的主要任务包括数据格式转换、数据集成、数据归约和数据变换等。例如,将数据从一种格式转换为另一种格式,以便于分析和处理;将来自不同来源的数据进行合并,形成统一的数据集;通过聚合、抽样、降维等方法减少数据量,提高处理效率;对数据进行标准化、归一化、编码转换等操作,使数据满足分析需求。
-
- 数据分析
-
定义:数据分析是整个大数据分析过程中的核心环节,它通过各种统计方法和算法对处理后的数据进行深入挖掘,揭示数据中的规律和趋势。
-
主要方法:数据分析的方法可以分为描述性分析、诊断性分析、预测性分析和规范性分析。描述性分析通过统计方法对数据进行总结;诊断性分析通过对比和分析找出数据变化的原因和影响因素;预测性分析利用机器学习和统计模型对未来趋势进行预测;规范性分析通过优化算法和决策模型提出改进方案和优化策略。
-
结果应用:数据分析的结果可以为企业决策提供重要参考,帮助提高经营效率和竞争力。
-
- 数据可视化
-
定义:数据可视化是将数据分析的结果以图表、报表等形式直观展现出来,以便人们更直观地理解数据分析的结果。
-
重要性:数据可视化不仅可以帮助人们更好地理解数据,还可以发现数据中的潜在关联和规律。通过可视化工具(如FineBI、Tableau、Power BI等),可以将复杂的数据分析结果以直观、易懂的方式呈现出来。
-
- 结果应用与报告撰写
-
结果应用:将数据分析的结果转化为实际行动,以实现业务目标和提升绩效。这一步需要将数据分析的结果与实际业务场景相结合,找到最适合的应用方式。
-
报告撰写:展示整个分析过程中的价值部分,包括分析过程、分析结果、依据以及结合业务知识提出的解决方案。报告需要结构清晰地展示所有内容,最终解决业务问题并为企业产生价值。
-
三、大数据技术生态、架构图
技术生态
架构图
-
HDFS:(Hadoop分布式文件系统),它可以用来存储海量数据,适合运行在通用硬件上的分布式文件系统(Distributed File System)。HDFS是一个高度容错性的系统,适合部署在廉价的机器上。 HDFS能提供高吞吐量的数据访问,非常适合大规模数据集上的应用,【通常用于处理离线数据的存储】。
-
Hbase: 分布式、面向列的开源数据库,适合于非结构化数据存储。【实时数据和离线数据均支持】。
-
Flume: 高可用/可靠,分布式海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。
-
Kafka:一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。
-
ZooKeeper:开放源码的分布式应用程序协调服务,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
四、Lambda架构
- 架构图
-
批处理层(Batch Layer):两个核心功能,存储数据集和生成Batch View。
-
加速层(Speed Layer):存储实时视图并处理传入的数据流,以便更新这些视图。
-
服务层(Serving Layer):用于响应用户的查询请求,合并 Batch View 和 Real-time View 中的结果数据集到最终的数据集。
-
- 优缺点
-
优点:容错性好、查询灵活度高、易伸缩、易扩展。
-
缺点:全场景覆盖带来的编码开销、针对具体场景重新离线训练一遍意义不大、重新部署和迁移成本很高。
-
- 实际案例
某网奥运中采用的Lambda架构
-
在数据展现层用户可以通过调用数据计算层的相应接口,简单快速进行算法编程,从而呈现出当日概览、赛事回顾等模块的信息。
-
当日概览模块通过实时计算引擎中的火花流媒体,计算直播实时在线人数、地域和频道分布等信息,并实时呈现到前端界面中。在合并计算中查询网站的综合浏览量、页面停留时间、视频的播放次数和平均播放时间等增量数据。
-
对赛事回顾模块需要呈现的自定义时间段内的历史最高在线人数、逐日播放走势、直播最高在线人数和点播视频排行等数据的统计信息可以使用离线计算模块查询这种不断追加的离线数据。
-
五、Kappa架构
- 架构图
-
输入数据直接由实时层的实时数据处理引擎对源源不断的源数据进行处理。
-
再由服务层的服务后端进一步处理以提供上层的业务查询。
-
而中间结果的数据都是需要存储的,这些数据包括历史数据与结果数据,统一存储在存储介质中。
-
- 优缺点
-
优点:将实时和离线代码统一起来了;方便维护而且统一了数据口径;避免了Lambda架构中与离线数据合并的问题。
-
缺点:消息中间件缓存的数据量和回溯数据有性能瓶颈;在实时数据处理时,遇到大量不同的实时流进行关联时,非常依赖实时计算系统的能力,很可能因为数据流先后顺序问题,导致数据丢失;Kappa在抛弃了离线数据处理模块的时候,同时抛弃了离线计算更加稳定可靠的特点。
-
- 实际案例
某证券大数据系统Kappa架构
-
实时日志平台基于Kappa架构。
-
使用统一的数据处理引擎Flink可实时处理全部数据。
-
并将其存储到ElasticSerach与OpenTSDB中。
-
六、Lambda架构与Kappa架构对比
对比内容 | Lambda架构 | Kappa架构 |
---|---|---|
复杂度 | 需要维护两套系统(引擎),复杂度高 | 只需要维护一套系统(引擎),复杂度低 |
开发、维护成本 | 开发、维护成本高 | 开发、维护成本低 |
计算开销 | 需要一直运行批处理和实时计算,计算开销大 | 必要时进行全量计算,计算开销相对较小 |
实时性 | 满足实时性 | 满足实时性 |
历史数据处理能力 | 批式全量处理,吞吐量大,历史数据处理能力强 | 流式全量处理,吞吐量相对较低,历史数据处理相对较弱 |
使用场景 | 直接支持批处理,更适合对历史数据分析查询的场景,期望尽快得到分析结果,批处理可以更直接高效地满足这些需求。 | 不是Lambda的替代架构,而是简化, Kappa放弃了对批处理的支持,更擅长业务本身为增量数据写入场景的分析需求。 |
七、大数据架构案例
说明
作为行业领先的外卖平台,某电商在云计算、大数据以及算法平台做了许多创新性的工作。某电商外卖平台接入了众多商家,如何根据用户实时的点击、出价以及广告的曝光,商家实时的出价数据,计算出合适的报价数据和算法的决策参数,使得广告主的利益最大化,是一个关键的问题。因此,某电商决定依托大数据平台强大的数据处理、分析能力,创新打造智能决策大数据系。公司成立了专门的项目团队进行研发,要求该平台集业务实时监控实时计算,故障快速定位与预警于一体,可支持自动化分析当前实时流数据,实时计算并更新算法模型,并且支持多种算法框架和故障快速恢复等功能。
问题1(12分)
1、常见的大数据架构有Kappa架构与Lambda架构两种,对比这两种架构的特点,填写表1-1。
2、技术负责人张工决定基于Kappa架构进行设计,用300字以内的文字简要说明张工对比选择Kappa架构的原因。
问题2(10分)
该智能决策大数据系统架构图如下,请根据下面的(A)~(K)的相关技术;判断这些技术
属于架构图的哪个部分,补充完善下图1的(1)-(10)的空白处。(A)数据采集层;。(B)存储计算层;。(C)逻辑处理层;。(D)应用层;。(E)日志库蜂箱;(F)实时计算tair;(G)任务提交基于Flink;(H)决策结果展示;(I)结果本地存储(I)B端实时流数据;(K)Kafka缓存;(I)计算集群CDH。
问题3(3分)
实时智能决策大数据平台基于Kappa架构,使用统一的数据处理引擎Flink可实时处理流数据,并将其存储到Have与Tair中,以供后续决策服务的使用.实时处理的过程如下:一是数据采集;二是数据的清洗与聚合,三是数据存储.请用300字以内的文字简要介绍本题实时处理各个过程的任务。
参考答案
问题1
-
(8分、每空2分)
(1)只需要维护一套系统(引擎),复杂度低,开发、维护成本低。
(2)需要一直运行批处理和实时计算,计算开销大。
(3)满足实时性。
(4)流式全量处理,吞吐量相对较低,历史数据处理能力相对较弱。 -
(4分、2条满分)
(1)Kappa架构只需要维护一套系统(引擎),复杂度相对较低。
(2)Kappa架构开发、维护成本系相对较低。
(3)本系统可以使用Flink计算引擎,对于Hadoop、Spark、Strom等关键技术没有强制性依赖。
(4)本系统根据用户实时的点击、出价以及广告的曝光进行分析,关注的主要是实时数据数据集规模不大,流处理系统完全可以使用,应该选择kappa架构。综上,本系统选择基于kappa架构实现。
问题2(每空1分)
问题3(每条1分)
实时智能决策大数据平台基于Kappa架构,使用统一的数据处理引擎Flink可实时处理流数据并将其存储到Have与Tair中,以供后续决策服务的使用。实时处理的过程如下:
(1)数据采集:即B端系统会实时收集用户的点击,下单以及广告的曝光和出价数据并输出到Kafka缓存。
(2)数据的清洗与聚合:即基于大数据计算集群Flink计算框架,实时读取Kafka中的实时流数据过滤出需要参与计算的字段,根据业务需求,聚合指定时间端的数据并转换成指标。
(3)数据存储:即将Flink计算得到数据存储到蜂窝日志库中,需要参与模型计算的字段存储到泰尔分布式缓存中。