本文介绍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