EMRFSS3 优化的提交协议和分段上传 - Amazon EMR
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

EMRFSS3 优化的提交协议和分段上传

要使用优化 EMRFS S3 的提交协议中的动态分区覆盖优化,必须在 Amazon 中启用分段上传。EMR默认启用分段上传。需要时,您可以重新启用它。有关更多信息,请参阅《亚马逊EMR管理指南》中的为 Amazon S3 配置分段上传

在动态分区覆盖期间,EMRFSS3 优化的提交协议使用分段上传的类似事务的特性来确保任务尝试写入的文件仅在作业提交时出现在作业的输出位置。通过以这种方式使用分段上传,提交协议提高了默认 SQLHadoopMapReduceCommitProtocol 的任务提交性能。在使用 EMRFS S3 优化的提交协议时,需要考虑与传统分段上传行为的一些关键区别:

  • 无论文件大小如何,分段上传都会执行。这与的默认行为不同EMRFS,后者的fs.s3n.multipart.uploads.split.size属性控制触发分段上传的文件大小。

  • 在任务提交或中止之前,分段上传在较长时间内都保持在未完成状态。这与任务完成写入给定文件后分段上传完成的默认行为不同。EMRFS

由于这些差异,如果 Spark Executor 在任务运行并将数据写入 Amazon S3 时JVM崩溃或被终止,或者 Spark Driver 在任务运行时JVM崩溃或被终止,则不完整的分段上传更有可能被遗忘。因此,当您使用 EMRFS S3 优化的提交协议时,请务必遵循管理失败的分段上传的最佳实践。有关更多信息,请参阅《亚马逊EMR管理指南》中的使用 Amazon S3 存储桶的最佳实践