使用 YARN 在集群模式下运行 spark 时出现 java.io.FileNotFoundException

Posted

技术标签:

【中文标题】使用 YARN 在集群模式下运行 spark 时出现 java.io.FileNotFoundException【英文标题】:java.io.FileNotFoundException when running spark in cluster mode using YARN 【发布时间】:2016-11-10 11:04:04 【问题描述】:

我有一个可以在一个节点上按预期运行的 spark 应用程序。

我现在使用 yarn 跨多个节点运行它。但是,由于找不到文件异常而失败。我首先将此文件路径从相对路径更改为绝对路径,但错误仍然存​​在。然后我读到here,可能需要在路径前加上file://,以防默认用于HDFS。这个有问题的文件类型是json

尽管使用了绝对路径并以file 为前缀,但此错误仍然存​​在:

16/11/10 10:19:56 INFO yarn.Client: client token: N/A diagnostics: User class threw exception: java.io.FileNotFoundException: file://absolute/dir/file.json (No such file or directory)

为什么这在一个节点上可以正常工作,但在集群模式下却不能使用 yarn?

【问题讨论】:

这个文件是否存在于所有节点中? 不,它存在于一个节点上。我也试过节点地址,所以file://me@server/dir/file.json 您需要文件位于 HDFS 等分布式 fs 上,或者位于同一位置下集群的所有工作节点上。 【参考方案1】:

您缺少斜线 /。试试:

file:///absolute/dir/file.json

这里的file://前缀指定了NFS文件系统,需要指定从那里以正斜杠开始的绝对路径,一共需要三个正斜杠。

【讨论】:

以上是关于使用 YARN 在集群模式下运行 spark 时出现 java.io.FileNotFoundException的主要内容,如果未能解决你的问题,请参考以下文章

理解Spark运行模式(Yarn Cluster)

在 Yarn 集群上运行 Spark 作业的问题

Spark运行模式_基于YARN的Resource Manager的Client模式(集群)

Spark运行模式_基于YARN的Resource Manager的Custer模式(集群)

在远程 Yarn 集群上使用 spark 从 S3 访问文件时出现问题

Spark基础学习笔记06:搭建Spark On YARN模式的集群