Spark学习之Spark调优与调试(7)

Spark学习之Spark调优与调试(7)

1. 对Spark进行调优与调试通常需要修改Spark应用运行时配置的选项。

当创建一个SparkContext时就会创建一个SparkConf实例。

2. Spark特定的优先级顺序来选择实际配置:

优先级最高的是在用户代码中显示调用set()方法设置选项;
其次是通过spark-submit传递的参数;
再次是写在配置文件里的值;
最后是系统的默认值。

3.查看应用进度信息和性能指标有两种方式:网页用户界面、驱动器和执行器进程生成的日志文件。

4.Spark执行的组成部分:作业、任务和步骤

需求:使用Spark shell完成简单的日志分析应用。
scala> val input =sc.textFile("/home/spark01/Documents/input.text")
input: org.apache.spark.rdd.RDD[String] = MapPartitionsRDD[3] at textFile at <console>:27

scala> val tokenized = input.map(line=>line.split(" ")).filter(words=>words.size>0)
tokenized: org.apache.spark.rdd.RDD[Array[String]] = MapPartitionsRDD[5] at filter at <console>:29

scala> val counts = tokenized.map(words=>(words(0),1)).reduceByKey{(a,b)=>a+b}
counts: org.apache.spark.rdd.RDD[(String, Int)] = ShuffledRDD[7] at reduceByKey at <console>:31

scala> // see RDD

scala> input.toDebugString
res0: String =
(1) MapPartitionsRDD[3] at textFile at <console>:27 []
 |  /home/spark01/Documents/input.text HadoopRDD[2] at textFile at <console>:27 []

scala> counts.toDebugString
res1: String =
(1) ShuffledRDD[7] at reduceByKey at <console>:31 []
 +-(1) MapPartitionsRDD[6] at map at <console>:31 []
    |  MapPartitionsRDD[5] at filter at <console>:29 []
    |  MapPartitionsRDD[4] at map at <console>:29 []
    |  MapPartitionsRDD[3] at textFile at <console>:27 []
    |  /home/spark01/Documents/input.text HadoopRDD[2] at textFile at <console>:27 []

scala> counts.collect()
res2: Array[(String, Int)] = Array((ERROR,1), (##input.text##,1), (INFO,4), ("",2), (WARN,2))

scala> counts.cache()
res3: counts.type = ShuffledRDD[7] at reduceByKey at <console>:31

scala> counts.collect()
res5: Array[(String, Int)] = Array((ERROR,1), (##input.text##,1), (INFO,4), ("",2), (WARN,2))

scala>

5. Spark网页用户界面

默认情况地址是http://localhost:4040
通过浏览器可以查看已经运行过的作业(job)的详细情况
如图下图:


图1所有任务用户界面

图二作业2详细信息用户界面

6. 关键性能考量:

代码层面:并行度、序列化格式、内存管理
运行环境:硬件供给。
时间: 2024-11-03 16:34:35

Spark学习之Spark调优与调试(7)的相关文章

Spark学习之Spark Streaming(9)

Spark学习之Spark Streaming(9) 1. Spark Streaming允许用户使用一套和批处理非常接近的API来编写流式计算应用,这就可以大量重用批处理应用的技术甚至代码. 2. Spark Streaming使用离散化(discretized steam)作为抽象表示,叫做DStream.DStream是随时间推移而收到的数据的序列. 3. DSteam支持两种操作:转换操作(transformation),会生成一个新的DStream:另一种是输出操作(output op

《Java程序性能优化》学习笔记 JVM调优

第五章 JVM调优5.1 Java虚拟机内存模型 1.JVM虚拟机将其内存数据分为程序计数器.虚拟机栈,本地方法栈,Java堆,和方法去等部分. 2.Java虚拟机栈,在Java 虚拟机规范中,定义了两种异常与占空间相关,即StackOverError和OutOfMemoryError.如果线程在计算过程中,请求的栈深度大于最大可用的栈深度,则抛出SOE,如果Java栈可以动态扩展,而在扩展栈的过程中,没有足够的内存空间来支持栈的扩展,则抛出OutOfMemoryError. 栈的大小直接决定了

关于CarbonData+Spark SQL的一些应用实践和调优经验分享

大数据时代,中大型企业数据的爆发式增长,几乎每天都能产生约 100GB 到 10TB 的数据.而企业数据分系统构建与扩张,导致不同应用场景下大数据冗余严重.行业亟需一个高效.统一的融合数仓,从海量数据中快速获取有效信息,从而洞察机遇.规避风险. 在这样的现状下,CarbonData 诞生了,作为首个由中国贡献给Apache社区的顶级开源项目,CarbonData 提供了一种新的融合数据存储方案,以一份数据同时支持多种大数据应用场景,并通过丰富的索引技术.字典编码.列存等特性提升了 IO 扫描和计

数据倾斜是多么痛?spark作业调优秘籍

调优概述 有的时候,我们可能会遇到大数据计算中一个最棘手的问题--数据倾斜,此时Spark作业的性能会比期望差很多.数据倾斜调优,就是使用各种技术方案解决不同类型的数据倾斜问题,以保证Spark作业的性能. 数据倾斜是多么痛?!!! 如果数据倾斜没有解决,完全没有可能进行性能调优,其他所有的调优手段都是一个笑话.数据倾斜是最能体现一个spark大数据工程师水平的性能调优问题. 数据倾斜如果能够解决的话,代表对spark运行机制了如指掌. 数据倾斜俩大直接致命后果. 数据倾斜直接会导致一种情况:O

Spark调优经验总结

概述 本文以Spark实践经验和Spark原理为依据,总结了Spark性能调优的一些方法.这些总结基于Spark-1.0.0版本.对于最近推出的Spark-1.1.0版本,本文介绍了几个版本增强. Spark性能调优 Executor和分区 Executor是一个独立的JVM进程,每个任务会有独立的线程来执行,Executor最大可并发任务数量与其拥有的核心数量相同,执行过程中的数据缓存放在Executor的全局空间中.根据以上我们可以得出: 同一个Executor中执行的任务,可以共享同一个数

Spark企业级应用开发和调优

1.Spark企业级应用开发和调优 Spark项目编程优化历程记录,主要介绍了Spark企业级别的开发过程中面临的问题和调优方法.包含合理分配分片,避免计算中间结果(大数据量)的collect,合理使用map,优化广播变量等操作,降低网络和磁盘IO,提高计算效率. 2.核心技术优化方法对比 首先如下图(2.1),Spark应用开发在集群(伪分布式)中的记录,每一种不同颜色的折线代表一个分布式机器 最终,图4中四条折线并行达到峰值(即CPU100%).降低了处理时间,增大了处理效率. 2.1.重要

## Spark作业性能调优总结

Spark作业性能调优总结 前段时间在集群上运行Spark作业,但是发现作业运行到某个stage之后就卡住了,之后也不再有日志输出.于是开始着手对作业进行调优,下面是遇到的问题和解决过程: 运行时错误 Out Of Memory: Java heap space / GC overhead limit exceeded 使用yarn logs -applicationId=appliation_xxx_xxx 命令查看Yarn收集的各个Executor的日志. 可以发现OOM的错误,以及一些re

Spark修炼之道——Spark学习路线、课程大纲

课程内容 Spark修炼之道(基础篇)--Linux基础(15讲).Akka分布式编程(8讲) Spark修炼之道(进阶篇)--Spark入门到精通(30讲) Spark修炼之道(实战篇)--Spark应用开发实战篇(20讲) Spark修炼之道(高级篇)--Spark源码解析(50讲) 部分内容会在实际编写时动态调整,或补充.或删除. Spark修炼之道(基础篇)--Linux大数据开发基础(15讲). Linux大数据开发基础--第一节:Ubuntu Linux安装与介绍 Linux大数据开

大数据计算新贵Spark在腾讯雅虎优酷成功应用解析

Spark作为Apache顶级的开源项目,项目主页见http://spark.apache.org.在迭代计算,交互式查询计算以及批量流计算方面都有相关的子项目,如Shark.Spark Streaming.MLbase.GraphX.SparkR等.从13年起Spark开始举行了自已的Spark Summit会议,会议网址见http://spark-summit.org.Amplab实验室单独成立了独立公司Databricks来支持Spark的研发. 为了满足挖掘分析与交互式实时查询的计算需求