Goal of Program

Nodes의 page-rank를 계산하기 위한 MapReduce program 을 구현하기

Twitter dataset의 각각의 node를 page로 사용하여 page-rank algorithm 만들기

 

Page-rank

1st-MapReduce (Preprocess 과정)

1st Map : 주어진 Twitter dataset의 connect node 들을 Text 형태로 만들기 (Key : key node in neighbor node, Value : Neighbor of the key node in data)

1st Reduce : Map의 output 을 aggregate할 시 key node에 대한 neighbor 집단들을 구하기 (Key : Key node, Value : Neighbor nodes + total number of linked page)

 

2nd-MapReduce (iteration 과정)

2nd Map : 각 key node에 따라 new_pr_val (page-rank value / total connected page) 를 구한 후 (Key : neighbor node, Value : new_pr_val) Emit하기

2nd Reduce : Map의 output을 Key node에 따라 pr_val들을 aggregate 한 후 새로운 page rank value Emit 하기 (Key : key node, Value : sum_pr_val)

 

Used Language

Java

 

My Review

이번 과제 같은 경우 실제 Twitter dataset을 활용하여 MapReduce 프로그램을 만들 수 있는 기회라 조금 더 MapReduce프로그램에 적응할 수 있는 좋은 기회였다. 특히, 단순한 형태의 data를 다루는게 아닌 직접 page data structure를 만들어서 필요한 것들이 뭔지 직접 생각하여 구상 해야했다. 그래서 pseudo code와 기본적인 알고리즘을 제공해주었지만 data를 Preprocess하고 그 데이터를 MapReduce 프로그램으로 계속 iteration하여 짜는 것 까지 해야했어서 상당히 난이도가 있었다. 그래서 이 과제를 하고 나서는 Hadoop에서 제공하는 명령어들이나 Hadoop filesystem이 정확히 어떻게 구성되고 그것을 어떻게 활용하는지에 대해 확실히 알게 되었다. 

 

Project Code

https://github.com/guswns00123/PageRank.git

 

GitHub - guswns00123/PageRank

Contribute to guswns00123/PageRank development by creating an account on GitHub.

github.com

 

 

Interested Concept 

What is Page Rank ? 

https://guswns00123.tistory.com/18

 

+ Recent posts