千家信息网

spark调优该怎么理解

发表于:2025-02-05 作者:千家信息网编辑
千家信息网最后更新 2025年02月05日,spark调优该怎么理解,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Data Serializationspark现在提供Java
千家信息网最后更新 2025年02月05日spark调优该怎么理解

spark调优该怎么理解,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

Data Serialization

spark现在提供Java serialization和Kryo serialization库

Java serialization比较慢,Kryo serialization比较快

Memory Tuning

Determining Memory Consumption

衡量你的数据集消耗内存量最好的方式是创建RDD,并放入cache中,通过查看你的driver程序SparkContext logs来得出结论。

Tuning Data Structures

降低内存消耗的第一种方式是避免使用增加开销的java特性,例如基于指针的数据结构和封装的对象。有几种方法来避免:

1.将你的数据结构设计为对象的数组,或者原始类型,而不是java或者scala集合类(例如HashMap)

fastutil库提供原始数据类型的方便集合类,并且这些类与java标准库兼容。(http://fastutil.di.unimi.it/)

2.如果可以的话,避免使用有很多小对象的内嵌数据结构

3.考虑使用数字id或者枚举对象来代替string作为key

4.如果给spark使用的内存少于32g,设置JVM flag -XX:+UseCompressedOops来使指针的大小从原来的8个byte变成4个byte.

你可以在spark-env.sh里添加这个参数。

Serialized RDD Storage

当你的对象通过调优高效地存储后仍然很大,一个简单的减少内存使用的方式是以序列化格式的方式存储对象,使用 RDD persistence API中序列化的等级来指定,例如MEMORY_ONLY_SER。

spark将每个RDD块存储为一个大的byte数组。将存储的数据序列化唯一的缺点是访问时间变慢了,这应归于服务器一直在忙碌于每个对象的反序列化。

如果你想在内存中以序列化格式保存数据,我们极力地推荐使用Kryo库,因为这会产生比java序列化小很多的文件大小。(当然会比没有序列化的原生java object更小)

关于spark调优该怎么理解问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。

对象 序列 数据 内存 方式 存储 结构 问题 原始 大小 指针 数据结构 数组 方法 更多 格式 类型 帮助 消耗 解答 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 一般app服务器扩容升级要多久 保定一划网络技术有限公司 pdb蛋白数据库蛋白结构 oracle数据库和表空间 陕西人工智能服务器 将数据库已psc格式导出 廊坊宏人网络技术 我国对网络安全的政治措施 app软件开发的参考文献 数据库期刊的代表 数据库查最近两天的记录 华为手机电子邮件服务器设置 魔兽世界怀旧多久转一次服务器 怎么在后台启动mysql服务器 服务器管理需要了解什么软件 网络安全中扫描分为哪两类 河汾路软件开发公司电话 软件开发价值流 如何提高edb数据库速度 case软件开发工具 服务器v2he上市协议加密链接 十四五规划计算机网络技术专业 网络安全攻防大赛试题怎么做 自营主机如何保证服务器安全 app软件开发的参考文献 回收服务器主板上门回收公司 扬州网络安全培训 大数据库经验分享 护苗. 网络安全课程 陕西企业党建软件开发公司
0