1. Trang chủ
  2. » Luận Văn - Báo Cáo

Thuật toán PageRank (HADOOP MAPREDUCE BIG DATA)

20 430 3

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 20
Dung lượng 865,77 KB

Nội dung

PageRank là thuật toán phân tích các liên kết được dùng trong Google Search để xếp hạng các trang web.Nó là một giá trị số đại diện cho tầm quan trọng của một trang web trong thế giới website.Nó như là quá trình bầu chọn của các trang web trên hệ thống mạng internet .

Trang 1

BÁO CÁO MÔN HỌC

DỮ LIỆU LỚN

TRƯỜNG ĐẠI HỌC CẦN THƠ

KHOA CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG

- • -

Nhóm thực hiện:

1 Nguyễn Thị Thanh Lan M2515005

2 Giang Tuấn Nguyên M2515007

3 Lư Minh Phúc M2515010

Giảng viên hướng dẫn

TS Phan Thượng Cang

THUẬT TOÁN PAGE RANK

1

Trang 2

Nội dung báo cáo

1 Thuật toán Page rank

2 Giới thiệu cấu trúc dữ liệu bài toán

3 Ngôn ngữ giả thuật toán Pagerank

4 Chạy Demo

5 Tài liệu tham khảo

2

Trang 3

 PageRank là thuật toán phân tích các liên kết đƣợc dùng trong Google Search để xếp hạng các trang web

 Nó là một giá trị số đại diện cho tầm quan trọng của một trang web trong thế giới website

 Nó nhƣ là quá trình bầu chọn của các trang web trên

hệ thống mạng internet

1 Thuật toán Page rank

Trang 4

Top trang web có Page rank cao

4

Trang 5

2 Giới thiệu cấu trúc dữ liệu

• Cấu trúc dữ liệu ban đầu của bài toán tính

PageRank:

Trang web d có link đến trang web a,b,c

Trang web c chỉ link đến trang web a

Trang web b có link tới trang web a,c

Trang 6

2 Thuật toán Page rank (tt)

PR(A) = (1-d) + d*(PR(T1)/C(T1) + … + PR(Tn)/C(Tn)

• Trong đó:

 PR(A) là pagerank của trang “page A”

đƣợc qua nhiều nghiên cứu )

 PR(Tn) là pagerank của trang Tn có liên kết với “trang A”

 C(Tn) : tổng số liên kết ra bên ngoài (outgoing links) của trang Tn

6

Trang 7

3 Ngôn ngữ giả thuật toán

Page rank

7

chúng ta sẽ chia công việc thành 3 jobs bao gồm: chuyển đổi, tính toán và sắp xếp

Trang 8

3 Ngôn ngữ giả thuật toán Page

rank

8

Trang 9

Ngôn ngữ giả thuật toán Page

rank

9

Trang 10

Function Mapper1(Key1: Số dòng , value1: chuỗi giá trị của dòng) {

tab_Index = value1.find("\t");

if (tabIndex > 0) { nodeA = value1 substring(0, tabIndex);

nodeB= value1.substring(tabIndex+1, tabIndex+2);

emit(Key2 : nodeA , value2: nodeB);

} }

Trong đó:

nodeA là tên trang hiện tại

nodeB là tên các trang đƣợc link tới từ trang A

3 Ngôn ngữ giả thuật toán Page

rank

Trang 11

Ngôn ngữ giả thuật toán Page

rank

Function Reducer1(Key2 : nodeA , value2[ ]: danh sách các nodeB) {

first = true;

links = 0.5 + "\t";

foreach( value : value2[ ] ) {

if (!first) {

links += ",“

} links += value;

first = false;

}

emit(Key3 = key2, value3: links);

}

Trong đó:

value3 có nội dung là: 0.5 value2[1], value2[2] … value2[n]

11

Trang 12

Ngôn ngữ giả thuật toán Page

rank

Function Mapper2(Key3 = key2, value3: nodeA 0.5 value2[1], value2[2] … value2[n])

{

tab_index1 = value3.find("\t");

tab_index2 = value3.find("\t", tab_index1 + 1);

page = value3.substring( 0, tab_index1 );

pageRank = value3.substring(tab_index1 + 1, tab_index2 - (tab_index1 + 1));

links = value3.substring(tab_index2 + 1, value3.getLength() - (tab_index2 + 1)); allOtherPages[ ] = links.split(",");

for (otherPage : allOtherPages) {

pageRankWithTotalLinks = “pageRank + "\t" + allOtherPages.length “;

emit (key4: otherPage, value4: pageRankWithTotalLinks);

}

emit (key5: page, value5: || + links ));

}

12

Trang 13

Ngôn ngữ giả thuật toán Page

rank

Function reducer2(key5: page, values : value4 hoặc value5[ ] ){

links = ""

sumShareOtherPageRanks = 0.0;

for (value : values) {

content = value;

if (content == value5) {

links += content.substring(2);

} else if(content == value4) {

split [ ] = content.split("\\t");

pageRank = split[0];

totalLinks = split[1];

sumShareOtherPageRanks += (pageRank / totalLinks);

}

}

newRank = (1 - d) + d * sumShareOtherPageRanks ;

emit (Key7 : key5, value7: newRank + "\t" + links);

}

13

Trang 14

Function Mapper3(Key7 : key5, value7: page +”\t”+ newRank + "\t" + links) {

tab_index1= value7.find(“ \t ");

tab_index2 = value7.find(“ \t ", tab_index1 + 1);

page = value7.substring(0, tab_index1);

pageRank = value7 substring(tab_index1 +1, tab_index2 );

emit (key8: pageRank,value8: page );

}

3 Ngôn ngữ giả thuật toán Page

rank

Trang 15

4 Chạy Demo

• Demo:

Khởi động các dịch vụ HDFS và kiểm tra các tiến trình đang chạy qua các lệnh

• start-all.sh

• jps

– B1: Giải nén tập tin pagerank.tar.gz vào thƣ mục cài đặt hadoop

– B2: Di chuyển vào thƣ mục cài hadoop

cd ~/hadoop

– B3: Tạo thƣ mục input trên hdfs nếu chƣa tạo

hdfs dfs -mkdir /input

15

Trang 16

4 Chạy Demo

– B4: Di chuyển vào thư mục pagerank vừa giải nén ở trên

cd ~/hadoop/pagerank

– B5: Đưa các file trong thư mục pagerank/input lên hdfs:

hdfs dfs -put /input/* /input

– B6: Biên dịch file java thành file class

hadoop com.sun.tools.javac.Main *.java

– B7 :Biên dịch file class thành file jar

jar cf pg.jar *.class

– Chạy chương trình với số lần lặp là 1

hadoop jar pg.jar PageRank input /input/easy4.txt output

/output

16

Trang 17

4 Chạy Demo

– Chạy chương trình với số lần lặp là 2

hadoop jar pg.jar PageRank loop 2 input /input/easy4.txt output

/output1

– Xem kết quả tính pagerank với 1 lần lặp

hadoop fs -cat /output/result/*

– Xem kết quả tính pagerank với 2 lần lặp

hadoop fs -cat /output1/result/*

17

Trang 18

4 Demo

– Kết quả tính Pagerank với 1 lần lặp của tập easy4.txt:

– Kết quả tính Pagerank với 2 lần lặp của tập tin easy4.txt:

Trang 19

5 Tài liệu tham khảo

http://blog.xebia.com/2011/09/27/wiki-pagerank-with-hadoop/

2

http://www.cs.princeton.edu/~chazelle/cour

ses/BIB/pagerank.htm

http://pr.efactory.de/e-pagerank-algorithm.shtml

19

Trang 20

Cảm ơn Thầy và các bạn

đã theo dõi!

20

Ngày đăng: 24/03/2019, 09:28

TỪ KHÓA LIÊN QUAN

w