Spark
Spark那些事
Colin_lqk
ETL,数据分析,大数据,数据仓库,Hadoop
展开
-
Spark-RDD的宽窄依赖
RDD窄依赖和宽依赖RDD之间有一系列的依赖关系,依赖关系又分为窄依赖和宽依赖。窄依赖父RDD和子RDD partition之间的数据关系是一对一的。或者父RDD一个partition只对应一个子RDD的partition情况下的父RDD和子RDD partition关系是多对一的。不会有shuffle的产生。宽依赖父RDD与子RDD partition之间的数据关系是一对多。会有shuffle的产生。宽窄依赖图理解Stage提交Application是会创建来那个对象DAGSchedul原创 2020-10-08 15:58:41 · 128 阅读 · 0 评论 -
RDD数据倾斜解决方案
数据倾斜解决方案数据倾斜的解决,跟之前讲解的性能调优,有一点异曲同工之妙。性能调优中最有效最直接最简单的方式就是加资源加并行度,并注意RDD架构(复用同一个RDD,加上cache缓存)。相对于前面,shuffle、jvm等是次要的。1.原理以及现象分析1.1. 数据倾斜怎么出现的在执行shuffle操作的时候,是按照key,来进行values的数据的输出、拉取和聚合的。同一个key的values,一定是分配到一个reduce task进行处理的。多个key对应的values,比如一共是90万。原创 2020-10-08 15:42:28 · 281 阅读 · 0 评论 -
Spark-Shuffer调优
Spark-Shuffer调优Shuffle调优一:调节 map 端缓冲区大小在 Spark 任务运行过程中,如果 shuffle 的 map 端处理的数据量比较大,但是map 端缓冲的大小是固定的,可能会出现 map 端缓冲数据频繁 spill 溢写到磁盘文件中的情况,使得性能非常低下,通过调节 map 端缓冲的大小,可以避免频繁的磁盘IO 操作,进而提升 Spark 任务的整体性能。map 端缓冲的默认配置是 32KB,如果每个 task 处理 640KB 的数据,那么会发生 640/32 = 2原创 2020-10-08 15:31:11 · 156 阅读 · 0 评论 -
还有哪些Spark算子没见过
map()mapPartitions()mapPartitionsWithIndex()flatMap()glom()显示分区元素groupBy()分组filter()过滤sample()随机抽样distinct()去重coalesce()缩减分区数repartition()根据分区数,重新通过网络随机shuffle所有数据sortBy()排序union()并集subtract()差集intersection()交集cartesian()笛卡儿积zip()将两个RDD组合成.原创 2020-08-24 11:18:37 · 67 阅读 · 0 评论