Question
package org.myorg; import java.io.IOException; import java.util.regex.Pattern; import org.apache.hadoop.conf.Configured; import org.apache.hadoop.util.Tool; import org.apache.hadoop.util.ToolRunner; import org.apache.log4j.Logger; import org.apache.hadoop.mapreduce.Job; import org.apache.hadoop.mapreduce.Mapper; import org.apache.hadoop.mapreduce.Reducer; import org.apache.hadoop.fs.Path; import org.apache.hadoop.mapreduce.lib.input.FileInputFormat; import
package org.myorg;
import java.io.IOException; import java.util.regex.Pattern; import org.apache.hadoop.conf.Configured; import org.apache.hadoop.util.Tool; import org.apache.hadoop.util.ToolRunner; import org.apache.log4j.Logger; import org.apache.hadoop.mapreduce.Job; import org.apache.hadoop.mapreduce.Mapper; import org.apache.hadoop.mapreduce.Reducer; import org.apache.hadoop.fs.Path; import org.apache.hadoop.mapreduce.lib.input.FileInputFormat; import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat; import org.apache.hadoop.io.IntWritable; import org.apache.hadoop.io.LongWritable; import org.apache.hadoop.io.Text;
public class WordCount extends Configured implements Tool {
private static final Logger LOG = Logger .getLogger( WordCount.class);
public static void main( String[] args) throws Exception { int res = ToolRunner .run( new WordCount(), args); System .exit(res); }
public int run( String[] args) throws Exception { Job job = Job .getInstance(getConf(), " wordcount "); job.setJarByClass( this .getClass());
FileInputFormat.addInputPaths(job, args[0]); FileOutputFormat.setOutputPath(job, new Path(args[ 1])); job.setMapperClass( Map .class); job.setReducerClass( Reduce .class); job.setOutputKeyClass( Text .class); job.setOutputValueClass( IntWritable .class);
return job.waitForCompletion( true) ? 0 : 1; } public static class Map extends Mapper
private static final Pattern WORD_BOUNDARY = Pattern .compile("\\s*\\b\\s*");
public void map( LongWritable offset, Text lineText, Context context) throws IOException, InterruptedException {
String line = lineText.toString(); Text currentWord = new Text();
for ( String word : WORD_BOUNDARY .split(line)) { if (word.isEmpty()) { continue; } currentWord = new Text(word); context.write(currentWord,one); } } }
public static class Reduce extends Reducer
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started