<>强任务要求:强>
//输入文件格式
18661629496
110 18661629496 120 110
1234567
120
987654 2345678 110
2897839274 18661629496
//输出文件格式格式
11018661629496 | 11018661629496 | 987654 | 18661629496 | 987654 | 13107702446 |
1201234567 | 1201234567 | 1234567 | 1234567 |
186616294962897839274 | 186616294962897839274 |
<强> mapreduce程序编写:强>
import java.io.IOException; import java.util.StringTokenizer; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Path; import org.apache.hadoop.io.IntWritable; import org.apache.hadoop.io.LongWritable; import org.apache.hadoop.io.Text; import org.apache.hadoop.mapreduce.Job; import org.apache.hadoop.mapreduce.Mapper; import org.apache.hadoop.mapreduce.Reducer; import org.apache.hadoop.mapreduce.lib.input.FileInputFormat; import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat; public class  Test2 { enum 计数器 { LINESKIP,//记录出错的行 } ,,,public static class Map extends Mapper{ ,,,,,,,public void 地图(LongWritable 关键,Text 价值,Context 上下文) ,,,,,,,,,,,,,,,throws IOException, InterruptedException { ,,,,,,,,String line =, value.toString();//读取源数据 ,,,,,,,,,,,,试一试 ,,,,,,,,,,,,{ ,,,,,,,,,,,,//数据处理 ,,,,,,,,,,,,String [], lineSplit =, line.split (", ");//18661629496, 110 ,,,,,,,,,,,,String anum =, lineSplit [0]; ,,,,,,,,,,,,String bnum =, lineSplit [1];,, ,,,,,,,,,,,,//输出格式:110,18661629496,,,,,,,,,,, ,,,,,,,,,,,,context.write (new 文本(bnum), new 文本(anum)); ,,,,,,,,,,,, ,,,,,,,,,,,,} ,,,,,,,,,,,,抓(ArrayIndexOutOfBoundsException e) ,,,,,,,,,,,,{ ,,,,,,,,,,,,context.getCounter (Counter.LINESKIP) .increment(1);//出错时计数器+ 1 ,,,,,,,,,,,,返回; ,,,,,,,,,,,,} ,,,,,,,} ,,,} ,,,public static class Reduce extends Reducer<文本,文本,文本,Text>, { ,,,,,,,public void 减少(Text 关键,Iterable ,价值观,Context 上下文) ,,,,,,,,,,,,,,,throws IOException, InterruptedException { ,,,,,,,,,,,String valueString; ,,,,,,,,,,,String =" "; ,,,,,,,,,,,,(Text 价值:值) ,,,,,,,,,,,{ ,,,,,,,,,,,valueString=value.toString (); ,,,,,,,,,,,+=valueString +“|”; ,,,,,,,,,,,} ,,,,,,,,,,,context.write(钥匙,,new 文本()); ,,,,,,,} ,,,} ,,,public static void main (String [], args), throws Exception { ,,,,,,,Configuration conf =, new 配置(); ,,,,,,,if (args.length !=, 2), { ,,,,,,,,,,,System.err.println(“请配置输入输出路径,”); null null null null null null null null null null null null null null null null null null null null null null null MapReduce编程实战2——倒排索引(jar包)