程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> Spark tungsten 項目閱讀筆記,sparktungsten

Spark tungsten 項目閱讀筆記,sparktungsten

編輯:JAVA綜合教程

Spark tungsten 項目閱讀筆記,sparktungsten


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. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved