我正在尝试使用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挂载目录并读取该文件。
答案 0 :(得分:1)
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