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. 关键性能考量:

代码层面:并行度、序列化格式、内存管理
运行环境:硬件供给。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏罗鑫骥的专栏

个性化推荐系统从0到1

在互联网信息爆炸式增长的当今,通过传统人工筛选运营方式提供服务时代已然过去,本文作者结合目前手机QQ浏览器软件应用App分发业务发展需求,历时半年多时间,从无到...

4.8K10
来自专栏涂小刚的专栏

【Spark教程】核心概念RDD

RDD全称叫做弹性分布式数据集(Resilient Distributed Datasets),它是一种分布式的内存抽象,表示一个只读的记录分区的集合,它只能通...

2.1K00
来自专栏庄涵的专栏

图文解析spark2.0核心技术

spark2.0于2016-07-27正式发布,伴随着更简单、更快速、更智慧的新特性,spark 已经逐步替代 hadoop 在大数据中的地位,成为大数据处理的...

2.3K10
来自专栏肖力涛的专栏

Spark踩坑记:Spark Streaming+kafka应用及调优

本文首先对spark streaming嵌入kafka的方式进行归纳总结,之后简单阐述Spark streaming+kafka 在舆情项目中的应用,最后将自己...

6.2K30
来自专栏谢慧志的专栏

数据倾斜解决方法总结

在使用Spark、Hive的过程中经常会碰到数据倾斜的问题,本文会持续记录实际工作中碰到的这些问题以及具体解决方案。

3.5K00
来自专栏游遵文的专栏

Spark 机器学习的加速器:Spark on Angel

本文以 L-BFGS 为例,来分析 Spark 在机器学习算法的实现上的问题,以及 Spark on Angel 是如何解决 Spark 在机器学习任务中的遇到...

2.4K30
来自专栏阁主的小跟班的专栏

效果广告点击率预估近期实践:在线学习

距离笔者上次发文章[1]已经过去两年多的时间了,两年的时间对于一个团队和一个产品来说确实不算短了。在过去的数年中,团队一直聚焦在精准推荐,特别是效果广告推荐上,...

1.7K00
来自专栏涂小刚的专栏

Spark-ALS 分布式实现详解

本文重点阐述了 Spark ML 库中 ALS 的实现,要看懂以上计算流程,请务必结合源代码理解,在实际源码实现中,使用了很多优化技巧。

2K30
来自专栏李德鑫的专栏

Spark SQL 数据统计 Scala 开发小结

Dataset API 属于用于处理结构化数据的 Spark SQL 模块,通过比 RDD 多的数据的结构信息,Spark SQL 在计算的时候可以进行额外的...

5.2K40
来自专栏蒋专的专栏

Spark 以及 spark streaming 核心原理及实践

作者在接触spark以及spark streaming之后,对spark技术的使用的经验积累以及心得体会,在此分享给大家。本文依次从spark生态,原理,基本概...

2.6K40

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励