Apache spark 火花性能EMR(2.4.5)与EKS(3.0.0)

Apache spark 火花性能EMR(2.4.5)与EKS(3.0.0),apache-spark,amazon-emr,amazon-eks,Apache Spark,Amazon Emr,Amazon Eks,我正在用一些Spark作业进行实验,并试图比较EMR和EKS的性能。我使用的硬件是两个m5.2xlarge的实例(8vCore,32Gib内存)。原因是EKS和EMR之间通常共享硬件实例,因此比较性能更可靠 我还分享了spark配置: --conf spark.executor.instances=2 \ --conf spark.executor.cores=3 \ --conf spark.default.parallelism=16 \ --conf spark.executor.memo

我正在用一些Spark作业进行实验,并试图比较EMR和EKS的性能。我使用的硬件是两个m5.2xlarge的实例(8vCore,32Gib内存)。原因是EKS和EMR之间通常共享硬件实例,因此比较性能更可靠

我还分享了spark配置:

--conf spark.executor.instances=2 \
--conf spark.executor.cores=3 \
--conf spark.default.parallelism=16 \
--conf spark.executor.memory=4g \
--conf spark.driver.memory=4g \
--conf spark.executor.memoryOverhead=4g 
(对于EMR,火花2.4.5;对于Kubernetes,火花3.0.0)

spark作业从S3读取一些json文件,并再次将拼花地板存储在S3上。 我在EMR上系统地从S3获得更快的写入和读取速度(在EMR上大约快23%)


这可能是因为EMR上针对s3的优化吗?要在Kubernetes上提高性能,可以做些什么?

EMR(更新版本)默认提交者是EMR S3优化提交者,而不是FileOutputCommitter或S3OutputCommitter。。。他们优化了来自EMR的s3通信。检查此线程-->重命名是使用对象存储(如s3)时最昂贵的操作。。他们通过引入单个文件的多部分上传的概念来优化操作。映像10个线程分块上传单个文件,1个线程上传整个数据。。。基本上第一个比第二个快得多。EMR(更新版本)默认提交者是EMR S3优化提交者而不是FileOutputCommitter或S3OutputCommitter。。。他们优化了来自EMR的s3通信。检查此线程-->重命名是使用对象存储(如s3)时最昂贵的操作。。他们通过引入单个文件的多部分上传的概念来优化操作。映像10个线程分块上传单个文件,1个线程上传整个数据。。。基本上第一个比第二个快得多。。