当前位置: 首页 > 知识库问答 >
问题:

无法将卷挂载到 spark.kubernetes.executor

商德泽
2023-03-14

我试图使用kubernetes在spark cluster模式下从服务器读取一个文件,所以我将我的文件放在所有workers上,并使用< br> val conf = new SparkConf()挂载驱动程序卷。setAppName("sparksetuptest ")。set(" spark . kubernetes . driver . volumes . host path . host . mount . path ","/file-directory ")

这里一切正常,但当我执行时,它显示该文件未在特定位置找到。所以我用.set(“spark.kubernetes.executor.volumes.hostpath.host.mount.path”,“/file-directory”)将目录挂载到执行器,但是现在我无法执行程序,它在获取数据时陷入了永无止境的进程。

请提出一些建议,以便我可以用executor挂载我的目录并读取该文件。

共有1个答案

夹谷英杰
2023-03-14

这是来自nfs-example的示例

spark.kubernetes.driver.volumes.nfs.images.options.server=example.com
spark.kubernetes.driver.volumes.nfs.images.options.path=/data

我认为您需要在< code>options.path和< code > spark . kubernetes . driver . volumes .[VolumeType]下声明您想要挂载的路径。[VolumeName].mount.path是容器中的挂载路径

例如:

如果我想将k8s的节点上的< code>/home/lemon/data挂载到路径< code>/data的docker容器(带有VolumeName exepv,那么

conf.set("spark.kubernetes.executor.volumes.hostPath.exepv.mount.path","/data")
conf.set("spark.kubernetes.executor.volumes.hostPath.exepv.options.path", "/home/lemon/data")

在这之后,您可以在您的执行器容器中访问路径< code>/data

 类似资料:
  • 编辑:我有一个OpenShift集群,有一个主节点和两个节点。我已经在节点上的主客户端和 NFS 客户端上安装了 NFS。我遵循了 NFS 的 wordpress 示例: https://github.com/openshift/origin/tree/master/examples/wordpress 我在我的主机上执行了以下操作:oc login-u system:admin: 所以expor

  • 问题内容: 我正在运行一个Jenkins集群,其中在Master和Slave中,它们都作为Docker容器运行。 主机是在MacOS上运行的最新的boot2docker VM。 为了使Jenkins能够使用Docker执行部署,我将docker.sock和docker客户端从主机安装到Jenkins容器,如下所示: 在将卷装载到Jenkins容器中运行的Docker容器时,我遇到了问题。例如,如果

  • 问题内容: 我最近创建了一个在Windows上的boot2docker上运行的mongodb docker实例。 不幸的是,在尝试kitematic的过程中,我意外地从mongo容器中删除了该卷,并且无法再访问我的数据。 mongo实例似乎创建了一个新卷,而旧卷现在仍悬空(孤立)并且未安装在任何容器中。 有什么办法可以恢复吗? 问题答案: 感谢您的答复,它使我处于正确的轨道,我设法使用以下命令启动

  • 问题内容: 在Mac上,如何将卷装载到Docker容器? 在我的Linux机器上,这很容易。我需要做的只是运行容器时的操作。但是Mac是不同的,因为我必须运行boot2docker才能在VirtualBox中运行VM。我试过跑步 但我明白了 如果我忽略了它,仍然尝试像这样挂载在虚拟机上 我懂了 我感觉好像缺少了一些非常简单的东西,但是我无法弄清楚。任何帮助将不胜感激。 问题答案: 好的,在研究了G

  • 问题内容: 我正在使用Docker,并且我想挂载一个变化很大的动态文件夹(因此我不必为每次执行都制作一个Docker映像,这会太昂贵),但是我希望该文件夹是只读的。将文件夹所有者更改为其他人可行。但是,需要访问权限,而我不希望将其公开给应用程序。 当我使用flag进行挂载时,它将提供我提供的任何用户名,我在docker映像内创建了一个非root用户,但是,该卷中的所有文件都以运行docker的用户

  • 我尝试以配置yaml文件作为参数运行opentelemetry docker映像: