【发布时间】:2022-08-10 04:27:32
【问题描述】:
在我们的 Spark 应用程序中,我们将本地应用程序缓存存储在 /mnt/yarn/app-cache/ 目录中,该目录在同一 ec2 实例上的应用程序容器之间共享
选择/mnt/... 是因为它是 r5d 实例上的快速 NVMe SSD
这种方法在 EMR 5.x 上运行了好几年 - /mnt/yarn 属于 yarn 用户,应用程序容器从 yarn 运行,它可以创建目录
在 EMR 6.x 中,情况发生了变化 - 容器现在从 hadoop 用户运行,该用户没有对 /mnt/yarn/ 的写入权限
hadoop 用户可以在/mnt/ 中创建目录,但yarn 不能,我想保持兼容性 - 该应用程序应该能够在 EMR 5.x 和 6.x 上成功运行
java.io.tmpdir 也不起作用 - 每个容器都不同
在 NVMe SSD(/mnt、/mnt1)上存储缓存的合适位置应该是什么,以便所有容器都可以访问它并且可以在 EMR 5.x 和 6.x 上运行?
标签: apache-spark hadoop caching hadoop-yarn amazon-emr