hadoop:从distributedcache获取文件时filenotfoundexcepion

i2loujxw  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(268)

我有两个节点集群(v1.04),主节点和从节点。在主上,在 Tool.run() 我们把两个文件添加到 DistributedCache 使用 addCacheFile() . 文件确实存在于hdfs中。在mapper.setup()中,我们希望使用

FSDataInputStream fs = FileSystem.get( context.getConfiguration() ).open( path ).

问题是一个文件 FileNotFoundException 尽管文件存在于从属节点上,但仍会引发:

attempt_201211211227_0020_m_000000_2: java.io.FileNotFoundException: File does not exist: /somedir/hdp.tmp.dir/mapred/local/taskTracker/distcache/-7769715304990780/master/tmp/analytics/1.csv

ls–l在从机上:

[hduser@slave ~]$ ll /somedir/hdp.tmp.dir/mapred/local/taskTracker/distcache/-7769715304990780/master/tmp/ analytics/1.csv                        
-rwxr-xr-x 1 hduser hadoop 42701 Nov 22 10:18 /somedir/hdp.tmp.dir/mapred/local/taskTracker/distcache/-7769715304990780/master/tmp/ analytics/1.csv

我的问题是:
不是所有的文件都应该存在于所有的节点上吗?
应该怎么做才能解决这个问题?
谢谢。

8cdiaqws

8cdiaqws1#

已解决-应使用:

FileSystem.getLocal( conf )

感谢hadoop邮件列表中的harsh j。

相关问题