map类 sumMap
public class sumMap extends Mapper<LongWritable, Text,Text,Text> {
@Override
protected void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException {
FileSplit inputSplit = (FileSplit) context.getInputSplit();
String name = inputSplit.getPath().getName();
context.write(new Text(name),value);
}
reduce 类
sumReduce
public class sumReduce extends Reducer<Text,Text,Text,Text> {
@Override
protected void reduce(Text key, Iterable<Text> values, Context context) throws IOException, InterruptedException {
for (Text value : values) {
context.write(key,value);
}
}
驱动类 Driver
sumDriver
public class sumDriver extends Configured implements Tool {
@Override
public int run(String[] args) throws Exception {
//实列化 job
Job job = Job.getInstance(new Configuration(), "hello");
//jar 包
job.setJarByClass(sumDriver.class);
//读取数据所属文本内容
job.setInputFormatClass(TextInputFormat.class);
TextInputFormat.addInputPath(job,new Path("F:\\lele"));
//使用job map类 输出
job.setMapperClass(sumMap.class);
job.setMapOutputKeyClass(Text.class);
job.setMapOutputValueClass(Text.class);
//使用job reduce类 输出
job.setReducerClass(sumReduce.class);
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(Text.class);
//输出 路劲
job.setOutputFormatClass(TextOutputFormat.class);
TextOutputFormat.setOutputPath(job,new Path("F://lele_01"));
return job.waitForCompletion(true)?0:1;
}
public static void main(String[] args) throws Exception {
int run = ToolRunner.run(new sumDriver(), args);
}
}
自定义类名