wordcount mapreduce プログラムで新しいオブジェクトを作成する場合と、書き込み可能なオブジェクトを再利用する場合のパフォーマンス上の利点を見つけようとしています。ただし、入力データがいくら大きくても、2 つのバージョンの完了にはほぼ同じ時間がかかります。
また、変更してタスクのヒープスペースを低くしてみましたが、
<property>
<name>mapred.child.java.opts</name>
<value>-Xmx120m</value>
</property>
ただし、どちらのバージョンも、ヒープ スペースが大きい場合と比べて、実行速度が少し遅くなりました。書き込み可能なものを再利用してパフォーマンスを向上させるプログラムを取得することはできませんでした。ここで何か不足していますか?
私が修正した wordcount の部分は、
public void map(Object key, Text value, Context context
) throws IOException, InterruptedException {
StringTokenizer itr = new StringTokenizer(value.toString());
while (itr.hasMoreTokens()) {
context.write(new Text(itr.nextToken()), new IntWritable(1));
}
}