第67课:解密spark sql 内核tungsten和catalyst
Spark内核三大核心:基于RDD的调度系统、Catylyst解析优化引擎和Tungsten
1,tungsten 堆内 堆外内存管理
On-heap、Off-heap
misc.unsafe。。。
磁盘上1G的数据,如果使用JVM加载进来的话3G
"ABCD" 四个字符 c语言是一个指针 5 6个字节
在jvm里面"ABCD" 四个字符需要27个字节 会膨胀
2,tungsten 翻译代码
翻译方法的功能,而且是面向Stage的翻译
5000个方法,不会真的产生5000个方法的调用,实际上是1个函数展开。 把5000个所有不同的东西合并成为一个普通的代码块如while循环代码块
cpu把这个放到Register寄存器里面
这个是cpu层面的改进
tungsten要开发5年,2020年前spark技术是大数据领域最火爆的技术!!把硬件的价值发挥到极致!