首页 > 代码库 > PageRank算法的MapReduce实现
PageRank算法的MapReduce实现
假设目前需要排名计算的网页只有4个:数据如下:
baidu 10.00 google,sina,nefu google 10.00 baidu sina 10.00 google nefu 10.00 sina,google
1. baidu 存在三个外链接
2.google 存在1个外链接
3.sina 存在1个外链接
4.nefu. 存在2个外链接
由数据可以看出:所有链接都指向了google,所以google的PR应该最高,而由google指向的baidu的PR值 应该也很高。
代码如下:
package PageRank; import java.io.IOException; import java.net.URI; import java.net.URISyntaxException; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; 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; import org.apache.hadoop.mapreduce.lib.partition.HashPartitioner; public class PageRank { /** * @author XD */ static enum PageCount{ Count,TotalPR } public static class Map extends Mapper < LongWritable , Text , Text , Text >{ protected void map(LongWritable key, Text value , Context context) throws IOException, InterruptedException{ context.getCounter(PageCount.Count).increment(1); String[] kv = value.toString().split("\t"); String _key = kv[0]; String _value = http://www.mamicode.com/kv[1];>
最后输出结果如下:
PageRank算法的MapReduce实现
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。