Spark(二)【SparkCore】- Spark 核心原理

1. RDD

a、 概念

RDD(Resilient Distributed Dateset),弹性分布式数据集。

b、 RDD 的五大特性:

1. RDD 是由一系列的 partition 组成的。

2. 函数是作用在每一个 partition(split)上的。

3. RDD 之间有一系列的依赖关系。

4. 分区器是作用在 K,V 格式的 RDD 上。

5. RDD 提供一系列最佳的计算位置。

c、 RDD 理解图:

注意:

1)、textFile 方法底层封装的是读取 MR 读取文件的方式,读取文件之前先 split,默认 split 大小是一个 block 大小。

2)、 RDD 实际上不存储数据,这里方便理解,暂时理解为存储数据。

3)、 什么是 K,V 格式的 RDD?

         a、 如果 RDD 里面存储的数据都是二元组对象,那么这个 RDD 我们就叫做 K,V 格式的 RDD。

4)、 哪里体现 RDD 的弹性(容错)?

         a、 partition 数量,大小没有限制,体现了 RDD 的弹性。

         b、 RDD 之间依赖关系,可以基于上一个 RDD 重新计算出 RDD。

5)、 哪里体现 RDD 的分布式?

         c、 RDD 是由 Partition 组成,partition 是分布在不同节点上的。

6)、 RDD 提供计算最佳位置,体现了数据本地化。体现了大数据中“计算移动数据不移动”的理念。

2. Java 和 Scala 中创建 RDD 的方式

   

java:


   sc.textFile(xx,minnumpartitions)
   sc.parallelize(集合,num)
   sc.parallelizePairs(Tuple2<xx,xx>集合,num)


Scala:


   sc.textFile(xx,minnumpartitions)
   sc.parallelize(集合,num)
   sc.makeRDD(集合,num)

3. Spark 任务执行原理

以上图中有四个机器节点,Driver 和 Worker 是启动在节点上的进程,运行在 JVM 中的进程。

a、 Driver 与集群节点之间有频繁的通信。

b、 Driver 负责任务(tasks)的分发和结果的回收。任务的调度。如果 task的计算结果非常大就不要回收了。会造成 oom。

c、 Worker 是 Standalone 资源调度框架里面资源管理的从节点。也是JVM 进程。

d、 Master 是 Standalone 资源调度框架里面资源管理的主节点。也是JVM 进程。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

plenilune-望月

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值