From 170ff8d81c77ae44ae08909b1911fe6930701104 Mon Sep 17 00:00:00 2001 From: Ravi Gummadi Date: Sat, 31 Mar 2012 08:24:15 +0000 Subject: [PATCH] MAPREDUCE-4087. [Gridmix] GenerateDistCacheData job of Gridmix can become slow in some cases (ravigummadi) git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1307740 13f79535-47bb-0310-9956-ffa450edef68 --- hadoop-mapreduce-project/CHANGES.txt | 3 +++ .../hadoop/mapred/gridmix/GenerateDistCacheData.java | 7 ++++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/hadoop-mapreduce-project/CHANGES.txt b/hadoop-mapreduce-project/CHANGES.txt index afcb7a2a1b6..a28d38f2bb0 100644 --- a/hadoop-mapreduce-project/CHANGES.txt +++ b/hadoop-mapreduce-project/CHANGES.txt @@ -52,6 +52,9 @@ Trunk (unreleased changes) BUG FIXES + MAPREDUCE-4087. [Gridmix] GenerateDistCacheData job of Gridmix can + become slow in some cases (ravigummadi). + MAPREDUCE-3953. [Gridmix] Gridmix throws NPE and does not simulate a job if the trace contains null taskStatus for a task. (ravigummadi) diff --git a/hadoop-mapreduce-project/src/contrib/gridmix/src/java/org/apache/hadoop/mapred/gridmix/GenerateDistCacheData.java b/hadoop-mapreduce-project/src/contrib/gridmix/src/java/org/apache/hadoop/mapred/gridmix/GenerateDistCacheData.java index c90e17c6bf4..fad34ab7df2 100644 --- a/hadoop-mapreduce-project/src/contrib/gridmix/src/java/org/apache/hadoop/mapred/gridmix/GenerateDistCacheData.java +++ b/hadoop-mapreduce-project/src/contrib/gridmix/src/java/org/apache/hadoop/mapred/gridmix/GenerateDistCacheData.java @@ -156,10 +156,11 @@ class GenerateDistCacheData extends GridmixJob { FSDataOutputStream dos = FileSystem.create(fs, path, new FsPermission((short)0755)); - for (long bytes = key.get(); bytes > 0; bytes -= val.getLength()) { + int size = 0; + for (long bytes = key.get(); bytes > 0; bytes -= size) { r.nextBytes(val.getBytes()); - val.setSize((int)Math.min(val.getLength(), bytes)); - dos.write(val.getBytes(), 0, val.getLength());// Write to distCache file + size = (int)Math.min(val.getLength(), bytes); + dos.write(val.getBytes(), 0, size);// Write to distCache file } dos.close(); }