Spark的部署模式和缓存机制与Checkpoint

本文详细介绍了Spark的三种部署模式:standalone、Spark on Yarn及Spark on Mesos,强调了各自的特点和适用场景。接着探讨了Spark的算子,包括action和transformation算子。然后深入解析了Spark的缓存机制,如cache和persist的使用,以及如何设置不同级别的缓存。最后,文章阐述了Checkpoint的重要性,作为更可靠的数据持久化手段,它与普通持久化的区别在于存储位置、生命周期和血统关系。
摘要由CSDN通过智能技术生成

Spark的部署模式

  • standalone模式:
    • 分布式部署集群,资源管理和任务监控有spark自己完成,是其他模式的基础
  • Spark on Yarn模式
    • 分布式部署集群,资源和任务监控由Yarn管理,目前仅支持粗粒度资源分配方式,包含Cluster和Client运行模式,Cluster适合于生产,Driver运行在集群的子节点上,具有容错功能,Client模式适合测试开发,Driver运行在客户端上.
  • Spark on mesos
    • 这是官方推荐的模式,比起yarn更加灵活,用户可以选择两种调度模式之一来运行自己的应用程序
        1. 粗粒度模式:每个应用程序运行环境由一个Driver和多个Executor组成,其中每个Executor占用若干资源,内部可以运行多个task,在运行之前,需要将运行环境中的资源全部申请好,并且运行过程中需要一直占用这些资源,即使不用,运行结束再回收资源.
        1. 细粒度模式:粗粒度模式会造成资源的大量浪费,所以细粒度模式的思想是按需分配,类似于下周的云计算.

Spark算子

  • action算子
    • forEach
    • saveAsTextFile
    • count
    • fold
    • aggregatta
    • top
    • reduce
    • collect
  • Transformation算子
    • map
    • flatmap
    • filter
    • mapPartitions
    • union
    • groupByKey
    • reducebykey

Spark 的缓存机制

默认情况下RDD的内容是临时的,所以spark提供了在RDD中持久化数据的缓存机制.

可以用cache()和persist()

cache底层也是persist

实际项目中可以设置缓存级别,一般设置为memory_and_Disk_2

memory_and_Disk_ser_2

缓存函数和Transformation函数一样,都是lazy操作,需要Action函数进行触发,通常会使用count进行操作触发

Spark 的Checkpoint

Checkpoint的产生就是为了更加可靠的数据持久化,Checkpoint的数据一般放在HDFS中,天然的借助了HDFS的高容错机制,最大程度的保证的数据的安全

持久化个Checkpoint的区别

  1. 存储位置
    • persist和Cache只能保存在本地的磁盘和内存中(或者堆外内存)
    • Checkpoint可以将数据保存在HDFS中
  2. 生命周期
    • persist和Cache的RDD会在程序结束后被清楚或者手动调用unpersist方法
    • Checkpoint的RDD在程序结束后依然存在不会被删除
  3. 血统
    • persist和Cache不会丢掉RDD之间的依赖链,因为缓存是不可靠的,如果发生错误,需要用依赖链来从新计算RDD
    • Checkpoint会斩断依赖链,因为它是存在HDFS中的,更加安全可靠,不需要依赖链.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值