使用 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的Resource Manager的Client模式(集群)
Spark运行模式_基于YARN的Resource Manager的Custer模式(集群)