Spark简介以及在不同集群中的运行流程

Spark架构

1.什么是Spark

  • Spark是基于内存的快速、通用、可扩展的大数据分析引擎

2.相对于mr,为什么要选择用Spark

  • 快速:Spark是基于内存的,而mr是基于磁盘的,与mr相比,Spark基于内存的运算时mr的100倍,基于内存的运算也要快10倍以上
  • 易用:Spark支持Scala、R、Java、Python
  • 在使用层面,Spark有封装好的函数,也就是算子,而mr并没有那么完善
  • mr只有map和reduce两个阶段

3.Spark的内置模块

  • SparkCore:实现了Spark的基本功能,包含任务调度、内存管理、错 误恢复、与存储系统交互等模块。Spark Core中还包含 了对弹性分布式数据集(Resilient Distributed DataSet,简称RDD)的API定义
  • SparkSQL:是Spark用来操作结构化数据的程序包。通过Spark SQL,我们可以使用 SQL或者Apache Hive版本的SQL 方言(HQL)来查询数据。Spark SQL支持多种数据源,比 如Hive表、Parquet以及JSON等
  • SparkStreaming:是Spark提供的对实时数据进行流式计算的组件。提供了 用来操作数据流的API,并且与Spark Core中的 RDD API高度对应
  • SparkMLlib:提供常见的机器学习(ML)功能的程序库。包括分类、回 归、聚类、协同过滤等,还提供了模型评估、数据 导入 等额外的支持功能
  • 集群管理器:Spark设计为可以高效地在一个计算节点到数千个计算节 点之间伸缩计算。为了实现这样的要求,同时获得最大灵 活性,Spark支持在各种集群管理器(Cluster Manager) 上运行,包括Hadoop YARN、Apache Mesos,以及 Spark自带的一个简易调度器,叫作独立调度器。

4.Spark的重要角色

在这里插入图片描述

  • Driver
    概述:Spark的驱动器是执行开发程序中的main方法的进程。 它负责开发人员编写的用来创建SparkContext、创建 RDD,以及进行RDD的转化操作和行动操作代码的执行(负责任务的调度和切分
    功用
    - 把用户程序转为作业(job)
    - 跟踪Executor的运行状况
    - 为执行器节点调度任务
    - UI展示应用运行状况
  • Executor(执行器)
    概述:Spark Executor是一个工作进程,负责在 Spark 作业中 运行任务,任务间相互独立。Spark 应用启动时, Executor节点被同时启动,并且始终伴随着整个 Spark 应用的生命周期而存在。(负责任务的执行
    功用
    - 负责运行组成 Spark 应用的任务,并将结果返回给驱动 器进程;
    - 通过自身的块管理器(Block Manager)为用户程序中 要求缓存的RDD提供内存式存储。RDD是直接缓存在 Executor进程内的,因此任务可以在运行时充分利用缓 存数据加速运算。

下文转载Spark的运行流程,讲的非常详细:
https://www.cnblogs.com/qingyunzong/p/8945933.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值