首页 > 解决方案 > 将 Spark 处理的中间数据复制到目标 S3 时出现 AWS EMR 性能问题

问题描述

目前我正在使用 AWS EMR 进行数据处理。S3 被用作着陆区和最终处理数据。来自 S3 的最终处理数据正在加载到 Redshift 中,供客户运行分析。

标签: amazon-emr

解决方案


以下是最近几天进行的调整。加载时间从 1.30 小时减少到 30 分钟

  1. 使用 R 类型实例。与同价位的 M 型实例相比,它提供了更多的内存

  2. 使用合并合并源中的文件有很多小文件。

  3. 检查映射器任务的数量。任务越多,性能越差

  4. 我们有一些不需要的数据。删除了相同的

  5. 在 emr 配置文件中使用了 EMRFS 6.used 下面。之前我们使用

    {“分类”:“spark-env”,“属性”:{“spark.executor.memory”:“16g”,“spark.driver.memory”:“4g”,“spark.driver.cores”:“4 ”,“spark.driver.memoryOverhead”:“4g”,“spark.executor.cores”:“5”,“spark.executor.memoryOverhead”:“4g”}

现在我正在使用以下

{
    "Classification": "spark",
    "Properties": {
       "maximizeResourceAllocation": "true"
    }
  }
 

推荐阅读