大数据技术概述(一)

概要

大数据的特点、大数据分而治之的处理思想。
流处理和批处理的区别。
流处理的基础概念。
流处理框架的技术更迭和架构演进。

1.1什么是大数据?

1.1.1大数据的5V

Volume:数据量大。数据量单位:TB、PB、EB、ZB、YB。
Velocity:数据生产速度快。
Variety:数据类型多。数据可以是数字、文字、图片、视频等不同形式。
Veracity:数据真实性。
Value:数据价值。

补充:动态性(Vitality)、可视性(Visualization)、合法性(Validity)

1.1.2大数据分而治之

将一组计算机组织到一起形成一个集群进行计算处理大数据的工程。
分而治之:将一个原始问题分解为多个子问题,多个子问题分别在计算机上求解,借助必要的数据交换和合并策略,将子结果汇总即可求出最终结果的方法。
映射归约模型(MapReduce):定义了两个操作:Map和Reduce。Map阶段将问题在不同节点分别进行处理,Shuffle/Group阶段将不同的中间结果进行组合,Reduce阶段最终将结果组合。

1.2从流处理到批处理

1.2.1数据与数据流

从时间维度来讲,数据源源不断地产生,形成一个无解的数据流。单条数据被称为事件(Event),事件按时间时序排列会形成一个数据流。数据流中的某段有界数据流可以组成一个数据集。

1.2.2批处理与流处理

==批处理(Batch Processing)==是指对一批数据进行处理。如月度账单、季度营收等。
==流处理(Stream Processing)==就是对数据流进行处理。如“双十一”实时销售数据数字大屏,股票交易对新信息做出响应等。

1.2.3流处理框架

处理流数据一般使用“生产者——消费者“(Producer-Consumer)模型。生产者生成数据,将数据发送到一个缓存区域(Buffer),消费者从缓存区域中消费数据。流处理框架需要解决系统的可扩展性、数据倾斜、容错性、时序错乱等问题。

1.3大数据技术

1.3.1Hadoop

核心组件
Hadoop MapReduce:处理海量数据,主要面向批处理。
HDFS(Hadoop Distributed File System):分布式文件系统,有良好的扩容性和容错性,为海量数据提供存储支持。
YARN(Yet Another Resource Negotiator):资源调度器,可以管理一个Hadoop集群,并为各种类型的大数据任务配置计算资源。
其他组件
Hive:用户可以编写结构化查询语言(Structured Query Language,SQL)语句来查询HDFS上的结构化数据,SQL语句会被转化成MapReduce运行。
HBase:提供给用户毫秒级的实时查询服务,它是一个基于HDFS的分布式数据库。
Kafka:一款流处理框架,主要作用消息队列。
ZooKeeper:负责分布式环境的协调。

1.3.2Spark

Spark是一款大数据处理框架,与Hadoop相比Spark的改进有两点。
易用性:Spark提供更加方便易用的接口,提供Java、Scala、Python和R语言API,支持SQL、机器学习和图计算。
速度快:Spark将大部分计算放在内存中,加上Spark有向无环图的优化,在官方的基准测试中,Spark比Hadoop快一百倍以上。
Spark主要面向批处理需求,Spark的子模块Spark Streaming提供了流处理的功能,它的流处理主要基于mini-batch的思想,Spark Streaming将输入数据流切分成多个批次,每个批次使用批处理的方式进行计算。

1.3.3Kafka

大数据领域的消息队列框架,主要功能侧重在消息队列上。Kafka起到数据集和系统解耦的作用。系统解耦是让某个应用系统专注于一个目标,以降低整个系统的维护难度。数据流经Kafka后可以直接流入Flink,被用于流处理。

1.3.4Flink

流处理框架。优点:支持事件时间(Even Time)和处理时间(Processing Time)多种时间语义。Exactly-Once投递保障。毫秒级延迟。可以扩展到上千台节点。易用且多样的API。可以连接大数据生态圈各类组件。可以运行在Kubernetes、Yarn、Mesos和独立(Standalone)集群上。

1.4从Lambda到Kappa:大数据处理平台的演进

1.4.1Lambda架构

Lambda架构主要分为3部分:批处理层、流处理层和在线服务层。
在批处理层,数据流首先会被持久化保存到批处理数据仓库中,积累一段时间后,再使用批处理引擎来进行计算。
流处理层,用户行为日志会实时流入流处理层,流处理引擎会生成预处理结果,并导入一个数据库。
在线服务层直接面向用户的特定请求,需要将来自批处理层准确但有延迟的预处理结果和流处理层实时但不够准确的预处理结果做融合。在融合过程中,需要不断将流处理层的实时数据覆盖批处理层的旧数据。
Lambda架构的优缺点:
批处理的准确度较高,容错性和扩展性较强。在数据探索阶段可以对某份数据试用不同的方法,反复对数据进行试验。
流处理的实时性较强,可以提供一个近似准确的结果。
使用两套大数据处理引擎,如果两套大数据处理引擎的API不同,有任何逻辑上的改动,就需要在两边同步更新,维护成本高,后期迭代的时间周期长。

1.4.2Kappa架构

相较于Lambda架构,Kappa架构取消了批处理层,直接使用一个流处理满足需求。Kappa架构相对更简单,实时性更好,所需的计算资源远小于Lambda架构。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ChlinRei

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值