本文主要包括如下几个内容:
1,钨丝计划 产生根本背景
2,钨丝计划的内幕详解
一:钨丝计划是从Spark项目成立以来,对Spark执行引擎最大一次改进。它关注于为Spark应用从本质上提升内存和CPU的效率,从而将性能推进到接近现代硬件的极限。这次改进主要包括以下3个举措:
**1,内存管理和二进制处理:借助应用的语义,显式管理内存,消除JVM对象模型和垃圾回收的开销
2,缓存感知计算:充分利用内存层级算法和数据结构
3,代码生成:使用代码生成,充分利用现代编译器和CPU**
二:“钨丝计划”产生的本质原因
1, Spark作为一个一体化多元化的(大)数据处理通用平台,性能一直是其根本性的追求之一,Spark基于内存迭代(部分基于磁盘迭代)的模型极大的满足了人们对分布式系统处理性能的渴望,但是有Spark是采用Scala+ Java语言编写的所以运行在了JVM平台,当然JVM是一个绝对伟大的平台,因为JVM让整个离散的主机融为了一体(网络即OS),但是JVM的死穴GC反过来限制了Spark(也就是说平台限制了Spark),所以Tungsten聚焦于CPU和Memory使用,以达到对分布式硬件潜能的终极压榨!
2, 对Memory的使用,Tungsten使用了Off-Heap(堆外内存),也就是在JVM之外的内存空间(这就好像C语言对内存的分配、使用和销毁),是系统级别的,此时Spark实现了自己的独立的内存管理,就避免了JV