Spark
程序猿丶HLK
记录的意义在于昨日的BUG,不会出现在阳光明媚的今天!分享使我快乐,我是博园小亦!
展开
-
深入理解JVM
一、JVM 的组织结构注意:方法区和堆是所有线程共享的内存区域,而 Java 栈、本地方法栈和程序计数器是运行时线程私有的内存区域。下面来看看各内存区域的作用: ① Java 堆(Heap)对于大多数应用来说,Java 堆(Java Heap)是 Java 虚拟机所管理的内存中最大的一块。Java 堆是被所有线程共享的一块内存区域,在虚拟机启动时创建。此内存区域的唯一目的就是存放...原创 2019-06-25 11:34:13 · 315 阅读 · 0 评论 -
Spark作业性能调优——JVM参数调优
前言Spark作业的JVM调优只是针对我们写的代码层面的优化,JVM相关的参数,通常情况下,如果你的硬件配置和基础的JVM的配置都ok的话,JVM通常不会造成太严重的性能问题,反而更多的是,在troubleshooting(故障处理)中,JVM占了很重要的地位,JVM造成线上的Spark作业的运行报错,甚至失败(比如OOM)。为什么需要进行Spark作业的JVM优化?Spark运行过...原创 2019-06-25 15:42:25 · 553 阅读 · 0 评论 -
Spark作业性能调优——Shuffle原理及参数调优
一、调优概述大多数Spark作业的性能主要就是消耗在了shuffle环节,因为该环节包含了大量的磁盘IO、序列化、网络数据传输等操作。因此,如果要让作业的性能更上一层楼,就有必要对shuffle过程进行调优。但是也必须提醒大家的是,影响一个Spark作业性能的因素,主要还是代码开发、资源参数以及数据倾斜,shuffle调优只能在整个Spark的性能调优中占到一小部分而已。因此大家务必把握住调优...转载 2019-06-25 17:54:09 · 281 阅读 · 0 评论 -
Spark共享变量之广播变量和自定义累加器的介绍及使用
Shared Variables(共享变量)在 Spark 程序中,当一个传递给 Spark 操作 (例如 map 和 reduce) 的函数在远程节点上面运行时,Spark 实际上操作的是这个函数所用变量的一个独立副本。这些在Driver端声明的变量会被复制到每个Executor进程所在的执行机器上,并且这些变量在远程机器上的所有更新都不会传递回驱动程序。通常跨任务的读写变量是低效的,但是,...原创 2019-06-18 15:25:56 · 1112 阅读 · 0 评论 -
Spark作业性能调优——资源参数调优
一、分配更多资源性能调优的王道,就是增加和分配更多的资源,性能和速度上的提升是显而易见的,基本上,在一定范围之内,增加资源与性能的提升是成正比的。写完了一个复杂的Spark作业之后,进行性能调优的时候,首先第一步,就是要调节最优的资源配置,在这个基础之上,如果说你的Spark作业,能够分配的资源达到了你的能力范围的顶端之后,无法再分配更多的资源了,公司资源有限,那么才是考虑去做后面的这些性能调...原创 2019-06-25 17:30:15 · 549 阅读 · 1 评论