无法将卷安装到spark.kubernetes.executor

时间:2019-11-27 05:57:48

标签: scala apache-spark kubernetes server data-science

我正在尝试使用kubernetes以Spark Cluster模式从服务器读取文件,因此我将文件放到所有工作程序上,并使用
装入驱动程序卷 val conf = new SparkConf()。setAppName(“ sparksetuptest”) .set(“ spark.kubernetes.driver.volumes.hostPath.host.mount.path”,“ /文件目录”)

一切在这里都很好,但是当我执行它时,显示该文件在特定位置找不到。 所以我用.set(“ spark.kubernetes.executor.volumes.hostPath.host.mount.path”,“ / file-directory”)将目录安装到执行程序 但是现在我无法执行获取数据时卡在永无止境的过程中的程序。

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

1 个答案:

答案 0 :(得分:1)

这是nfs-example

中的示例
spark.kubernetes.driver.volumes.nfs.images.options.server=example.com
spark.kubernetes.driver.volumes.nfs.images.options.path=/data

我认为您需要声明要挂载在options.path下的路径,而spark.kubernetes.driver.volumes.[VolumeType].[VolumeName].mount.path是容器中的挂载路径

例如:

如果我想在k8s的节点上将/home/lemon/data安装到具有VolumeName /data的Docker容器的路径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")

此后,您可以在执行程序容器中访问路径/data