【Spark】Spark 基本概念、模块和架构

本文结构如下:

  • 基本概念
  • 基本模块
  • 基本架构

一、基本概念

  • RDD(Resilient Distributed Datasets):弹性分布式数据集,只读分区记录的集合,Spark 对所处理数据的基本抽象。RDD 是 Spark 分发数据和计算的基础抽象类。一个 RDD 是一个不可改变的分布式集合对象,因此在使用 scala 编写时,前面加修饰符 val 。Spark 中 的计算可以简单抽象为对 RDD 的创建、转换和返回操作结果的过程:
    • 创建
      通过加载外部物理存储(如HDFS)中的数据集,或 Application 中定义的对象集合(如List)来创建。RDD 在创建后不可被改变,只可以对其执行下面两种操作。
    • 转换(Transformation)
      对已有的 RDD 中的数据执行计算进行转换,而产生新的 RDD,在这个过程中有时会产生中间 RDD。Spark 对于 Transformation 采用惰性计算机制,遇到 Transformation 时并不会立即计算结果,而是要等遇到 Action 时一起执行。
    • 行动(Action)
      对已有的 RDD 中的数据执行计算产生结果,将结果返回 Driver 程序或写入到外部物理存储。在 Action 过程中同样有可能生成中间 RDD。
  • DAG(Directed Acyclic Graph):有向无环图。在图论中,边没有方向的图称为无向图,如果边有方向称为有向图。在无向图的基础上,任何顶点都无法经过若干条边回到该点,则这个图就没有环路,称为有向无环图( DAG 图)。Spark 中使用 DAG 对 RDD 的关系进行建模,描述了 RDD 的依赖关系,这种关系也被称之为 lineage。
  • Partition:分区。一个 RDD 在物理上被切分为多个 Partition,即数据分区,这些 Partition 可以分布在不同的节点上。Partition 是 Spark 计算任务的基本处理单位,决定了并行计算的粒度,而 Partition 中的每一条 Record 为基本处理对象。例如对某个 RDD 进行 map 操作,在具体执行时是由多个并行的 Task 对各自分区的每一条记录进行 map 映射。
  • NarrowDependency:窄依赖。一个父 RDD 的 partition 最多被子 RDD 中的 partition 使用一次,一父对应一子。NarrowDependency 分为 OneToOneDependency 和 RangeDependency。
  • ShuffleDependency(WideDependency):宽依赖。父 RDD
  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Hive on Spark是将Apache Hive与Apache Spark集成在一起的架构,它提供了在Spark上执行Hive查询的能力。下面是Hive on Spark架构说明: 1. Hive Metastore:Hive Metastore是Hive的元数据存储,它负责存储表、分区、列等元数据信息。在Hive on Spark,Hive Metastore仍然扮演着元数据存储的角色。 2. Spark SQL:Spark SQL是Spark提供的用于处理结构化数据模块,它支持使用SQL查询和DataFrame API进行数据处理。Hive on Spark通过Spark SQL来执行Hive查询。 3. Hive Driver:Hive Driver是Hive的核心组件之一,它负责解析HiveQL查询,并将查询转换为适合底层执行引擎的任务。 4. Spark Executor:Spark Executor是Spark集群的工作节点,负责执行具体的任务。在Hive on SparkSpark Executor负责执行Hive查询的具体任务。 5. Hive Thrift Server:Hive Thrift Server是Hive提供的一个服务,用于通过Thrift接口接收和处理客户端的查询请求。在Hive on Spark,Hive Thrift Server负责接收来自客户端的Hive查询请求,并将这些请求转发给Spark SQL进行处理。 6. Spark Cluster:Spark Cluster是用于运行Spark应用程序的集群,它由Master节点和多个Worker节点组成。Hive on Spark利用Spark Cluster来执行Hive查询的计算任务。 7. 数据存储:Hive on Spark可以使用各种存储系统作为底层数据存储,例如HDFS、S3等。Hive表的数据可以存储在这些存储系统Spark可以直接读取和处理这些数据。 通过将Hive与Spark集成,Hive on Spark能够利用Spark的内存计算能力和并行处理能力来加速Hive查询的执行。同时,它也能够享受到Hive的元数据管理和SQL兼容性的优势。这种架构使得Hive on Spark成为一个强大的分析引擎,能够处理大规模的结构化数据

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值