MapReduce實現的PageRank原理

2021-06-19 09:06:28 字數 1412 閱讀 1769

pagerank手工計算得出的值見帖子

這個值有助於我們驗證下面mr計算是不是正確

首先假設有兩個節點a和b 原始矩陣如tiger老師的幻燈片第九頁  a=1

網頁1和2儲存在節點a上 網頁3和4儲存在節點b上

由於a在a上很容易計算1和2的出鏈 根據mr的本地運算的思想,網頁1和2的處理必在a上完成,b也同理

那麼我們可以設計map函式,這個函式的作用有兩:1、得到源矩陣 2、用源矩陣乘以列向量

得到在a上需要計算的源矩陣:

0       0

1/3   0

1/3   1/2

1/3  1/2

同理在b節點上要計算的源矩陣:

0     0

0     1

0     0

1     0

基於矩陣的乘法規則 我們假設乙個列向量q00=,} q10=,}

把q0和q1分別傳送到節點a和節點b上 然後進行計算 我們姑且把計算出來的向量叫做qa和qb:

在a上:

0*1+0*1               0

1/3*1+0*1         1/3

qa=  1/3*1+1/2*1  =    5/6

1/3*1+1/2*1        5/6

在節點b上:

0*0+0*1             0

0*1+1*1             1

qb=0*1+0*1    =      0

1*1+0*1             1

然後通過網路把qa和qb傳送到執行reduce函式執行的節點上 reduce函式的作用也有兩個:1、合併計算結果 2、進行排序輸出

04/3

q1 = qa+qb= 5/6

11/6

發現這個q1正是我們手工計算時的第一輪迭代的結果,下面的步驟就簡單了

那就是把這個q1分發到a和b進行計算新的qa和qb 這是q00=} q10=}

計算後:

0*0+0*4/3                 0

1/3*0+0*4/3             0

qa=  1/3*0+1/2*4/3   =    4/6

1/3*0+1/2*4/3         4/6

0*5/6+0*11/6                         0

0*5/6 +1*11/6                   11/6

qb=  0*5/6 +0* 11/6     =            0

1*5/6 +0* 11/6                  5/6

011/6

q2=qa+qb=  4/6

9/6和我們手工計算的q2相同,如果反覆進行運算 知道得到乙個理想值,這就是用mr實現pagerank的原理了!

《轉》MapReduce實現的Join

如果資料量比較大,在記憶體進行連線操會發生oom。mapreduce join可以用來解決大資料的連線。在map階段,把關鍵字作為key輸出,並在value中標記出資料是來自data1還是data2。因為在shuffle階段已經自然按key分組,reduce階段,判斷每乙個value是來自data1...

hadoop 的 map reduce實現 其一

一,map 階段 1,切片是由輸入格式化類來實現的,預設切片大小等於block size 2,乙個切片 邏輯概念,乙個map處理資料的大小 對應乙個map,所有的 map 執行完之後才執行 reduce 3,預設的情況下 乙個 block對應乙個map程式,也可以使用視窗機制 切片 使得乙個 blo...

MapReduce倒排索引簡單實現

倒排索引 倒排索引是文件檢索系統中最常用的資料結構,被廣泛的應用於全文搜尋引擎。它主要用來儲存某個單詞 或片語 在乙個文件或一組文件中的儲存位置的對映,即提供了一種根據內容來查詢文件的方式,由於不是根據文件來確定文件所包含的內容,而是進行了相反的操作,因而被稱為倒排索引。例如 input 輸入有三個...