【问题标题】:EMR, Spark: proper place for a local shared cacheEMR、Spark:本地共享缓存的合适位置
【发布时间】: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


    【解决方案1】:

    在您的 EMR 集群上,您可以将yarn 用户添加到超级用户组;默认情况下,该组称为supergroup。您可以通过检查hdfs-site.xml 文件中的dfs.permissions.superusergroup 来确认这是否是正确的组。

    您还可以尝试修改以下 HDFS 属性(在上述文件中):dfs.permissions.enableddfs.datanode.data.dir.perm

    【讨论】:

    • 谢谢,看来这种手动文件夹管理是唯一的方法
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-15
    • 2018-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多