Scala 使用java.io.File.mkdirs()将文件写入目录,然后在spark cluster模式下访问它
当我尝试在客户端模式下运行相同的代码时,代码运行成功。但在群集模式下运行时,它无法创建文件,并提示没有此类文件或目录 下面是代码示例:Scala 使用java.io.File.mkdirs()将文件写入目录,然后在spark cluster模式下访问它,scala,apache-spark,Scala,Apache Spark,当我尝试在客户端模式下运行相同的代码时,代码运行成功。但在群集模式下运行时,它无法创建文件,并提示没有此类文件或目录 下面是代码示例: new File("UnexistingLocation").mkdirs() --->在客户端模式下创建的目录 --->代码在集群模式下没有给出错误,但我看不到创建的目录。此外,在目录中创建文件时,不会出现错误,因为没有此类文件或目录 是否有一种解决方法可以在驱动程序节点本地文件系统上创建文件?由于您的错误分析,我假设这是在驱动程序范围的代码中运行的。如果使
new File("UnexistingLocation").mkdirs()
--->在客户端模式下创建的目录
--->代码在集群模式下没有给出错误,但我看不到创建的目录。此外,在目录中创建文件时,不会出现错误,因为没有此类文件或目录
是否有一种解决方法可以在驱动程序节点本地文件系统上创建文件?由于您的错误分析,我假设这是在驱动程序范围的代码中运行的。如果使用
--deploy mode cluster
提交,则驱动程序将在任意节点上启动,这意味着您的目录将位于该节点。由于您的错误分析,它不会位于您从中执行spark submit提交的节点上。我假设这是在驱动程序范围的代码中运行的。如果使用--deploy mode cluster
提交,则驱动程序将在任意节点上启动,这意味着您的目录将位于该节点。它不会在您从中执行spark submit的节点上,正如@DominicEgger所说,文件夹将在任何随机节点中创建,并且可能尝试在文件夹中创建文件的代码正在其他节点中运行(没有代码,我们无法确定)。另外,为什么您要使用Spark编写本地文件,像HDFS或S3这样的分布式文件系统不是更好吗?正如@DominicEgger所说,文件夹将在任何随机节点中创建,并且可能尝试在文件夹中创建文件的代码正在其他节点中运行(如果没有代码,我们无法确定)。另外,为什么要使用Spark编写本地文件,像HDFS或S3这样的分布式文件系统不是更好吗?