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
'과제' 카테고리의 다른 글
| [Project] Make deduplication program (1) | 2023.06.27 |
|---|---|
| [Project] Make Dijkstra program by using Hadoop (2) | 2023.06.12 |
| [Project] Make n-gram program by using Hadoop (2) | 2023.03.23 |
| [Project] Fighting Tournament System (3) | 2023.02.21 |
| [Project] Moving in planet (1) | 2023.01.29 |