On 2/18/10 11:24 AM, Rob Stewart wrote:
Hi Eric, thanks.

It appears not:
----------------
  JobConf jobConf = new JobConf(getConf(), Sort.class);
     jobConf.setJobName("join");

     jobConf.setMapperClass(IdentityMapper.class);
     jobConf.setReducerClass(IdentityReducer.class);

     JobClient client = new JobClient(jobConf);
     ClusterStatus cluster = client.getClusterStatus();
     int num_maps = cluster.getTaskTrackers() *
                    jobConf.getInt("test.sort.maps_per_host", 10);
     int num_reduces = (int) (cluster.getMaxReduceTasks() * 0.9);
     String sort_reduces = jobConf.get("test.sort.reduces_per_host");
     if (sort_reduces != null) {
        num_reduces = cluster.getTaskTrackers() *
                        Integer.parseInt(sort_reduces);
     }

jobConf.setNumReduceTasks(num_reduces);

-----------

Any idea why my parameter for reduce tasks is being ignored ?

Rob:

It is setting the number of reducers itself. See the line:

jobConf.setNumReduceTasks(num_reduces)

In short, you can't control the number of reducers this code uses from the command line.

--
Eric Sammer
e...@lifeless.net
http://esammer.blogspot.com

Reply via email to