标签:
package findfriends; import java.io.IOException; import java.util.Set; import java.util.TreeSet; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Path; 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 FindFriends { public static class FindMap extends Mapper<Object,Text,Text,Text>{ public void map(Object key,Text value,Context context)throws IOException , InterruptedException{ Set<String> set = new TreeSet<String>(); String[] str = new String[value.toString().split(" ").length]; str=value.toString().split(" "); for(int i=0;i<str.length;i++){ set.add(str[i]); } String[] friends = new String[set.size()]; friends = set.toArray(friends); for(int i=0;i<friends.length;i++) for(int j=i+1;j<friends.length;j++){ String friend = friends[i]+friends[j]; context.write(new Text(friend), new Text(str[0])); } } } public static class FindReduce extends Reducer<Text,Text,Text,Text>{ public void reduce(Text key,Iterable<Text> values,Context context)throws IOException,InterruptedException{ String value = ""; for(Text val:values){ if(value==""){ value=val.toString(); } else{ value=value+":"+val.toString(); } } context.write(key, new Text(value)); } } public static void main(String[] args)throws IOException, ClassNotFoundException, InterruptedException{ Configuration conf = new Configuration(); Job job = new Job(conf,"findfriends"); job.setJarByClass(FindFriends.class); job.setMapperClass(FindMap.class); job.setReducerClass(FindReduce.class); job.setOutputKeyClass(Text.class); job.setOutputValueClass(Text.class); job.setNumReduceTasks(1); FileInputFormat.addInputPath(job, new Path(args[0])); FileOutputFormat.setOutputPath(job, new Path(args[1])); System.exit(job.waitForCompletion(true)?0:1); } }
版权声明:本文为博主原创文章,未经博主允许不得转载。
标签:
原文地址:http://blog.csdn.net/zhangpengfei104/article/details/48024935