【问题标题】:Spark submit job fails for cluster mode but works in local for copyToLocal from HDFS in javaSpark 提交作业在集群模式下失败,但在本地用于 java 中 HDFS 的 copyToLocal
【发布时间】:2018-11-26 06:20:51
【问题描述】:

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

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

【问题讨论】:

  • 由于您是在集群模式下运行作业,因此并行运行的进程很少。他们每个人都有自己的日志,您需要在那里检查确切的堆栈跟踪。
  • 尝试输入完全限定的 hdfs 路径。

标签: java apache-spark hdfs spark-streaming spark-submit


【解决方案1】:

这种行为是因为在第一种情况下(本地),您的驱动程序位于运行整个 Spark 作业的同一台机器上。在第二种情况(集群)中,您的驱动程序被运送到您的一名工作人员并从那里执行流程。

一般来说,当你想以集群模式运行 Spark 作业并且需要预处理 JSON、XML 等本地文件时,你需要使用以下语句将它们与可执行文件一起发送 @987654322 @。然后在您的驱动程序中,您将能够看到该特定文件。如果要包含多个文件,请将它们以逗号(,) 分隔。

方法同理,当你想添加一些jars依赖时,需要使用--jars <myJars>

有关此的更多详细信息,请查看this thread

【讨论】:

  • 但我说的是 HDFS 文件目标异常。它不应该在那里抛出异常。因为工作节点也可以访问 HDFS
  • @EmmaVaze 尝试输入完全限定的 hdfs 路径。
猜你喜欢
  • 1970-01-01
  • 2023-04-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-17
  • 1970-01-01
相关资源
最近更新 更多