任务优化注意事项
在 Spark 执行程序上,经 EMRFS S3 优化的提交协议会占用少量内存来存储任务尝试写入的每个文件,直到任务提交或中止。在大多数作业中,占用的内存量可以忽略不计。
在 Spark 驱动程序上,经 EMRFS S3 优化的提交协议需要内存来存储每个已提交文件的元数据信息,直到任务提交或中止。在大多数任务中,默认的 Spark 驱动程序内存设置可以忽略不计。
对于包含写入大量文件的长期任务的作业,提交协议占用的内存可能很大,需要调整分配给 Spark 的内存,尤其是 Spark 执行程序。您可以使用 Spark 驱动程序的 spark.driver.memory
属性和 spark.executor.memory
属性来优化内存。作为指导,编写 100000 个文件的单个任务通常需要额外的 100 MB 内存。有关更多信息,请参阅 Apache Spark 配置文档中的应用程序属性