1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.hadoop.chukwa.extraction.demux;
20
21
22 import org.apache.hadoop.chukwa.extraction.engine.ChukwaRecord;
23 import org.apache.hadoop.chukwa.extraction.engine.ChukwaRecordKey;
24 import org.apache.hadoop.mapred.JobConf;
25 import org.apache.hadoop.mapred.Partitioner;
26 import org.apache.log4j.Logger;
27
28 public class ChukwaRecordPartitioner<K, V> implements
29 Partitioner<ChukwaRecordKey, ChukwaRecord> {
30 static Logger log = Logger.getLogger(ChukwaRecordPartitioner.class);
31
32 public void configure(JobConf arg0) {
33 }
34
35 public int getPartition(
36 org.apache.hadoop.chukwa.extraction.engine.ChukwaRecordKey key,
37 org.apache.hadoop.chukwa.extraction.engine.ChukwaRecord record,
38 int numReduceTasks) {
39 if (log.isDebugEnabled()) {
40
41 log
42 .debug("Partitioner key: ["
43 + key.getReduceType()
44 + "] - Reducer:"
45 + ((key.getReduceType().hashCode() & Integer.MAX_VALUE) % numReduceTasks));
46 }
47 return (key.getReduceType().hashCode() & Integer.MAX_VALUE)
48 % numReduceTasks;
49 }
50
51 }