Spark 中的Tungsten和Catalyst

本文介绍了Spark内核的两大核心组件——Tungsten和Catalyst。Tungsten专注于内存和CPU优化,包括On-heap和Off-heap内存管理,以及面向Stage的翻译方法。Catalyst则是一个解析优化引擎,用于DataFrame和DataSet,其数据结构以树形表示,具备强大的优化规则。两者结合,使得Spark能够高效地处理数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

spark内核的三大核心:基于RDD的调度系统、Tungsten和Catalyst解析优化引擎

Tungsten

Tungsten面对: Memory , CPU, Disk IO 和 NetWork IO

spark 1.6是第一阶段面对Memory, spark 2.0的时候面对的是CPU

磁盘IO和网络IO主要发生在Shuffle阶段,Shuffle有Hash, Sort, Tungsten。默认是Sort,Tungsten未完善,Hash在spark 2.0已经废弃不用了。Hash其实在数据量小且不需要排序时是比较快的。

Tungsten的第一方面:内存的优化
Tungsten是一个更底层的机制,可以认为它不存在,有点相当于JVM中的JIT功能。JVM的数据放在堆内或者堆外,把数据放在堆外的好处是
1:可以避免GC,
2:使用原生数据。磁盘上1G的数据,如果使用JVM加载进来的话要用比1G大的存储空间,可能是3G,总之会膨胀。

TaskMemoryManager基于Page的概念屏蔽掉了底层是On-heap或者是Off-heap的概念,使用逻辑地址做指针,通过逻辑地址来具体定位到我们的记录具体在Page中的位置, 逻辑地址的表示:long类型的64bit的一个数字来表示的。
这里写图片描述

On-heap和Off-heap寻址方式:
On-heap:先找到对象,然后再找索引。
Off-heap:根据地址找到索引。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值