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

最新文章

  1. [Android]Android MVP&依赖注入&单元测试
  2. salesforce 零基础学习(四十七) 数据加密简单介绍
  3. Unity学习疑问记录之新GUI
  4. [saiku] 系统登录成功后查询Cubes
  5. 用实例展示left Join,right join,inner join,join,cross join,union 的区别
  6. JAVA实现字符串反转,借助字符数组实现
  7. python2.7学习记录
  8. java 继承的学习(转)
  9. MySql采用GROUP_CONCAT合并多条数据显示的方法
  10. Android 开发笔记___时间选择器---timePicker
  11. Note of Python Turtle
  12. linux里tmpfs文件系统
  13. Android平台的音乐资源管理与播放
  14. <link rel="stylesheet" type="text/css" href="css/index.css">详解
  15. java反射机制的理解
  16. JavaScript 使用HTML DOM的oninput事件,实时监听value值变化
  17. 021.9 IO流 流总结
  18. 【Json】C#格式化JSON字符串
  19. 乌云主站所有漏洞综合分析&乌云主站漏洞统计
  20. Struts2 - action通配符映射

热门文章

  1. git - 节点树理解
  2. Altium Designer中,将多个工程下的原理图和PCB合并在一起
  3. 如何使用Python输出一个[斐波那契数列]
  4. centos 搭建 git 服务端和客户端
  5. 八 Hibernate延迟加载&抓取策略(优化)
  6. QQ强制弹出对话
  7. 【LeetCode】113. 路径总和 II
  8. pta 拯救007(Floyd)
  9. Readiness 探测【转】
  10. SCHema学习