本文介紹Databricks數據洞察采用的企業版Spark引擎性能對比數據,Databricks Runtime(簡寫dbr)的性能及Delta Lake功能是本產品的核心優勢。Databricks Runtime完全兼容開源版本Spark,并且相對開源Spark引擎TPC-DS平均性能有3~5倍提升,性能對比最快的query有80倍提升!
一. 環境和配置
說明 本文的TPC-DS的實現基于TPC-DS的基準測試,并不能與已發布的TPC-DS基準測試結果相比較,本文中的測試并不符合TPC-DS的基準測試的所有要求。
1.1 硬件配置
集群 | 1Master節點 + 7Core節點 |
---|---|
Master實例(北京region) | Centos 7.4 64位 | I/O優化 CPU:16 核 | 內存:64G ECS 規格:ecs.g6.4xlarge 數據盤配置:ESSD云盤 80GB X 1塊 系統盤配置:ESSD云盤 120GB X 1塊 |
Core實例(北京region) | Centos 7.4 64位 | I/O優化 CPU: 40 核 | 內存:176G ECS 規格:ecs.d2s.10xlarge 數據盤配置:吞吐密集型本地盤 7300GB X 15塊 系統盤配置:ESSD云盤 256GB X 1塊 |
OSS帶寬(北京region) | 10Gb with JindoFS SDK |
1.2 軟件配置
集群中Spark資源配置如下
spark.driver.cores | 8 |
spark.driver.memory | 24G |
spark.executor.cores | 7 |
spark.executor.memory | 24G |
spark.executor.instances | 49 |
spark.yarn.executor.memoryOverhead | 3G |
1.3 TPC-DS數據準備:
Scale factor | Format | Storage | Status |
---|---|---|---|
10T | delta | hdfs | ok |
10T | parquet | OSS | ok |
二. 對比結果
Case | Comparison | Expect |
---|---|---|
dbr vs spark | 保持相同集群、參數、存儲(OSS)、格式(parquet),對比dbr和社區spark在TPC-DS下的性能表現 | 預期dbr會快 |
oss vs hdfs | 使用dbr,保持相同集群、參數、格式(delta),對比使用OSS和hdfs兩種分布式存儲在TPC-DS下的性能表現 | 預期hdfs會快一些 |
2.1 dbr vs spark:
測試的結論如下,整體結果體現了dbr在TPCDS上還是有很大的性能優勢——平均3倍以上,最快query80倍以上。
- baseline為dbr的運行時間
- target為社區spark的運行時間
- percentChange = (baselineTimeMs - targetTimeMs) / baselineTimeMs
2.2 HDFS vs OSS:
測試的結論如下,由于DDI使用了JindoFS引擎,整體結果體現了DDI產品在存儲選型上OSS和HDFS性能差異并不大,可以使用OSS做計算存儲分離架構方案。
- baseline為dbr的運行時間
- target為社區spark的運行時間
- percentChange = (baselineTimeMs - targetTimeMs) / baselineTimeMs