Spark 提交作业在集群模式下失败,但在本地工作,以便从 Java 中的 HDFS 复制到本地



我正在运行一个Java代码,在Spark提交中使用Spark集群模式将文件从HDFS复制到本地。 作业在 Spark 本地运行良好,但在群集模式下失败。 它抛出一个java.io.exeception:Target/mypath/是一个目录。

我不明白为什么它在集群中失败。但我在本地没有收到任何例外。

这种行为是因为在第一种情况下(本地(,你的驱动程序与你运行整个 Spark 作业的同一台机器上。在第二种情况(群集(中,驱动程序将交付给其中一个工作线程,并从那里执行该过程。

通常,当您想要将 Spark 作业作为群集模式运行并且需要预处理本地文件(如 JSON、XML 等(时,您需要使用以下句子--files <myfile>将它们与可执行文件一起交付。然后在驱动程序中,您将能够看到该特定文件。如果要包含多个文件,请用逗号分隔(,)

当你想添加一些jars依赖项时,方法是一样的,你需要使用--jars <myJars>

有关此内容的更多详细信息,请查看此线程。

最新更新