大数据笔试题之Spark常见的属性区别总结
在进行大数据的面试过程中,经常会被问到一些比较相近的属性区别是什么,提前了解一下帮助你更好的应对面试提问。
1.repartition和coalesce的区别
1.1. repartition只是coalesce接口中shuffle为true的实现
1.2. 不经过 shuffle,也就是coaleasce shuffle为false,是无法增加RDD的分区数的,比如你源RDD 100个分区,想要变成200个分区,只能使用repartition,也就是coaleasce shuffle为true。
1.3. 如果上游为Partition个数为N,下游想要变成M个Partition
N > M , 比如N=100 M=60, 可以使用coaleasce shuffle为false。但是如果N远大于M,比如N=100, M=1, 分区有一个激烈的变化时,此时如果用coalesce就只有一个task处理数据,资源利用不够, Executor空跑,这时repartition是一个比较好的选择,虽然有shuffle但是和只有1个Task处理任务比起来效率还是较高。
N < M , coaleasce shuffle为false 不能增加分区,只能用repartition
2.groupByKey 和 reduceBykey 区别
reduceByKey 可以接收一个 func 函数作为参数,这个函数会作用到每个分区的数据上,即分区内部的数据先进行一轮计算,然后才进行 shuffle 将数据写入下游分区,再将这个函数作用到下游的分区上,这样做的目的是减少 shuffle 的数据量,减轻负担。
groupByKey 不接收函数,Shuffle 过程所有的数据都会参加,从上游拉去全量数据根据 Key 进行分组写入下游分区,这样会消耗比较多的资源,数据传输会导致任务处理的延迟。
如果我们想要进行分组后进行聚合操作,使用 reduceByKey 会更高效, 因为reduceByKey 会在map阶段合并分区内相同的key,而gourpByKey 则不会合并。
3.Cache,Presist,CheckPoint的区别
Persist 的 MEMORY_ONLY 级别的存储等于 Cache,Persist 其他的配置只是存储的方式不同,作用和原理是和 Cache 类似的,他们二者的区别如下:
*Cache、Persist 是转化类算子,和其他算子一样,触发的时机是在对应分区的上游算子计算完成之后。
*Cache、Persist 会把 RDD 缓存到指定位置,这个操作不会改变 Lineage 血缘的依赖关系,且 Job 执行完成之后,缓存的数据会被清除。
*Cache、Persist 一般应用于需要访问重复数据的应用(如迭代型算法和交互式应用)缓存可以运行得更快。
*CheckPoint 执行完毕后,会产生 CheckPointRDD,此时 lineage 血缘关系已经改变了,容错会从CheckPointRDD 开始。
*CheckPoint 将 RDD 持久化到 HDFS ,会被永久保存,可以给其他的 Driver 使用
*虽然Presist 也可以持久化数据到磁盘,但是它有BlockManager管理,一旦Driver结束,BlockManager也会 stop,被 cache 到磁盘上的 RDD 也会被清空,而 checkpoint 将 RDD 持久化到HDFS或本地文件,如果不被手动 remove 掉,是一直存在的。
最后欢迎大家添加我们的大数据分享交流qq群:857910996 加群找管理领取免费的大数据学习资料,还可以交流学习心得,欢迎大家进群~~~
猜你喜欢LIKE
相关推荐HOT
更多>>索引有什么作用?在mongodb中索引分为几类
索引(Index)是数据库中的一种数据结构,用来提高数据检索的效率。它们可以帮助数据库系统快速地定位和访问需要的数据。在 MongoDB 中,索引也很...详情>>
2023-04-11 13:43:47主键约束是什么意思?如何实现mysql主键约束
主键约束是一种在数据库中用于保证表中某个列的唯一性和非空性的约束,该列将成为表的主键。主键的作用是为了唯一标识表中的每一行数据,以方便...详情>>
2023-03-17 16:51:01eureka和zookeeper的区别对比
Eureka和Zookeeper都是服务发现和注册的工具,但它们有以下几个不同点:架构设计:Eureka采用了集中式的架构,其中一个服务作为Eureka Server,...详情>>
2023-03-07 15:35:18Zookeeper和Eureka的区别都有哪些?
Zookeeper和Eureka都是分布式系统中常用的服务发现和注册组件,它们的主要区别如下:数据一致性:Zookeeper是一个高度可靠的分布式数据一致性解...详情>>
2023-03-07 15:26:19zookeeper和eureka的区别介绍
1.架构设计:ZooKeeper是一个分布式的协调服务,它提供了高可用、高可靠性的数据存储和协调服务,可以作为分布式系统中的一个通用组件使用。而E...详情>>
2023-03-03 15:00:46大数据培训问答更多>>
新大数据都学什么?5大核心知识必学内容有哪些
新大数据报班多少钱?如何选择培训机构
新人工智能学什么?自学可以成才吗
新数据处理包括哪些内容?是不是所有课程需要分别报课
新大数据分析需要学什么?怎么学比较好
新人工智能专业学什么?人工智能有哪些课程
新大数据数据分析师要学什么?好就业吗
大数据面试题库 更多>>
大数据的五个V是什么?
数据及集群管理(三)
数据及集群管理(二)
数据及集群管理(一)
大数据之hbase的优化读数据方面
大数据之hbase的优化写入数据方面
- 北京校区
- 大连校区
- 广州校区
- 成都校区
- 杭州校区
- 长沙校区
- 合肥校区
- 南京校区
- 上海校区
- 深圳校区
- 武汉校区
- 郑州校区
- 西安校区
- 青岛校区
- 重庆校区
- 太原校区
- 沈阳校区
- 南昌校区
- 哈尔滨校区