当我从 EMR 5.7 升级到 EMR 5.8 时,s3-dist-cp 失败并出现 OutOfMemoryException

s3-dist-cp fails with OutOfMemoryException when I upgrade from EMR 5.7 to EMR 5.8

作为一项更大工作的一部分,我一直在使用 s3-dist-cp 将压缩的 JSON 文件从 S3 移动到 HDFS。我从 EMR 5.4 开始并升级到大多数 5.x,我目前 运行 一个 32 台机器的集群和 EMR 5.7 没问题。

当我尝试升级到 EMR 5.8 时,s3-dist-cp 作业失败,如下所示。 5.7 和 5.8 之间有什么变化会导致这种情况吗?

#
# java.lang.OutOfMemoryError: Java heap space
# -XX:OnOutOfMemoryError="kill -9 %p
kill -9 %p"
#   Executing /bin/sh -c "kill -9 11042
kill -9 11042"...
/usr/share/aws/emr/s3-dist-cp/bin/s3-dist-cp: line 55: 11042 Killed                  hadoop jar "$S3_DIST_CP_JAR" -libjars "$LIBJARS" "$@"
Traceback (most recent call last):
  ...

可能为时已晚,但是是的,s3-dist-cp 上存在一个错误,导致 emr-5.8.0 上的 s3-dist-cp 作业失败,否则可以在 emr-5.7 上运行。 0。此错误可能会导致 S3DistCp 客户端出现 OOM,因为在实际提交 MapRed 作业之前列出 S3 对象会消耗更多内存。它已在 5.9.0 中修复。