Spark及其核心概念理解

  1. Spark是什么
    Spark是UC Berkeley AMP lab (美国加州大学伯克利分校的AMP实验室)所开源的类Hadoop MapReduce通用并行计算处理框架,是专为大规模数据处理而设计的快速通用的计算引擎。可以说,spark是对Hadoop大数据处理技术的延续和发展,既继承了hadoop分布式并行处理的相关理念,同时也解决了目前Hadoop存在的一些问题,比如MapReduc编程比较抽象,不支持迭代计算等。

  2. Spark核心概念理解
    Spark的核心抽象是RDD(Resilient Distributed Dataset),RDD翻译过来是“弹性分布式数据集合”,其物理形态可理解为内存中一个只读的带分区记录的数据集合。RDD的“分布式和数据集合”特征比较容易理解,那“弹性”特征如何理解呢?先简要介绍Spark中的“惰性计算”和“血缘关系”特性。
    “血缘关系”
    “血缘关系”是指Spark中的RDD都存在依赖关系,即RDD是由哪些其他RDD计算得到的,以及它的父RDD或子RDD是什么,RDD之间的依赖关系分成“宽依赖”和“窄依赖”,“宽依赖”会导致shuffle操作,系统会根据RDD之间的依赖关系生成DAG(有向无环图),后续的任务调度就是基于DAG进行的。
    “惰性计算”
    RDD的创建方式有三种:
    1)读取外部数据:如:RDD = hc.sql(“sql_text”)
    2)数据集合转换: 如:RDD = sc.parallelize(A)
    3)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spark Streaming 是 Apache Spark 提供的一种实时数据处理框架。它将实时数据流划分为一系列离散的小批量数据,然后将这些小批量数据作为 RDD(弹性分布式数据集) 进行处理。Spark Streaming 的核心概念包括: 1. DStream(Discretized Stream):DStream 是 Spark Streaming 的核心抽象,它代表了连续的数据流,由一系列 RDD 组成。DStream 可以从各种数据源中创建,例如 Kafka、Flume、HDFS、Socket 等。 2. 输入源(Input Sources):输入源是 Spark Streaming 从外部获取数据的接口,包括 Kafka、Flume、HDFS、Socket 等。Spark Streaming 支持多种输入源,并且可以扩展自定义输入源。 3. 转换(Transformations):转换是对 DStream 中的数据进行处理和转换的操作,例如 map、reduce、filter 等。转换操作可以基于单个 RDD 进行,也可以基于多个 RDD 进行。 4. 输出操作(Output Operations):输出操作是将处理后的数据写入外部存储介质的操作,例如将结果写入数据库、写入文件、写入 Kafka 等。 5. 时间窗口(Window):时间窗口是将 DStream 中的数据按照时间段进行划分的机制,使得可以对每个时间段内的数据进行处理。通过时间窗口,可以实现累积计算、滑动窗口等操作。 6. 状态更新(Stateful Operations):状态更新是一种可以跨批次(batch)进行的计算操作,它可以使 Spark Streaming 记忆之前的结果并将其用于后续计算。 Spark Streaming 的核心概念提供了一种高度抽象的方式来处理实时数据流,同时提供了丰富的转换操作和输出操作,可以满足各种实时数据处理场景的需求。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值