![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Spark调优
文章平均质量分 73
Johnson8702
这个作者很懒,什么都没留下…
展开
-
Spark性能调优---JVM调优之调节executor堆外内存与连接等待时长
一、executor堆外内存①理论在实际项目中,有时候需要处理大量的数据,比如上亿、数十亿条数据,发现项目时不时地报错:shuffle file not found,executor lost,task lost,out of memory等等。之所以出现上述问题,可能是因为executor的堆外内存不足,导致executor在运行的过程中,内存溢出。后续stage的task在运行的时...原创 2019-02-28 21:22:02 · 376 阅读 · 0 评论 -
Spark性能调优---JVM调优之原理概述及降低cache操作的内存占比
一、原理概述①理论Spark是用Scala开发的。Spark的Scala代码调用了很多java api。Scala也是运行在JVM中的,所以Spark也是运行在JVM中的。②JVM可能会产生什么样的问题?内存不足——RDD的缓存、task运行定义的算子函数,可能会创建很多对象,占用大量的内存。处理不当,可能导致JVM出问题。③堆内存作用:存放项目中创建的对象。 划分:新生...原创 2019-02-28 21:22:57 · 277 阅读 · 0 评论 -
shuffle原理及调优
一、原理概述①什么是shuffle?以reduceByKey为例,要把分布在集群各个节点上的数据中的同一个key对应的values集中到一块,集中到集群中同一个节点上。更严格地说,集中到同一个节点的同一个executor的task中。集中同一个key对应的values之后,数据变成<key,Iterable<value>>,算子函数对values进行reduce...原创 2019-02-25 21:26:32 · 593 阅读 · 0 评论 -
Spark性能调优---算子调优
一、MapPartitions提升Map类型操作性能Spark中,每个task处理一个RDD的partition。①MapPartitions的优点如果是普通的map,比如一个partition中有一万条数据,那么function需要执行和计算一万次。如果使用了MapPartitions,一个task只执行一次function,function一次接受所有的partition数据。只要...原创 2019-03-05 22:07:46 · 312 阅读 · 0 评论 -
Spark SQL数据倾斜解决方案
由于Spark都是基于RDD的特性,所以可以用纯RDD的方法,实现和Spark SQL一模一样的功能。之前在Spark Core中的数据倾斜的七种解决方案,全部都可以直接套用在Spark SQL上。Spark SQL的数据倾斜解决方案:聚合源数据:Spark Core和Spark SQL没有任何区别 过滤导致倾斜的key:在sql中用where条件 提高shuffle并行度:gro...原创 2019-03-10 20:24:38 · 3014 阅读 · 0 评论 -
数据倾斜解决方案之原理以及现象分析
一、什么是数据倾斜数据倾斜是大数据类型项目中最棘手的性能问题。数据倾斜一般会有两种表现: 大部分task执行很快,只有极少数的task执行得特别慢,可能耗费数个小时。 大部分task很快执行完,但有的task会突然报OOM内存溢出,导致task fail、task lost、resubmitting task,反复执行几次,特定的task还是跑不通,最后挂掉。可能是因为这个ta...原创 2019-03-10 18:33:48 · 697 阅读 · 0 评论 -
SparkStreaming性能调优
一、数据接收并行度调优——创建更多的输入DStream和Receiver通过网络接收数据时(比如Kafka,Flume),会将数据反序列化,并存储在Spark的内存中。如果数据接收成为系统的瓶颈,可以考虑并行化数据接收。每个输入DStream都会在某个Worker的Executor上启动一个Receiver,该Receiver接收一个数据流。因此可以通过创建多个输入DStream,并配置它们接...原创 2019-04-25 19:37:55 · 1817 阅读 · 0 评论