Kiran Dalvi
- 20 Dec, 2021
- 0 Comments
- 1 Min Read
Count Frequency of Character in Mapreduce Programme
Mapper Programe
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | package wordcount; import java.io.IOException; import org.apache.hadoop.io.LongWritable; import org.apache.hadoop.io.Text; import org.apache.hadoop.mapreduce.Mapper; public class AlphaMapper extends Mapper<Object, Text, Text, LongWritable> { private final static LongWritable one = new LongWritable(1); private Text character = new Text(); @Override public void map(Object key, Text value, Context context) throws IOException, InterruptedException { String v = value.toString(); for (int i = 0; i < v.length(); i++) { character.set(v.substring(i, i + 1)); context.write(character, one); } } } |
Reducer Programe
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | package wordcount; import java.io.IOException; import org.apache.hadoop.io.LongWritable; import org.apache.hadoop.io.Text; import org.apache.hadoop.mapreduce.Reducer; public class AlphaReducer extends Reducer<Text, LongWritable, Text, LongWritable> { private LongWritable result = new LongWritable(); public void reduce(Text key, Iterable<LongWritable> values, Context context) throws IOException, InterruptedException { long sum = 0; for (LongWritable val : values) { sum += val.get(); } result.set(sum); context.write(key, result); } } |
Driver Programe
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.conf.Configured; import org.apache.hadoop.fs.Path; import org.apache.hadoop.io.LongWritable; import org.apache.hadoop.io.Text; import org.apache.hadoop.mapreduce.Job; import org.apache.hadoop.mapreduce.lib.input.FileInputFormat; import org.apache.hadoop.mapreduce.lib.input.TextInputFormat; import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat; import org.apache.hadoop.mapreduce.lib.output.TextOutputFormat; import org.apache.hadoop.util.Tool; import org.apache.hadoop.util.ToolRunner; // The driver program for mapreduce job. public class AlphaCounter extends Configured implements Tool { public static void main(String[] args) throws Exception { int res = ToolRunner.run( new Configuration(), new AlphaCounter(), args); System. exit (res); } @Override public int run(String[] args) throws Exception { Configuration conf = this.getConf(); // Create job Job job = Job.getInstance(conf, "Alpha Counter Job" ); job.setJarByClass(AlphaCounter. class ); job.setMapperClass(AlphaMapper. class ); job.setReducerClass(AlphaReducer. class ); job.setOutputKeyClass(Text. class ); job.setOutputValueClass(LongWritable. class ); FileInputFormat.addInputPath(job, new Path(args[0])); job.setInputFormatClass(TextInputFormat. class ); FileOutputFormat.setOutputPath(job, new Path(args[1])); job.setOutputFormatClass(TextOutputFormat. class ); return job.waitForCompletion(true) ? 0 : 1; } } |
Run Mapreduce Programe
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | hadoop jar count .jar wordcount.AlphaCounter /user/hive/input/wordcount.txt /user/hive/output/wordcount1 14 I 1 a 10 c 2 d 4 e 9 g 6 h 2 i 5 l 3 m 7 n 4 o 8 p 4 r 9 s 3 u 3 w 2 y 2 |