我有两个节点集群(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
我的问题是:
不是所有的文件都应该存在于所有的节点上吗?
应该怎么做才能解决这个问题?
谢谢。
1条答案
按热度按时间8cdiaqws1#
已解决-应使用:
感谢hadoop邮件列表中的harsh j。