spark

spark

可以部署在Yarn之上的 内存计算框架
可以满足批处理 Spark,实时交互查询 spark SQL,流处理Spark streaming,图计算 GraphX,机器学习 MLlib

spark与其他框架对比:

其他框架 互相通信存在结构不同的问题,但是Spark都集中在一起,不同框架间可以通信
在这里插入图片描述

spark 生态系统

在这里插入图片描述
Mesos/hadoop Yarn 资源调度
tachyon/HDFS/S3 分布式文件系统
spark Core 内存计算框架
Spark Streaming 流处理框架
BlinkDB/Spark SQL 完成实时交互查询
GraphX 图计算框架
MLBase/MLlib 完成机器学习,数据挖掘

spark 运行原理

  • RDD resillient Distributed Dataset 弹性分布式数据集 分布式内存的抽象概念,共享内存模型
  • DAG directed Acyclic Graph 有向无环图 反映不同RDD间的依赖关系
  • Executor
    运行在工作节点的一个进程,负责运行task
  • Application
    spark程序,包含1个driver&多个Job
  • Job
    包含多个RDD及作用于相应RDD的各种操作
  • Stage
    Job的基本调度单位,Job分为多组Task,每组Task为一个Stage/TaskSet, 关联的,没有shuffle依赖关系的任务集
    运行框架

在这里插入图片描述
spark的资源管理器与其本身的调用无关,只需进行交流即可,故而可以使用其他资源管理器(eg.Yarn)

  • 运行流程
    在这里插入图片描述

    1. driver会创建一个sparkContext,与资源管理器沟通申请资源

    2. 资源申请后,sparkContext会将资源进行分配,每个workNode上会创建Executor进程,汇报资源使用情况

    3. sparkContext会将用户的应用程序进行任务拆解并发给Executor执行
      其中任务拆解过程:
      在这里插入图片描述

    4. 执行结束,Executor会将结果返回给sparkContext或者写入本地文件

    5. sparkContext申请注销资源与本身

  • RDD惰性调用过程
    只有最后会做Action,之前只做Transformation(map,filter,groupby,join等粗粒度转换)
    DAG拓扑结果
    在这里插入图片描述

    优点:

    1. 与传统的map reduce过程通过写回磁盘的方式进行数据交换,,RDD之间直接通过管道进行数据交流,不需要保存中间结果;
    2. 高容错性,天然的容错性,当一个结果RDD出现问题,只需从上一级RDD再次转换出结果;
    3. 可以直接存储json对象,而且不需要读写磁盘,减少对象序列化反序列化过程。
  • RDD依赖关系

    窄依赖:一个或多个父RDD -->一个子RDD
    在这里插入图片描述

    宽依赖:一个父RDD 对应 多个子RDD
    在这里插入图片描述

    如何划分stage
    论文:http://people.csail.mit.edu/matei/papers/2012/nsdi_spark.pdf
    在这里插入图片描述

    在这里插入图片描述

  • stage
    shuffleMapStage:可有可无
    输入:外界数据或者另一个shuffleMapStage的输出
    输出:另一个stage的输入
    resultStage :必有一个,最终的stage
    输入:外界数据或者shuffleMapStage的输出
    输出:无

spark streaming

基于spark的批处理特性和RDD机制,设计的流处理模式

设计思路

将输入数据 按时间片(秒) 分成一段段 DStream(Discretiaed Stream 离散化数据流),每一段数据转换为一个RDD,将Dstream的操作转换为RDD操作

缺点:不能支持毫秒级别的数据处理
优点:

  1. 基于RDD机制的高容错性
  2. 基于spark的批处理&spark streaming 实时计算,所以适合 历史数据与实时数据联合分析的场景
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值