新しい API である Hadoop 2.x の DistributedCache に問題があります。この問題に対処している人が何人か見つかりましたが、問題の例は解決されません。
DistributedCache でデータを取得しようとしたときに NullPointerException が発生したため、このソリューションは機能しません
私の構成は次のとおりです。
運転者
public int run(String[] arg) throws Exception {
Configuration conf = this.getConf();
Job job= new Job(conf,"job Name");
...
job.addCacheFile(new URI(arg[1]);
設定
protected void setup(Context context)
throws IOException, InterruptedException {
Configuration conf = context.getConfiguration();
URI[] cacheFiles = context.getCacheFiles();
BufferedReader dtardr = new BufferedReader(new FileReader(cacheFiles[0].toString()));
ここでバッファリングされたリーダーの作成を開始すると、NullPointerException がスローされます。これはcontext.getCacheFiles();が原因で発生します。常に NULL を返します。この問題を解決する方法と、キャッシュ ファイルが保存されている場所 (HDFS、またはローカル ファイル システム)