我有 2 个节点集群(v1.04),主节点和从节点。在 master 上,我们在using中Tool.run()
添加两个文件。HDFS 中确实存在文件。在 Mapper.setup() 中,我们希望使用从缓存中检索这些文件DistributedCache
addCacheFile()
FSDataInputStream fs = FileSystem.get( context.getConfiguration() ).open( path ).
问题是对于一个文件 aFileNotFoundException
被抛出,尽管该文件存在于从节点上:
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
我的问题是:
- 不应该所有文件都存在于所有节点上吗?
- 应该怎么做才能解决这个问题?
谢谢。