本文介绍: 相比较mapreduce框架spark框架执行效率更加高效。mapreduce执行框架示意图。spark执行框架示意图spark的执行中间结果存储内存当中的,而hdfs的执行中间结果是存储hdfs中的。所以在运算时候spark的执行效率是reduce的3-5倍。

一:为什么学习spark

比较mapreduce框架spark框架执行效率更加高效。
mapreduce的执行框架示意图。
在这里插入图片描述
spark执行框架示意图
在这里插入图片描述
spark的执行中间结果是存储内存当中的,而hdfs的执行中间结果是存储hdfs中的。所以在运算时候spark的执行效率是reduce的3-5倍。

二:spark什么

spark一个执行引擎

三:spark包含哪些内容

1. spark core

spark RDD五大特性

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

每个rdd中,partition个数和由hdfs中的map的个数决定的。和map的个数保持一致。

2. 每个RDD会提供最佳的计算位置

3. 每个函数作用在每个partition上。

算子
  1. 转换算子
    常见 Transformation 类算子
    filter过滤符合条件记录数, true 保留, false 过滤掉。
    map :将一个 RDD 中的每个数据项,通过 map 中的函数映射变为一个新的元素。特点:输入
    一条输出一条数据
    flatMap :先 map 后 flat 。与 map 类似,每个输入可以映射为0到多个输出项。
    sample 随机抽样算子,根据传进去的小数按比例进行有放回或者无放回的抽样。
    reduceByKey 将相同的 Key 根据相应的逻辑进行处理
    sortByKey / sortBy 作用在 K,V格式的RDD 上,对 key 进行升序或者降序排序
  2. 行动算子
    count返回数据集中的元素数。会在结果计算完成后回收到 Driver 端。
    take(n) :返回一个包数据集前 n 个元素集合
    first效果等同于 take(1) ,返回数据集中的第一个元素
    foreach循环遍历数据集中的每个元素运行相应的逻辑
    collect :将计算结果回收到 Driver
  3. 持久算子
    cache默认将 RDD 的数据持久化到内存中。 cache 是懒执行。
    checkpointcheckpoint 将 RDD 持久化到磁盘,还可以切断 RDD 之间的依赖关系,也是懒执行。

4. RDD之间相互依赖

RDD的宽窄依赖
一对一的就是窄依赖。
一对多的就是宽依赖。
在计算进行切割时候,会将所有的窄依赖放在一起,成为一个stage。放在一个TaskScheduler中进行计算。
在这里插入图片描述

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

shuffle
HashShuffle
在这里插入图片描述

SortShuffle
在这里插入图片描述
在这里插入图片描述
bypass机制

shuffle map task的数量小于spark.shuffle.sort.bypassMergeThreshold参数的值(默认200)或者不是聚合类的shuffle算子比如groupByKey)

在这里插入图片描述
Shuffle文件寻址
在这里插入图片描述

2. spark的俩种提交模式

用于测试
在这里插入图片描述
用于生产
在这里插入图片描述

在这里插入图片描述

2. spark sql

  1. RDD和dataFromesdataset
    dataset包含dataFormesdataFormes包含RDD。
  2. Spark on hivehive on spark
    Spark on hive 中,hive是存储,spark负责sql优化解析
    hive on Spark中,Hive即作为存储负责sql的解析优化,Spark负责执行。

原文地址:https://blog.csdn.net/weixin_43446246/article/details/134670648

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_27124.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注