spark进阶
spark进阶
luoyunfan6
LuoYunfan
展开
-
spark1.6和spark2.0内存管理的对比
spark从1.6.4版本之后就直接到了2.0版本下面简单说一下2.0内存管理的变化在2.0之前,spark内存管理都是用静态管理的方式,主要是分成了三大块,比例为6(存储):2(执行):2(其他),如下图:spark2.0内存的管理发生了变化,开始使用统一内存管理,主要结构如下storage和execution的动态占用机制...原创 2019-12-27 20:06:41 · 488 阅读 · 0 评论 -
Spark性能优化:shuffle调优
调优概述ShuffleManager发展概述HashShuffleManager运行原理未经优化的HashShuffleManager优化后的HashShuffleManagerSortShuffleManager运行原理普通运行机制bypass运行机制shuffle相关参数调优spark.shuffle.file.bufferspark.reducer...转载 2019-11-28 17:36:53 · 141 阅读 · 0 评论 -
Spark性能优化:数据倾斜调优
1.数据倾斜调优调优概述数据倾斜发生时的现象数据倾斜发生的原理如何定位导致数据倾斜的代码某个task执行特别慢的情况某个task莫名其妙内存溢出的情况查看导致数据倾斜的key的数据分布情况2.数据倾斜的解决方案解决方案一:使用Hive ETL预处理数据解决方案二:过滤少数导致倾斜的key解决方案三:提高shuffle操作的并行度解决方案四:两阶段聚合...转载 2019-11-28 16:19:43 · 128 阅读 · 0 评论 -
Spark性能优化:开发调优篇
1、前言 在大数据计算领域,Spark已经成为了越来越流行、越来越受欢迎的计算平台之一。Spark的功能涵盖了大数据领域的离线批处理、SQL类处理、流式/实时计算、机器学习、图计算等各种不同类型的计算操作,应用范围与前景非常广泛。在美团•大众点评,已经有很多同学在各种项目中尝试使用Spark。大多数同学(包括笔者在内),最初开始尝试使用Spark的原因很简单,主要就是为了让大数据计算...转载 2019-11-28 14:17:18 · 133 阅读 · 0 评论 -
spark中的序列化问题
在spark中4个地方用到了序列化:1、算子中用到了driver定义的外部变量的时候2、将自定义的类型作为RDD的泛型类型,所有的自定义类型对象都会进行序列化3、使用可序列化的持久化策略的时候。比如:MEMORY_ONLY_SER,spark会将RDD中每个分区都序列化成一个大的字节数组。4、shuffle的时候任何分布式系统中,序列化都扮演着一个很重要的角色。如果使用的序...原创 2019-11-28 11:20:45 · 1052 阅读 · 0 评论 -
Spark性能优化:资源调优篇
Spark的资源参数,基本都可以在spark-submit命令中作为参数设置。很多Spark初学者,通常不知道该设置哪些必要的参数,以及如何设置这些参数,最后就只能胡乱设置,甚至压根儿不设置。资源参数设置的不合理,可能会导致没有充分利用集群资源,作业运行会极其缓慢;或者设置的资源过大,队列没有足够的资源来提供,进而导致各种异常。总之,无论是哪种情况,都会导致Spark作业的运行效率低下,甚...转载 2019-11-28 11:53:58 · 123 阅读 · 0 评论