1

マスターとスレーブの 2 ノード クラスター (v1.04) があります。マスターでは、2 つのファイルをusingTool.run()に追加します。ファイルは HDFS に存在します。Mapper.setup() では、これらのファイルをキャッシュから取得します。DistributedCacheaddCacheFile()

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

問題はFileNotFoundException、ファイルがスレーブ ノードに存在するにもかかわらず、1 つのファイルに対して a がスローされることです。

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. それを修正するにはどうすればよいですか?

ありがとう。

4

1 に答える 1

4

解決済み-使用する必要があります:

FileSystem.getLocal( conf ) 

HadoopメーリングリストのHarshJに感謝します。

于 2012-11-22T21:18:15.297 に答える