介绍Spark功能切入点SparkContext用来创建和操作RDD,以及一个统一的切入点SparkSession,封装了SparkConf、SparkContext和SQLContext并作为DataSet和DataFrame的切入点。
解读RDD常用的计算接口
Spark计算引擎中的shuffle管理器
总结常见的字符串匹配算法
Spark计算引擎中的排序器
主要介绍了AppendOnlyMap与PartitionedPairBuffer两种Spark自己实现的类似map和colletion的数据结构,对大量聚合运算进行了优化且实现了采样估计集合大小的特性
简述task的实现细节
Tungsten是一种内存分配与释放的实现,包括堆内内存和堆外内存。Tungsten使用sun.misc.Unsafe直接操作系统内存,避免了在JVM中加载额外的类,也不用创建额外的对象,因而减少了不必要的内存开销,降低了GC扫描和回收的频率,提升了处理性能。堆外内存可以被精确地申请和释放,而且序列化的数据占用的空间可以被精确计算,所以相比堆内存来说降低了管理的难度,也降低了误差。
MapOutputTracker用于跟踪map任务的输出状态,此状态便于reduce任务定位map输出结果所在的节点地址,进而获取中间输出结果
介绍Spark中的TaskSchedulerImpl及其依赖的组件