EMR,Spark:本地共享缓存的合适位置

ix0qys7i  于 2022-09-20  发布在  Spark
关注(0)|答案(1)|浏览(139)

在我们的Spark应用程序中,我们将本地应用程序缓存存储在/mnt/yarn/app-cache/目录中,该目录在同一EC2示例上的应用程序容器之间共享

之所以选择/mnt/...,是因为它是r5d示例上的FAST NVMe固态硬盘

这种方法在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上操作?

vu8f3i0k

vu8f3i0k1#

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

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

相关问题