Spark tungsten 项目阅读笔记
Spark tungsten 项目阅读笔记
Spark tungsten 项目的宣言就是:Bringing Apache Spark closer Bare Metal。 我的理解就是不要让硬件成为Spark性能的瓶颈,无限充分利用硬件资源(CPU,内存,IO,网络)。
tungsten主要有3大动作。
1. Memory Mangement and Bianary processing:利用应用程序的语义去管理内存,减少JVM的开销和垃圾回收。
我的理解是利用sun.msic.UnSafe 去管理内存,不使用JVM的垃圾回收机制。在1.4 和 1.5中可以使用此特性。unsafe-heap 和 unsafe-offheap 的hashmap可以处理100万/s/线程聚合操作。相比Java.util.Hasp 2倍的性能。
2. Cache-aware Coputation:algorithm and data structure to exploit memory hierarchy。(算法和大数据结构利用多级内存)
利用CPU的一级、二级、三级缓存来提高排序的cache命中率(如何提高没看明白)。相比之前版本排序提高3倍。对排序、sort merger、高cardinality聚合性能有帮助
3. Code-genaration:using code generation to exploit modern compilers and CPUs。(代码生成利用modern compiles和cpu)
code generation从record-at-a-time 表达式评估 到 vectorized 表达式评估。可以一次处理多条数据。shuffle的性能相比kryo版本提高两倍(shuffle8百万的测试场景)
参考文献:
https://databricks.com/blog/2015/04/28/project-tungsten-bringing-spark-closer-to-bare-metal.html
http://stackoverflow.com/questions/37505638/understanding-spark-physical-plan
最新文章
- [Android]Android MVP&;依赖注入&;单元测试
- salesforce 零基础学习(四十七) 数据加密简单介绍
- Unity学习疑问记录之新GUI
- [saiku] 系统登录成功后查询Cubes
- 用实例展示left Join,right join,inner join,join,cross join,union 的区别
- JAVA实现字符串反转,借助字符数组实现
- python2.7学习记录
- java 继承的学习(转)
- MySql采用GROUP_CONCAT合并多条数据显示的方法
- Android 开发笔记___时间选择器---timePicker
- Note of Python Turtle
- linux里tmpfs文件系统
- Android平台的音乐资源管理与播放
- <;link rel=";stylesheet"; type=";text/css"; href=";css/index.css";>;详解
- java反射机制的理解
- JavaScript 使用HTML DOM的oninput事件,实时监听value值变化
- 021.9 IO流 流总结
- 【Json】C#格式化JSON字符串
- 乌云主站所有漏洞综合分析&;乌云主站漏洞统计
- Struts2 - action通配符映射