Spark-RDD笔记

spark Steaming、spark ml等命令,最终都会转换成spark-core的组件命令来执行

spark RDD是 spark-core组件的数据结构、或叫数据模型、数据抽象

Resilient Distributed Dataset

  • 基本概念
    • 弹性分布式数据集
    • 是spark的数据抽象
    • 是一个不可变、可分区、里面元素可并行计算的合集
    • 可以看做是对一堆数据的打包,就是一个RDD,也可以说,这个对象就的RDD
  • Dataset:RDD是一个数据集合,打包在一起
    • 所有spark对数据的操作,都会转换成对RDD的操作
    • 包括:spark sql、spark streaming、spark ml、spark mllib等
  • Distributed:分布式的
  • Resilient :弹性的
    • 数据可以保存在磁盘上、也可以保存在内存里
    • 数据分布式是弹性的
      • 注:这个弹性不是说数据可动态扩展,而是说数据由容错性,有副本
      • RDD会在多个节点上存储,和HDFS一样
      • HDFS文件分为多个block存储在不同节点
      • RDD文件分为多个partition(分区),不同分区可能存储在不同节点
    • spark读取HDFS场景下,会把hdfs的block读到内存,然后抽象为spark的partition来进行操作
    • spark计算结束,一般会把数据持久化到hive、hbase、hdfs等
      • 存储举例:每个rdd的partion会先转换为hdfs的block,如果partition小于128M,那么会一一对应,如果大于128M,那么一个partition会拆成多个block再存

  • 不可变
    • 代码的变量 a = 1, 然后 a = a + 1 此时变量a是可变的
    • spark数据:rdd1 进行更新, 会创建一个rdd2, 原来的rdd1依然存在(该占内存还是占内存,不能直接对rdd1这块数据进行更新,需要用副本rdd2来处理)
    • 由父rdd来生成一个子rdd,父rdd的状态不会变化
    • 为什么这样做?
      • 容错,主要思路:通过新增版本来实现数据的改变,但保留了历史快照,用于容错
      • 具体为:分布式节点计算时,可能某个机器计算失败了,如果没有历史快照,很可能需要重新计算,太亏了。
      • 这是基于海量数据的。如果出错了,可以基于上一个历史版本,继续往下计算
  • 可分区
  • 并行计算
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值