CS491/591 - Implementing Page Rank: MapReduce
Assignment #5

Spring 2017

Groups of 2-3
Due Date -
April 14 between noon and 11:59 pm email IP address, code, input for a different graph and a discussion of the runtimes to psheinidashtegol@crimson.ua.edu

You will write the Page Rank algorithm discussed in class using MapReduce  on AWS.

Assume for PageRank you will receive information about the graph to use by reading in the following info from a file called graph.txt:
    How many nodes in the graph
    Convergence - when to terminate: e.g. when each page rank value changes less than the specified convergence value
    The name of a node followed by an outlink from each node

A sample file representing the graph we traced in class would contain:

5
.001
n1 n2
n5 n3
n1 n4
n3 n4
n2 n3
n4 n5
n2 n5
n5 n1
n5 n2

Assume the page rank value of each node starts with an initial value of 1 that is evenly divided amongst all of the nodes to assign the first page rank value.  You should create whatever data structures you feel you need to complete this assignment.

Deliverables:

1) The output to this program is the Page Rank value of each of the nodes in the graph
2)  You should also keep track of how long it takes for your program to run.  Run your program a few times and take the average (you don't have to print this, but keep track of it).  Run your program using different convergence values and keep track of the run times.
3)  You should test your program on a different, more complex graph