Hadoop:从DistributedCache获取文件时的FileNotFoundExcepion

时间:2012-11-22 08:42:07

标签: hadoop distributed-cache

我有2个节点集群(v1.04),主服务器和从服务器。在主文件上,我们在Tool.run()中使用DistributedCacheaddCacheFile()添加了两个文件。文件确实存在于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

我的问题是:

  1. 所有节点上都不应该存在所有文件吗?
  2. 应该采取什么措施来解决这个问题?
  3. 感谢。

1 个答案:

答案 0 :(得分:4)

已解决 - 应该已经使用过:

FileSystem.getLocal( conf ) 

感谢来自Hadoop邮件列表的Harsh J。