spark目前主要优化方向比如对象序列化这块
其实把问题换一个动词,你就可以获得更多的信息:
Spark 开发过程中有哪些常用的调优。
Spark 性能调优要点分析在大数据性能本质的思路上,我们应该需要在那些方面进行调优呢?比如:
并行度压缩序例化数据倾斜JVM调优 (例如 JVM 数据结构化优化)内存调优Task性能调优 (例如包含 Mapper 和 Reducer 两种类型的 Task)Shuffle 网络调优 (例如小文件合并)RDD 算子调优 (例如 RDD 复用、自定义 RDD)数据本地性容错调优参数调优大数据最怕的就是数据本地性(内存中)和数据倾斜或者叫数据分布不均衡、数据转输,这个是所有分布式系统的问题!数据倾斜其实是跟你的业务紧密相关的。所以调优 Spark 的重点一定是在数据本地性和数据倾斜入手。
资源分配和使用:你能够申请多少资源以及如何最优化的使用计算资源关发调优:如何基于 Spark 框架内核原理和运行机制最优化的实现代码功能Shuffle调优:分布式系统必然面临的杀手级别的问题数据倾斜:分布式系统业务本身有数据倾斜
以及第二个问题,具体的对象序列化调优怎么做:
序列化在分布式应用中起到很重要的作用。那些会让对象序列化过程缓慢,或是会消耗大量字节存储的序列化格式会大大降低计算速率。通常这会用户在优化Spark应用程序中的第一件事。Spark旨在在便利(允许您使用您的操作中的任何Java类型)和性能之间实现平衡。它提供了下面两种序列化库:
Java serialization:Spark默认使用Java的ObjectOutputStream框架来序列化对象,可以对任何实现了java.io.Serializable的任何类进行序列化。用户也可以通过继承来实现更紧密的序列化性能控制。Kryo serialization:Spark也可以使用Kryo库(version 2)来实现更快的对象序列化。Kryo比Java序列化更快、数据格式更紧凑,但不支持所有的Serializable类型。用户如果希望使用Kryo来获取更好的性能,需要先去注册应用程序中会使用到的类。 用户可以在初始化任务时通过设定SparkConf中的conf.set("spark.serializer", "org.apache.spark.serializer.KryoSerializer")来切换序列化框架为Kryo。这里的序列化配置不仅可以对worker节点之间的shuffle数据起作用,还可以在将RDD序列化到disk上时起作用。Kryo不是默认序列化选择的唯一原因它要求了用户的注册行为,但是我们建议在所有网络密集型应用程序中使用它。从Spark2.0.0开始,我们在传输简单类型或是字符串类型的Shuffle RDD时会默认使用Kryo序列化。
Spark自动对许多在Twitter chill库中的AllScalaRegistrar被覆盖的常用的Scala类注册了Kryo。
注册用户自身的类到kryo时,可以使用registerKryoClasses方法:
val conf = new SparkConf().setMaster(...).setAppName(...) conf.registerKryoClasses(Array(classOf, classOf)) val sc = new SparkContext(conf)
Kryo的文档https://github.com/EsotericSoftware/kryo描述了更多进阶的注册选项,例如增加用户序列化代码等等。
如果用户的对象很大,也需要去增加spark.kryoserializer.buffer配置项。这个值需要达到足以保存你将要序列化的最大的对象。
最后,如果你不注册用户类,kryo也可以工作,但是它将会存储每个对象的全类名,会造成存储空间的浪费。
————————————————————————————
所以,可以针对每种优化,去搜索对应的优化方法。
参考:
Spark开发性能调优 - vinfly_li的博客 - CSDN博客Spark调优(数据序列化和内存调优) - junerli的博客 - CSDN博客 【spark目前主要优化方向比如对象序列化这块】
■网友
https://databricks.com/blog/2016/01/04/introducing-spark-datasets.html可以看看这篇文章。
推荐阅读
- 「降雪」目前江苏全省道路运行基本顺畅 降雪持续
- 中外合作研究:四万多年前东北亚真猛犸象主要以禾草苔草类为食
- 新浪微博创新基金投资了哪些团队
- 微博目前已经支持文本,图片,位置分享,为啥没有语音和视频呢微博的pm肯定想过这两种微博形态,但迟迟不做的原因到底是啥。是语音和视频不符合产
- 偷窃|车主要注意!有洗车工在打车内财物的主意
- 为啥现在没有一家信用评级系统的公司
- 同一款手游为啥会有多家代理
- 营销型外贸网站用哪种建站程序和语言比较好呢主要是适合优化,可扩展兼容性,安全性,后期网站扩展升级
- 目前哪些门户网站的新闻质量相对较高
- 我想自己写一个视频编辑软件,都需要啥目前高三报志愿,是数字媒体,还是计算机
