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

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

Đ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

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 .

TRƢỜNG ĐẠI HỌC CẦN THƠ KHOA CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG - • BÁO CÁO MÔN HỌC DỮ LIỆU LỚN THUẬT TOÁN PAGE RANK Giảng viên hướng dẫn TS Phan Thƣợng Cang Nhóm thực hiện: Nguyễn Thị Thanh Lan M2515005 Giang Tuấn Nguyên M2515007 Lƣ Minh Phúc M2515010 Nội dung báo cáo Thuật toán Page rank Giới thiệu cấu trúc liệu toán Ngơn ngữ giả thuật tốn Pagerank Chạy Demo Tài liệu tham khảo Thuật toán Page rank  PageRank thuật tốn phân tích liên kết đƣợc dùng Google Search để xếp hạng trang web  Nó giá trị số đại diện cho tầm quan trọng trang web giới website  Nó nhƣ q trình bầu chọn trang web hệ thống mạng internet Top trang web có Page rank cao Giới thiệu cấu trúc liệu • Cấu trúc liệu ban đầu tốn tính PageRank: Trang web d có link đến trang web a,b,c Trang web c link đến trang web a Trang web b có link tới trang web a,c Giả sử trang web a link tới trang web b,c,d Thuật toán Page rank (tt) PR(A) = (1-d) + d*(PR(T1)/C(T1) + … + PR(Tn)/C(Tn) • Trong đó:  PR(A) pagerank trang “page A”  d số Thông thƣờng d = 0.85 (hằng số có đƣợc qua nhiều nghiên cứu )  PR(Tn) pagerank trang Tn có liên kết với “trang A”  C(Tn) : tổng số liên kết bên (outgoing links) trang Tn Ngơn ngữ giả thuật tốn Page rank  Để áp dụng thuật toán PageRank vào toán chia cơng việc thành jobs bao gồm: chuyển đổi, tính tốn xếp Ngơn ngữ giả thuật tốn Page rank Ngơn ngữ giả thuật tốn Page rank Ngơn ngữ giả thuật tốn Page rank • Function Mapper1(Key1: Số dòng , value1: chuỗi giá trị 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 tên trang nodeB tên trang đƣợc link tới từ trang A Ngơn ngữ giả thuật tốn Page rank Function Reducer1(Key2 : nodeA , value2[ ]: danh sách 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 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 Ngôn ngữ giả thuật toán Page rank Function reducer2(key5: page, values : value4 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 Ngơn ngữ giả thuật tốn Page rank 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 ); } Chạy Demo • Demo: Khởi động dịch vụ HDFS kiểm tra tiến trình chạy qua 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 hdfs chƣa tạo hdfs dfs -mkdir /input 15 Chạy Demo – B4: Di chuyển vào thƣ mục pagerank vừa giải nén cd ~/hadoop/pagerank – B5: Đƣa file 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 hadoop jar pg.jar PageRank input /input/easy4.txt output /output 16 Chạy Demo – Chạy chƣơng trình với số lần lặp hadoop jar pg.jar PageRank loop input /input/easy4.txt output /output1 – Xem kết tính pagerank với lần lặp hadoop fs -cat /output/result/* – Xem kết tính pagerank với lần lặp hadoop fs -cat /output1/result/* 17 Demo – Kết tính Pagerank với lần lặp tập easy4.txt: – Kết tính Pagerank với lần lặp tập tin easy4.txt: Tài liệu tham khảo http://blog.xebia.com/2011/09/27/wikipagerank-with-hadoop/ http://www.cs.princeton.edu/~chazelle/cour ses/BIB/pagerank.htm http://pr.efactory.de/e-pagerankalgorithm.shtml 19 Cảm ơn Thầy bạn theo dõi! 20

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

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan