<dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-annotations</artifactId> <version>3.3.0</version> </dependency> import org.apache.hadoop.mapreduce.Mapper; 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.io.LongWritable; import org.apache.hadoop.io.Text; @Mapper @Input(inputFormat = TextInputFormat.class, path = "/input/data.txt") @Output(outputFormat = TextOutputFormat.class, path = "/output/result") public class MyMapper extends Mapper<LongWritable, Text, Text, LongWritable> { } import org.apache.hadoop.mapreduce.Reducer; import org.apache.hadoop.mapreduce.lib.output.TextOutputFormat; import org.apache.hadoop.io.Text; import org.apache.hadoop.io.LongWritable; @Reducer @Input(inputFormat = TextInputFormat.class, path = "/output/result") @Output(outputFormat = TextOutputFormat.class, path = "/output/final_result") public class MyReducer extends Reducer<Text, LongWritable, Text, LongWritable> { } import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Path; import org.apache.hadoop.util.ToolRunner; import org.apache.hadoop.conf.Configured; import org.apache.hadoop.mapreduce.Job; @Job(name = "MyHadoopJob", inputFormat = TextInputFormat.class, outputFormat = TextOutputFormat.class) public class MyHadoopJob extends Configured implements Tool { public static void main(String[] args) throws Exception { int res = ToolRunner.run(new Configuration(), new MyHadoopJob(), args); System.exit(res); } @Override public int run(String[] args) throws Exception { Job job = Job.getInstance(getConf(), "MyHadoopJob"); job.setJarByClass(getClass()); job.setMapperClass(MyMapper.class); job.setReducerClass(MyReducer.class); FileInputFormat.addInputPath(job, new Path("/input/data.txt")); FileOutputFormat.setOutputPath(job, new Path("/output/result")); return job.waitForCompletion(true) ? 0 : 1; } }


上一篇:
下一篇:
切换中文