文章目录
一、前期准备
可参考 “词频统计” 案例中的前期准备阶段
二、数据准备
生成页面关系数据,上传至hdfs
a b d
b c
c a b
d b c
三、PageRank案例
1.PageRankJob.class
package com.hdtrain.PageRank;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.input.KeyValueTextInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
import java.io.IOException;
public class PageRankJob {
/*定义一个枚举类,统计每一个页面的收敛值之和*/
public static enum Mycounter{
my
}
public static void main(String[] args) {
Configuration configuration = new Configuration(true);
configuration.set("mapreduce.framework.name", "local");
// 收敛指标
double convergence = 0.0001;
//计算收敛迭代的次数
int runCount = 0;
//开始执行迭代收敛
while (true){
//计数累加
runCount++;
try {
//向配置文件中设置一个变量
configuration.setInt("runCount", runCount);
//获取分布式文件系统
FileSystem fs = FileSystem.get(configuration);