本文分析Spark在ACK上运行1 TB数据的Spark SQL作业和在采用Alluxio分布式缓存加速后的性能对比。

硬件配置

ACK集群配置说明如下表。

集群类型 ACK标准专有集群
ECS实例
  • ECS规格:ecs.d1ne.6xlarge
  • Alibaba Cloud Linux 2.1903
  • CPU:24核
  • 内存:96 GB
  • 数据盘:5500 GB,HDD类型
Worker节点个数 20

软件配置

  • 软件版本
    • Spark version:2.4.5
    • Alluxio version:2.3.0
  • Spark配置说明
    配置 参数
    spark.driver.cores 5
    spark.driver.memory (MB) 20480
    spark.executor.cores 7
    spark.executor.memory (MB) 20480
    spark.executor.instances 20

测试结果

1 TB数据单并发Benchmark如下表。

Benchmark 104 Query总耗时(Min)
Spark with OSS 180
Spark with Alluxio Cold 145
Spark with Alluxio Warm 137
其中每条SQL耗时对比如下图。1

结果分析

从测试结果中可以看到,使用Alluxio做缓存加速后,整体性能较直接从OSS读取数据有了较大提升。Alluxio初次测试时需要从OSS加载数据到缓存,性能会稍差。如后面再测试,ACK中运行Spark作业性能有会提升。

后续步骤

定位排查问题