0

Main メソッドで作成された String を Mapper クラスで共有する必要がある mapreduce プログラムを作成しています。これは、新しい mapreduce api を使用しています。私は適切にコーディングし、以下のように main メソッドの構成を使用して変数を設定しました。

Configuration conf = new Configuration();
Job job = new Job(conf);

SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmsss");
String date = sdf.format(new Date());
String ImagesDir    = "/user/srini/images/"+ date;
conf.set("ImagesDir", ImagesDir);

次に、以下のように Mapper クラスのセットアップ メソッドで変数を選択しています。最初に String OutputPath としてクラスに変数を作成し、セットアップで次のことを行いました。

Configuration conf = context.getConfiguration();
OutputPath  = conf.get("ImagesDir");

この変数を map メソッドで使用しました。問題は、変数 OutputPath の値が常に null であることです。古い mapred API で JobConf を使用してこれを試してみましたが、うまくいきました。どういうわけか、ここでうまくいかない。何が間違っていた可能性があります。私を助けてください..

4

2 に答える 2

0

あなたのやり方で設定を行う必要がありますか?そうでない場合は、これを試してください:

String ImagesDir = "/user/srini/images/"+ date;
FileOutputFormat.setOutputPath(job, new Path(ImageDir));

念のために言っておきますが、一般的なルールは、変数の名前は または のいずれimage_dirimageDirです。

于 2013-08-11T09:58:02.777 に答える