Apache spark 更新版本和更好的硬件使EMR/Spark速度更慢
我的团队已经创建了一个更新的EMR集群来迁移我们所有的pyspark数据管道 版本更新:Apache spark 更新版本和更好的硬件使EMR/Spark速度更慢,apache-spark,amazon-s3,pyspark,amazon-emr,Apache Spark,Amazon S3,Pyspark,Amazon Emr,我的团队已经创建了一个更新的EMR集群来迁移我们所有的pyspark数据管道 版本更新: EMR: 5.29.0 -> 6.2.0 Spark: 2.4.4 -> 3.0.1 电子病历硬件更新: Master: 1 r4.xlarge -> 1 r6g.xlarge Core: 2 m5.xlarge -> 1 r6g.xlarge Task: 5 r5.xlarge -> 14 r6g.xlarge 我们没有更改任何不受不推荐库影响的代码 举个例子,要
EMR: 5.29.0 -> 6.2.0
Spark: 2.4.4 -> 3.0.1
电子病历硬件更新:
Master: 1 r4.xlarge -> 1 r6g.xlarge
Core: 2 m5.xlarge -> 1 r6g.xlarge
Task: 5 r5.xlarge -> 14 r6g.xlarge
我们没有更改任何不受不推荐库影响的代码
举个例子,要运行下面的代码,我们需要的时间从200秒到500秒,但几乎所有代码都比较慢
%pyspark
from datetime import date
df_lake = spark.read.format('csv').option("delimiter", "\t").load('s3a://sdite_bucket/data/raw/events_devices/')
df_lake.registerTempTable("snowplow")
maxrun = spark.sql("SELECT MAX(run) AS maxrun FROM snowplow").collect()[0]['maxrun']
我请求你的帮助,因为我不知道我应该把重点放在哪里来解决这个速度问题,你有任何建议吗
- 硬件
- 不推荐使用的代码
- 更新库
- 火花配置
- S3连接
嘿,马克西姆,谢谢你的回答。我尝试了所有这些配置,但没有提高速度。上周我意识到,性能下降的任务是使用spark.sql的任务。我检查了两个集群中的作业,性能更好的一个还有一个spark任务:ShuffledRowRDD。我认为spark在某种程度上是在不进行排序的情况下保存数据,它显著提高了速度。我正在尝试启用该配置或编辑可能会影响此配置的现有配置。你有什么建议吗?你好,我找到了这个。我认为Spark SQL执行引擎有一些变化。可以禁用其中的一些功能,看看是否可以提高性能。对不起,我没有一个明确的答案来解释为什么会这样。