我有2个节点集群(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
我的问题是:
感谢。
答案 0 :(得分:4)
已解决 - 应该已经使用过:
FileSystem.getLocal( conf )
感谢来自Hadoop邮件列表的Harsh J。