一種基于MapReduce框架的網(wǎng)頁(yè)排序方法和系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開(kāi)了一種基于MapReduce框架的網(wǎng)頁(yè)排序方法和系統(tǒng),應(yīng)用于Hadoop集群中的MapReduce框架,MapReduce框架包括Map模塊和Reduce模塊,Map模塊從文本文件中讀取與各個(gè)網(wǎng)頁(yè)對(duì)應(yīng)的數(shù)據(jù)記錄,根據(jù)讀取到的數(shù)據(jù)記錄,生成并保存與各個(gè)網(wǎng)頁(yè)對(duì)應(yīng)的鏈接信息、積分信息和出度信息;Reduce模塊根據(jù)與各個(gè)網(wǎng)頁(yè)對(duì)應(yīng)的鏈接信息和出度信息,更新各個(gè)網(wǎng)頁(yè)的貢獻(xiàn)積分,并在滿足預(yù)設(shè)的收斂條件時(shí),將網(wǎng)頁(yè)排序結(jié)果輸出,提升了網(wǎng)頁(yè)排序的效率,且保證網(wǎng)頁(yè)排序的準(zhǔn)確性。
【專利說(shuō)明】-種基于MapReduce框架的網(wǎng)頁(yè)排序方法和系統(tǒng)
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及計(jì)算機(jī)【技術(shù)領(lǐng)域】,具體涉及一種基于MapReduce框架的網(wǎng)頁(yè)排序方法 和系統(tǒng)。
【背景技術(shù)】
[0002] 隨著網(wǎng)絡(luò)技術(shù)的日益普及,人們對(duì)于網(wǎng)絡(luò)搜索的需求量也急劇增加,而用戶能否 快速地搜索到自己所需的網(wǎng)頁(yè),取決于網(wǎng)絡(luò)中的網(wǎng)頁(yè)排序。因此,網(wǎng)絡(luò)中的網(wǎng)頁(yè)排序是至關(guān) 重要的。
[0003] 現(xiàn)有技術(shù)中,通常使用基于網(wǎng)頁(yè)拓?fù)浣Y(jié)果的網(wǎng)頁(yè)排序算法對(duì)網(wǎng)絡(luò)中的網(wǎng)頁(yè)進(jìn)行排 序。即,計(jì)算每個(gè)網(wǎng)頁(yè)的重要性,基于每個(gè)網(wǎng)頁(yè)的重要性對(duì)各個(gè)網(wǎng)頁(yè)進(jìn)行評(píng)分,并根據(jù)評(píng)分 對(duì)網(wǎng)頁(yè)進(jìn)行排序。
[0004] 然而,由于網(wǎng)絡(luò)中的網(wǎng)頁(yè)處于海量增長(zhǎng)狀態(tài),使用單機(jī)硬件配置進(jìn)行網(wǎng)頁(yè)排序,會(huì) 導(dǎo)致排序效率低下,降低了網(wǎng)絡(luò)搜索的處理速度。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明提供了一種基于MapReduce框架的網(wǎng)頁(yè)排序方法和系統(tǒng),以解決現(xiàn)有技術(shù) 中排序效率低下的缺陷。
[0006] 本發(fā)明提供了一種基于MapReduce框架的網(wǎng)頁(yè)排序方法,應(yīng)用于Hadoop集群中的 MapReduce框架,所述MapReduce框架包括Map模塊和Reduce模塊,所述方法包括以下步 驟:
[0007] S1、所述Map模塊從文本文件中讀取與各個(gè)網(wǎng)頁(yè)對(duì)應(yīng)的數(shù)據(jù)記錄,根據(jù)讀取到的 數(shù)據(jù)記錄,生成并保存與各個(gè)網(wǎng)頁(yè)對(duì)應(yīng)的鏈接信息,并對(duì)與各個(gè)網(wǎng)頁(yè)對(duì)應(yīng)的積分信息進(jìn)行 初始化和保存;
[0008] S2、所述Map模塊根據(jù)與各個(gè)網(wǎng)頁(yè)對(duì)應(yīng)的積分信息,生成并保存與各個(gè)網(wǎng)頁(yè)對(duì)應(yīng) 的出度信息;
[0009] S3、所述Reduce模塊獲取與各個(gè)網(wǎng)頁(yè)對(duì)應(yīng)的鏈接信息和出度信息,根據(jù)與各個(gè)網(wǎng) 頁(yè)對(duì)應(yīng)的鏈接信息和出度信息,更新各個(gè)網(wǎng)頁(yè)的貢獻(xiàn)積分;
[0010] S4、所述Reduce模塊判斷是否滿足預(yù)設(shè)的收斂條件,如果是,則執(zhí)行步驟S6 ;否 貝1J,返回步驟S5 ;
[0011] S5、所述Reduce模塊根據(jù)更新后的各個(gè)網(wǎng)頁(yè)的貢獻(xiàn)積分,對(duì)與各個(gè)網(wǎng)頁(yè)對(duì)應(yīng)的積 分信息進(jìn)行更新和保存,并返回步驟S2 ;
[0012] S6、所述Reduce模塊將與更新后的各個(gè)網(wǎng)頁(yè)的貢獻(xiàn)積分對(duì)應(yīng)的網(wǎng)頁(yè)排序結(jié)果輸 出。
[0013] 可選地,所述步驟S1,具體為:
[0014] 所述Map模塊將各個(gè)網(wǎng)頁(yè)的URL作為鍵,將各個(gè)網(wǎng)頁(yè)包含的正向鏈接的URL作為 值,生成與各個(gè)網(wǎng)頁(yè)對(duì)應(yīng)的第一鍵值對(duì),將所述第一鍵值對(duì)作為鏈接信息存儲(chǔ)到本地文件 系統(tǒng)中;對(duì)各個(gè)網(wǎng)頁(yè)的貢獻(xiàn)積分進(jìn)行初始化,并將各個(gè)網(wǎng)頁(yè)的URL作為鍵,將各個(gè)網(wǎng)頁(yè)的貢 獻(xiàn)積分以及各個(gè)網(wǎng)頁(yè)包含的正向鏈接的URL作為值,生成與各個(gè)網(wǎng)頁(yè)對(duì)應(yīng)的第二鍵值對(duì), 并將所述第二鍵值對(duì)作為積分信息存儲(chǔ)到本地文件系統(tǒng)中。
[0015] 可選地,所述步驟S2,具體為:
[0016] 所述Map模塊根據(jù)與各個(gè)網(wǎng)頁(yè)對(duì)應(yīng)的積分信息,獲取各個(gè)網(wǎng)頁(yè)的URL以及各個(gè)網(wǎng) 頁(yè)包含的正向鏈接的URL,獲取各個(gè)網(wǎng)頁(yè)的網(wǎng)頁(yè)ID以及各個(gè)網(wǎng)頁(yè)的出度數(shù)量,將各個(gè)網(wǎng)頁(yè) 的網(wǎng)頁(yè)ID作為鍵,將各個(gè)網(wǎng)頁(yè)的貢獻(xiàn)積分與出度數(shù)量的比值作為值,生成與各個(gè)網(wǎng)頁(yè)對(duì)應(yīng) 的第三鍵值對(duì),并將所述第三鍵值對(duì)作為出度信息存儲(chǔ)到本地文件系統(tǒng)中。
[0017] 可選地,所述步驟S3,具體為:
[0018] 所述Reduce模塊根據(jù)與各個(gè)網(wǎng)頁(yè)對(duì)應(yīng)的鏈接信息,確定各個(gè)網(wǎng)頁(yè)的反向鏈接所 在的網(wǎng)頁(yè),并根據(jù)確定出的網(wǎng)頁(yè)對(duì)應(yīng)的出度信息中包含的該網(wǎng)頁(yè)的貢獻(xiàn)積分與出度數(shù)量的 比值,計(jì)算各個(gè)網(wǎng)頁(yè)的貢獻(xiàn)積分,并將計(jì)算結(jié)果作為更新后的各個(gè)網(wǎng)頁(yè)的貢獻(xiàn)積分。
[0019] 可選地,所述Reduce模塊判斷是否滿足預(yù)設(shè)的收斂條件,具體為:
[0020] 所述Reduce模塊根據(jù)更新前后的各個(gè)網(wǎng)頁(yè)的貢獻(xiàn)積分,判斷各個(gè)網(wǎng)頁(yè)的貢獻(xiàn)積 分是否發(fā)生變化,如果發(fā)生變化,則確定不滿足預(yù)設(shè)的收斂條件;否則,確定滿足預(yù)設(shè)的收 斂條件;
[0021] 或者,
[0022] 所述Reduce模塊獲取與更新前后的各個(gè)網(wǎng)頁(yè)的貢獻(xiàn)積分對(duì)應(yīng)的網(wǎng)頁(yè)排序結(jié)果, 判斷所述網(wǎng)頁(yè)排序結(jié)果是否發(fā)生變化,如果發(fā)生變化,則確定不滿足預(yù)設(shè)的收斂條件;否 貝1J,確定滿足預(yù)設(shè)的收斂條件;
[0023] 或者,
[0024] 所述Reduce模塊判斷各個(gè)網(wǎng)頁(yè)的貢獻(xiàn)積分的更新次數(shù)是否達(dá)到預(yù)設(shè)次數(shù),如果 是,則確定滿足預(yù)設(shè)的收斂條件;否則,確定不滿足預(yù)設(shè)的收斂條件。
[0025] 本發(fā)明還提供了一種基于MapReduce框架的網(wǎng)頁(yè)排序系統(tǒng),包括Map模塊和 Reduce 模塊;
[0026] 所述Map模塊包括:
[0027] 第一生成子模塊,用于從文本文件中讀取與各個(gè)網(wǎng)頁(yè)對(duì)應(yīng)的數(shù)據(jù)記錄,根據(jù)讀取 到的數(shù)據(jù)記錄,生成并保存與各個(gè)網(wǎng)頁(yè)對(duì)應(yīng)的鏈接信息,并對(duì)與各個(gè)網(wǎng)頁(yè)對(duì)應(yīng)的積分信息 進(jìn)行初始化和保存;
[0028] 第二生成子模塊,用于根據(jù)與各個(gè)網(wǎng)頁(yè)對(duì)應(yīng)的積分信息,生成并保存與各個(gè)網(wǎng)頁(yè) 對(duì)應(yīng)的出度?η息;
[0029] 所述Reduce模塊包括:
[0030] 第一更新子模塊,用于獲取與各個(gè)網(wǎng)頁(yè)對(duì)應(yīng)的鏈接信息和出度信息,根據(jù)與各個(gè) 網(wǎng)頁(yè)對(duì)應(yīng)的鏈接信息和出度信息,更新各個(gè)網(wǎng)頁(yè)的貢獻(xiàn)積分;
[0031] 判斷子模塊,用于判斷是否滿足預(yù)設(shè)的收斂條件;
[0032] 第二更新子模塊,用于在所述判斷子模塊判斷出不滿足預(yù)設(shè)的收斂條件時(shí),根據(jù) 所述第一更新子模塊更新后的各個(gè)網(wǎng)頁(yè)的貢獻(xiàn)積分,對(duì)與各個(gè)網(wǎng)頁(yè)對(duì)應(yīng)的積分信息進(jìn)行更 新和保存,并觸發(fā)所述第二生成子模塊;
[0033] 輸出子模塊,用于在所述判斷子模塊判斷出滿足預(yù)設(shè)的收斂條件時(shí),將與更新后 的各個(gè)網(wǎng)頁(yè)的貢獻(xiàn)積分對(duì)應(yīng)的網(wǎng)頁(yè)排序結(jié)果輸出。
[0034] 可選地,所述第一生成子模塊,具體用于將各個(gè)網(wǎng)頁(yè)的URL作為鍵,將各個(gè)網(wǎng)頁(yè) 包含的正向鏈接的URL作為值,生成與各個(gè)網(wǎng)頁(yè)對(duì)應(yīng)的第一鍵值對(duì),將所述第一鍵值對(duì)作 為鏈接信息存儲(chǔ)到本地文件系統(tǒng)中;對(duì)各個(gè)網(wǎng)頁(yè)的貢獻(xiàn)積分進(jìn)行初始化,并將各個(gè)網(wǎng)頁(yè)的 URL作為鍵,將各個(gè)網(wǎng)頁(yè)的貢獻(xiàn)積分以及各個(gè)網(wǎng)頁(yè)包含的正向鏈接的URL作為值,生成與各 個(gè)網(wǎng)頁(yè)對(duì)應(yīng)的第二鍵值對(duì),并將所述第二鍵值對(duì)作為積分信息存儲(chǔ)到本地文件系統(tǒng)中。
[0035] 可選地,所述第二生成子模塊,具體用于根據(jù)與各個(gè)網(wǎng)頁(yè)對(duì)應(yīng)的積分信息,獲取各 個(gè)網(wǎng)頁(yè)的URL以及各個(gè)網(wǎng)頁(yè)包含的正向鏈接的URL,獲取各個(gè)網(wǎng)頁(yè)的網(wǎng)頁(yè)ID以及各個(gè)網(wǎng)頁(yè) 的出度數(shù)量,將各個(gè)網(wǎng)頁(yè)的網(wǎng)頁(yè)ID作為鍵,將各個(gè)網(wǎng)頁(yè)的貢獻(xiàn)積分與出度數(shù)量的比值作為 值,生成與各個(gè)網(wǎng)頁(yè)對(duì)應(yīng)的第三鍵值對(duì),并將所述第三鍵值對(duì)作為出度信息存儲(chǔ)到本地文 件系統(tǒng)中。
[0036] 可選地,所述第一更新子模塊,具體用于根據(jù)與各個(gè)網(wǎng)頁(yè)對(duì)應(yīng)的鏈接信息,確定各 個(gè)網(wǎng)頁(yè)的反向鏈接所在的網(wǎng)頁(yè),并根據(jù)確定出的網(wǎng)頁(yè)對(duì)應(yīng)的出度信息中包含的該網(wǎng)頁(yè)的貢 獻(xiàn)積分與出度數(shù)量的比值,計(jì)算各個(gè)網(wǎng)頁(yè)的貢獻(xiàn)積分,并將計(jì)算結(jié)果作為更新后的各個(gè)網(wǎng) 頁(yè)的貢獻(xiàn)積分。
[0037] 可選地,所述判斷子模塊,具體用于根據(jù)更新前后的各個(gè)網(wǎng)頁(yè)的貢獻(xiàn)積分,判斷各 個(gè)網(wǎng)頁(yè)的貢獻(xiàn)積分是否發(fā)生變化,如果發(fā)生變化,則確定不滿足預(yù)設(shè)的收斂條件;否則,確 定滿足預(yù)設(shè)的收斂條件;
[0038] 或者,
[0039] 獲取與更新前后的各個(gè)網(wǎng)頁(yè)的貢獻(xiàn)積分對(duì)應(yīng)的網(wǎng)頁(yè)排序結(jié)果,判斷所述網(wǎng)頁(yè)排序 結(jié)果是否發(fā)生變化,如果發(fā)生變化,則確定不滿足預(yù)設(shè)的收斂條件;否則,確定滿足預(yù)設(shè)的 收斂條件;
[0040] 或者,
[0041] 判斷各個(gè)網(wǎng)頁(yè)的貢獻(xiàn)積分的更新次數(shù)是否達(dá)到預(yù)設(shè)次數(shù),如果是,則確定滿足預(yù) 設(shè)的收斂條件;否則,確定不滿足預(yù)設(shè)的收斂條件。
[0042] 本發(fā)明通過(guò)MapReduce框架中的Map模塊和Reduce模塊,對(duì)文本文件中的數(shù)據(jù)記 錄進(jìn)行并行處理,并根據(jù)處理結(jié)果對(duì)各個(gè)網(wǎng)頁(yè)進(jìn)行排序,提升了排序的效率,且保證網(wǎng)頁(yè)排 序的準(zhǔn)確性。
【專利附圖】
【附圖說(shuō)明】
[0043] 圖1為本發(fā)明實(shí)施例中提出了一種基于MapReduce框架的網(wǎng)頁(yè)排序方法的流程 圖;
[0044] 圖2為本發(fā)明實(shí)施例中提出了一種基于MapReduce框架的網(wǎng)頁(yè)排序系統(tǒng)的結(jié)構(gòu)示 意圖。
【具體實(shí)施方式】
[0045] 下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完 整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;?本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他 實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0046] 需要說(shuō)明的是,如果不沖突,本發(fā)明實(shí)施例以及實(shí)施例中的各個(gè)特征可以相互結(jié) 合,均在本發(fā)明的保護(hù)范圍之內(nèi)。另外,雖然在流程圖中示出了邏輯順序,但是在某些情況 下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。
[0047] 本發(fā)明實(shí)施例中提出了一種基于MapReduce框架的網(wǎng)頁(yè)排序方法,應(yīng)用于Hadoop 集群中的MapReduce框架,該框架包括Map模塊和Reduce模塊,上述網(wǎng)頁(yè)排序方法,如圖1 所示,包括以下步驟:
[0048] 步驟101,Map模塊從文本文件中讀取與各個(gè)網(wǎng)頁(yè)對(duì)應(yīng)的數(shù)據(jù)記錄,根據(jù)讀取到的 數(shù)據(jù)記錄,生成并保存與各個(gè)網(wǎng)頁(yè)對(duì)應(yīng)的鏈接信息,并對(duì)與各個(gè)網(wǎng)頁(yè)對(duì)應(yīng)的積分信息進(jìn)行 初始化和保存。
[0049] 其中,文本文件中包含多條數(shù)據(jù)記錄,每條數(shù)據(jù)記錄與一個(gè)網(wǎng)頁(yè)一一對(duì)應(yīng),記錄有 該網(wǎng)頁(yè)的URL以及該網(wǎng)頁(yè)包含的正向鏈接的URL,S卩,指向其他網(wǎng)頁(yè)的鏈接的URL。與各個(gè) 網(wǎng)頁(yè)對(duì)應(yīng)的積分信息包含各個(gè)網(wǎng)頁(yè)的URL、各個(gè)網(wǎng)頁(yè)的貢獻(xiàn)積分以及各個(gè)網(wǎng)頁(yè)包含的正向 鏈接的URL,網(wǎng)頁(yè)的正向鏈接是指該網(wǎng)頁(yè)包含的、指向其他網(wǎng)頁(yè)的鏈接。
[0050] 相應(yīng)地,Map模塊可以將各個(gè)網(wǎng)頁(yè)的URL作為鍵(key),將各個(gè)網(wǎng)頁(yè)包含的正向鏈 接的URL作為值(value),生成與各個(gè)網(wǎng)頁(yè)對(duì)應(yīng)的第一鍵值對(duì)(key-value pair),將該第一 鍵值對(duì)作為鏈接信息存儲(chǔ)到本地文件系統(tǒng)中,以供Reduce模塊使用。
[0051] 此外,Map模塊可以對(duì)各個(gè)網(wǎng)頁(yè)的貢獻(xiàn)積分進(jìn)行初始化,并將各個(gè)網(wǎng)頁(yè)的URL作為 鍵,將各個(gè)網(wǎng)頁(yè)的貢獻(xiàn)積分以及各個(gè)網(wǎng)頁(yè)包含的正向鏈接的URL作為值,生成與各個(gè)網(wǎng)頁(yè) 對(duì)應(yīng)的第二鍵值對(duì),并將該第二鍵值對(duì)作為積分信息存儲(chǔ)到本地文件系統(tǒng)中,以供Reduce 模塊使用。
[0052] 本實(shí)施例中,Map模塊可以將各個(gè)網(wǎng)頁(yè)的貢獻(xiàn)積分均初始化為預(yù)設(shè)常數(shù)與文本文 件中包含的數(shù)據(jù)記錄的比值,優(yōu)選地,該預(yù)設(shè)常數(shù)為1。
[0053] 例如,文本文件為:
[0054] http://guoms. hehe. comhttp://nihao. xixi. com, http://www. xuexi. com
[0055] http://nihao. xixi. comhttp://www. xuexi. com
[0056] http://www. xuexi. comhttp://www. jintian. com
[0057] http://www. jintian. comhttp://nihao. xixi. com
[0058] 以上文件包含4條數(shù)據(jù)記錄,對(duì)應(yīng)的網(wǎng)頁(yè)URL為"http://guoms. hehe. com"、 "http://nihao. xixi. com,'、''http://www. xuexi. com,'和"http://www. jintian. com,',各個(gè) 網(wǎng)頁(yè)的貢獻(xiàn)積分均被初始化為1/4,即0. 25。
[0059] 其中,URL為"http://guoms. hehe. com"的網(wǎng)頁(yè)中包含的2個(gè)正向鏈接,該正向 鏈接的 URL 為 "http://nihao. xixi. com" 和 "http://www. xuexi. com" ;URL 為 "http:// nihao. xixi. com"的網(wǎng)頁(yè)中包含1個(gè)正向鏈接,該正向鏈接的URL為"http://www. xuexi. com" ;URL為"http://www. xuexi. com"的網(wǎng)頁(yè)中包含1個(gè)正向鏈接,該正向鏈接的URL為 "http://www. jintian. com";URL 為"http://www. jintian. com" 的網(wǎng)頁(yè)中包含 1 個(gè)正向鏈 接,該正向鏈接的 URL 為 "http://nihao. xixi. com"。
[0060] 相應(yīng)地,Map模塊生成的與各個(gè)網(wǎng)頁(yè)對(duì)應(yīng)的鏈接信息為:
[0061] <http://guoms. hehe. com, http://nihao. xixi. com-http://www. xuexi. com>
[0062] <http://nihao. xixi. com, http://www. xuexi. com>
[0063] <http://www. xuexi. com, http://www. jintian. com>
[0064] <http://www. jintian. com, http://nihao. xixi. com>
[0065] Map模塊生成的與各個(gè)網(wǎng)頁(yè)對(duì)應(yīng)的積分信息為:
[0066] <http://guoms. hehe. com, (0. 25, http://nihao. xixi. com-http://www. xuexi. com) >
[0067] <http://nihao. xixi. com, (0. 25, http://www. xuexi. com) >
[0068] <http://www. xuexi. com, (0. 25, http://www. jintian. com) >
[0069] http://www. jintian. com, (0. 25, http://nihao. xixi. com)
[0070] 步驟102, Map模塊根據(jù)與各個(gè)網(wǎng)頁(yè)對(duì)應(yīng)的積分信息,生成并保存與各個(gè)網(wǎng)頁(yè)對(duì)應(yīng) 的出度信息。
[0071] 其中,與各個(gè)網(wǎng)頁(yè)對(duì)應(yīng)的出度信息包含各個(gè)網(wǎng)頁(yè)的網(wǎng)頁(yè)ID以及各個(gè)網(wǎng)頁(yè)的貢獻(xiàn) 積分與出度數(shù)量的比值。
[0072] 具體地,Map模塊根據(jù)與各個(gè)網(wǎng)頁(yè)對(duì)應(yīng)的積分信息,獲取各個(gè)網(wǎng)頁(yè)的URL以及各個(gè) 網(wǎng)頁(yè)包含的正向鏈接的URL,進(jìn)而獲取各個(gè)網(wǎng)頁(yè)的網(wǎng)頁(yè)ID以及各個(gè)網(wǎng)頁(yè)的出度數(shù)量,即各 個(gè)網(wǎng)頁(yè)包含的正向鏈接的數(shù)量。Map模塊將各個(gè)網(wǎng)頁(yè)的網(wǎng)頁(yè)ID作為鍵,將各個(gè)網(wǎng)頁(yè)的貢獻(xiàn) 積分與出度數(shù)量的比值作為值,生成與各個(gè)網(wǎng)頁(yè)對(duì)應(yīng)的第三鍵值對(duì),并將該第三鍵值對(duì)作 為出度信息存儲(chǔ)到本地文件系統(tǒng)中,以供Reduce模塊使用。
[0073] 例如,URL 分別為 "http://guoms. hehe. com"、"http://nihao. xixi. com"、 "http://www. xuexi. com" 和 "http://www. jintian. com" 的網(wǎng)頁(yè)的網(wǎng)頁(yè) ID 分別為 A、B、C 和D,上述網(wǎng)頁(yè)的貢獻(xiàn)積分均為0. 25,出度數(shù)量分別為2、1、1和1,則Map模塊生成的與各個(gè) 網(wǎng)頁(yè)對(duì)應(yīng)的出度is息為:
[0074] 〈A,0.125〉
[0075] <Β,0·25>
[0076] <C,0. 25>
[0077] <D,0. 25>
[0078] 步驟103,Reduce模塊獲取與各個(gè)網(wǎng)頁(yè)對(duì)應(yīng)的鏈接信息和出度信息,根據(jù)與各個(gè) 網(wǎng)頁(yè)對(duì)應(yīng)的鏈接信息和出度信息,更新各個(gè)網(wǎng)頁(yè)的貢獻(xiàn)積分。
[0079] 具體地,Reduce模塊可以根據(jù)與各個(gè)網(wǎng)頁(yè)對(duì)應(yīng)的鏈接信息,確定各個(gè)網(wǎng)頁(yè)的反向 鏈接所在的網(wǎng)頁(yè),并根據(jù)確定出的網(wǎng)頁(yè)對(duì)應(yīng)的出度信息中包含的該網(wǎng)頁(yè)的貢獻(xiàn)積分與出度 數(shù)量的比值,計(jì)算各個(gè)網(wǎng)頁(yè)的貢獻(xiàn)積分,并將計(jì)算結(jié)果作為更新后的各個(gè)網(wǎng)頁(yè)的貢獻(xiàn)積分。 其中,網(wǎng)頁(yè)的反向鏈接為指向該網(wǎng)頁(yè)且包含在其他網(wǎng)頁(yè)中的鏈接。
[0080] 本實(shí)施例中,Reduce模塊可以根據(jù)各個(gè)網(wǎng)頁(yè)的反向鏈接所在的網(wǎng)頁(yè)的貢獻(xiàn)積分與 出度數(shù)量的比值,按照以下公式計(jì)算各個(gè)網(wǎng)頁(yè)的貢獻(xiàn)積分:
[0081] PR(A) = (l-d)+d(PR(T1)/C(T1)+. ,.+PR(Tn)/C(Tn))
[0082] 其中,PR㈧為網(wǎng)頁(yè)A的貢獻(xiàn)積分,PRC^/CCTiMi為整數(shù),且0彡i彡η)為網(wǎng)頁(yè) Α的反向鏈接所在的網(wǎng)頁(yè)的貢獻(xiàn)積分與出度數(shù)量的比值,d為阻尼系數(shù),且0 < d < 1。
[0083] 例如,d = 0. 5,URL為"http://nihao. xixi. com"的網(wǎng)頁(yè)的反向鏈接所在的網(wǎng)頁(yè)有 2 個(gè),即 URL 分別為"http://guoms. hehe. com"和"http://www. jintian. com"的網(wǎng)頁(yè),且上 述2個(gè)網(wǎng)頁(yè)的貢獻(xiàn)積分與出度數(shù)量的比值分別為0. 125和0. 25,則URL為"http://nihao. xixi. com"的網(wǎng)頁(yè)的貢獻(xiàn)積分為:
[0084] (1-0. 5)+0. 5(0. 125+0. 25) = 0. 6875
[0085] 步驟104, Reduce模塊判斷是否滿足預(yù)設(shè)的收斂條件,如果是,則執(zhí)行步驟106 ;否 貝1J,返回步驟105。
[0086] 具體地,Reduce模塊可以根據(jù)更新前后的各個(gè)網(wǎng)頁(yè)的貢獻(xiàn)積分,判斷各個(gè)網(wǎng)頁(yè)的 貢獻(xiàn)積分是否發(fā)生變化,如果發(fā)生變化,則確定不滿足預(yù)設(shè)的收斂條件;否則,確定滿足預(yù) 設(shè)的收斂條件。
[0087] 另外,Reduce模塊還可以獲取與更新前后的各個(gè)網(wǎng)頁(yè)的貢獻(xiàn)積分對(duì)應(yīng)的網(wǎng)頁(yè)排序 結(jié)果,判斷網(wǎng)頁(yè)排序結(jié)果是否發(fā)生變化,如果發(fā)生變化,則確定不滿足預(yù)設(shè)的收斂條件;否 貝1J,確定滿足預(yù)設(shè)的收斂條件。
[0088] 此外,Reduce模塊還可以判斷各個(gè)網(wǎng)頁(yè)的貢獻(xiàn)積分的更新次數(shù)是否達(dá)到預(yù)設(shè)次 數(shù),如果是,則確定滿足預(yù)設(shè)的收斂條件;否則,確定不滿足預(yù)設(shè)的收斂條件。
[0089] 步驟105, Reduce模塊根據(jù)更新后的各個(gè)網(wǎng)頁(yè)的貢獻(xiàn)積分,對(duì)與各個(gè)網(wǎng)頁(yè)對(duì)應(yīng)的 積分信息進(jìn)行更新和保存,并返回步驟102。
[0090] 具體地,Reduce模塊可以根據(jù)更新后的各個(gè)網(wǎng)頁(yè)的貢獻(xiàn)積分,對(duì)與各個(gè)網(wǎng)頁(yè)對(duì)應(yīng) 的積分信息所包含的各個(gè)網(wǎng)頁(yè)的貢獻(xiàn)積分進(jìn)行更新,得到更新后的各個(gè)網(wǎng)頁(yè)對(duì)應(yīng)的積分信 肩、。
[0091] 例如,URL為"http://nihao. xixi. com"的網(wǎng)頁(yè)的貢獻(xiàn)積分被更新為0. 6875,則該 網(wǎng)頁(yè)對(duì)應(yīng)的積分信息被更新為:
[0092] <http://nihao. xixi. com, (0. 6875, http://www. xuexi. com) >
[0093] 步驟106, Reduce模塊將與更新后的各個(gè)網(wǎng)頁(yè)的貢獻(xiàn)積分對(duì)應(yīng)的網(wǎng)頁(yè)排序結(jié)果輸 出。
[0094] 本發(fā)明實(shí)施例通過(guò)MapReduce框架中的Map模塊和Reduce模塊,對(duì)文本文件中的 數(shù)據(jù)記錄進(jìn)行并行處理,并根據(jù)處理結(jié)果對(duì)各個(gè)網(wǎng)頁(yè)進(jìn)行排序,提升了排序的效率,且保證 網(wǎng)頁(yè)排序的準(zhǔn)確性。
[0095] 需要說(shuō)明的是,本發(fā)明實(shí)施例可將文本文件劃分為多個(gè)子文件,相應(yīng)地,Map模塊 中設(shè)置有多個(gè)Map任務(wù),Map任務(wù)的數(shù)量與子文件的數(shù)量相同,且子文件與Map任務(wù)一一對(duì) 應(yīng)。每個(gè)Map任務(wù)從對(duì)應(yīng)的子文件中讀取數(shù)據(jù)記錄,將讀取到的數(shù)據(jù)記錄中包含的各個(gè)網(wǎng) 頁(yè)的URL作為鍵,將各個(gè)網(wǎng)頁(yè)包含的正向鏈接的URL作為值,生成與各個(gè)網(wǎng)頁(yè)對(duì)應(yīng)的第一鍵 值對(duì),將該鍵值對(duì)作為鏈接信息存儲(chǔ)到本地文件系統(tǒng)中,以供Reduce模塊使用。
[0096] 此外,每個(gè)Map任務(wù)還對(duì)上述各個(gè)網(wǎng)頁(yè)的貢獻(xiàn)積分進(jìn)行初始化,將各個(gè)網(wǎng)頁(yè)的 URL作為鍵,將各個(gè)網(wǎng)頁(yè)的貢獻(xiàn)積分以及各個(gè)網(wǎng)頁(yè)包含的正向鏈接的URL作為值,生成與 各個(gè)網(wǎng)頁(yè)對(duì)應(yīng)的第二鍵值對(duì),將該第二鍵值對(duì)作為積分信息存儲(chǔ)到本地文件系統(tǒng)中,以供 Reduce模塊使用,并根據(jù)與各個(gè)網(wǎng)頁(yè)對(duì)應(yīng)的積分信息,獲取各個(gè)網(wǎng)頁(yè)的URL以及各個(gè)網(wǎng)頁(yè) 包含的正向鏈接的URL,進(jìn)而獲取各個(gè)網(wǎng)頁(yè)的網(wǎng)頁(yè)ID以及各個(gè)網(wǎng)頁(yè)的出度數(shù)量,將各個(gè)網(wǎng) 頁(yè)的網(wǎng)頁(yè)ID作為鍵,將各個(gè)網(wǎng)頁(yè)的貢獻(xiàn)積分與出度數(shù)量的比值作為值,生成與各個(gè)網(wǎng)頁(yè)對(duì) 應(yīng)的第三鍵值對(duì),并將該第三鍵值對(duì)作為出度信息存儲(chǔ)到本地文件系統(tǒng)中,以供Reduce模 塊使用。
[0097] 通過(guò)在Map模塊中設(shè)置多個(gè)Map任務(wù)來(lái)處理文本文件中的數(shù)據(jù)記錄,能夠提高數(shù) 據(jù)記錄的處理效率,提升工作性能。
[0098] 進(jìn)一步地,本發(fā)明實(shí)施例可將Map模塊生成的與各個(gè)網(wǎng)頁(yè)對(duì)應(yīng)的鏈接信息和出度 信息劃分為與多個(gè)網(wǎng)頁(yè)集合對(duì)應(yīng)的鏈接信息和出度信息,相應(yīng)地,Reduce模塊中設(shè)置有多 個(gè)Reduce任務(wù),Reduce任務(wù)的數(shù)量與網(wǎng)頁(yè)集合的數(shù)量相同,且子文件與Reduce任務(wù)-- 對(duì)應(yīng)。每個(gè)Reduce任務(wù)根據(jù)各自對(duì)應(yīng)的網(wǎng)頁(yè)集合中的各個(gè)網(wǎng)頁(yè)對(duì)應(yīng)的鏈接信息,確定各個(gè) 網(wǎng)頁(yè)的反向鏈接所在的網(wǎng)頁(yè),并根據(jù)確定出的網(wǎng)頁(yè)對(duì)應(yīng)的出度信息中包含的該網(wǎng)頁(yè)的貢獻(xiàn) 積分與出度數(shù)量的比值,計(jì)算各個(gè)網(wǎng)頁(yè)的貢獻(xiàn)積分,并將計(jì)算結(jié)果作為更新后的各個(gè)網(wǎng)頁(yè) 的貢獻(xiàn)積分。
[0099] 通過(guò)在Reduce模塊中設(shè)置多個(gè)Reduce任務(wù)來(lái)更新各個(gè)網(wǎng)頁(yè)的貢獻(xiàn)積分,能夠提 高更新效率,提升工作性能。
[0100] 基于上述網(wǎng)頁(yè)排序方法,本發(fā)明實(shí)施例還提供了一種基于MapReduce框架的網(wǎng)頁(yè) 排序系統(tǒng),如圖2所示,包括Map模塊210和Reduce模塊220。
[0101] 其中,Map模塊210包括:
[0102] 第一生成子模塊211,用于從文本文件中讀取與各個(gè)網(wǎng)頁(yè)對(duì)應(yīng)的數(shù)據(jù)記錄,根據(jù)讀 取到的數(shù)據(jù)記錄,生成并保存與各個(gè)網(wǎng)頁(yè)對(duì)應(yīng)的鏈接信息,并對(duì)與各個(gè)網(wǎng)頁(yè)對(duì)應(yīng)的積分信 息進(jìn)行初始化和保存。
[0103] 具體地,上述第一生成子模塊211,具體用于將各個(gè)網(wǎng)頁(yè)的URL作為鍵,將各個(gè)網(wǎng) 頁(yè)包含的正向鏈接的URL作為值,生成與各個(gè)網(wǎng)頁(yè)對(duì)應(yīng)的第一鍵值對(duì),將所述第一鍵值對(duì) 作為鏈接信息存儲(chǔ)到本地文件系統(tǒng)中;對(duì)各個(gè)網(wǎng)頁(yè)的貢獻(xiàn)積分進(jìn)行初始化,并將各個(gè)網(wǎng)頁(yè) 的URL作為鍵,將各個(gè)網(wǎng)頁(yè)的貢獻(xiàn)積分以及各個(gè)網(wǎng)頁(yè)包含的正向鏈接的URL作為值,生成與 各個(gè)網(wǎng)頁(yè)對(duì)應(yīng)的第二鍵值對(duì),并將所述第二鍵值對(duì)作為積分信息存儲(chǔ)到本地文件系統(tǒng)中。
[0104] 第二生成子模塊212,用于根據(jù)與各個(gè)網(wǎng)頁(yè)對(duì)應(yīng)的積分信息,生成并保存與各個(gè)網(wǎng) 頁(yè)對(duì)應(yīng)的出度信息。
[0105] 具體地,上述第二生成子模塊212,具體用于根據(jù)與各個(gè)網(wǎng)頁(yè)對(duì)應(yīng)的積分信息,獲 取各個(gè)網(wǎng)頁(yè)的URL以及各個(gè)網(wǎng)頁(yè)包含的正向鏈接的URL,獲取各個(gè)網(wǎng)頁(yè)的網(wǎng)頁(yè)ID以及各個(gè) 網(wǎng)頁(yè)的出度數(shù)量,將各個(gè)網(wǎng)頁(yè)的網(wǎng)頁(yè)ID作為鍵,將各個(gè)網(wǎng)頁(yè)的貢獻(xiàn)積分與出度數(shù)量的比值 作為值,生成與各個(gè)網(wǎng)頁(yè)對(duì)應(yīng)的第三鍵值對(duì),并將所述第三鍵值對(duì)作為出度信息存儲(chǔ)到本 地文件系統(tǒng)中。
[0106] 其中,與各個(gè)網(wǎng)頁(yè)對(duì)應(yīng)的積分信息可以是第一生成子模塊211生成的積分信息, 也可以是第二更新子模塊223更新后的積分信息。
[0107] Reduce 模塊 220 包括:
[0108] 第一更新子模塊221,用于獲取與各個(gè)網(wǎng)頁(yè)對(duì)應(yīng)的鏈接信息和出度信息,根據(jù)與各 個(gè)網(wǎng)頁(yè)對(duì)應(yīng)的鏈接信息和出度信息,更新各個(gè)網(wǎng)頁(yè)的貢獻(xiàn)積分。
[0109] 具體地,上述第一更新子模塊221,具體用于根據(jù)與各個(gè)網(wǎng)頁(yè)對(duì)應(yīng)的鏈接信息,確 定各個(gè)網(wǎng)頁(yè)的反向鏈接所在的網(wǎng)頁(yè),并根據(jù)確定出的網(wǎng)頁(yè)對(duì)應(yīng)的出度信息中包含的該網(wǎng)頁(yè) 的貢獻(xiàn)積分與出度數(shù)量的比值,計(jì)算各個(gè)網(wǎng)頁(yè)的貢獻(xiàn)積分,并將計(jì)算結(jié)果作為更新后的各 個(gè)網(wǎng)頁(yè)的貢獻(xiàn)積分。
[0110] 判斷子模塊222,用于判斷是否滿足預(yù)設(shè)的收斂條件。
[0111] 具體地,上述判斷子模塊222,具體用于根據(jù)第一更新子模塊221更新前后的各個(gè) 網(wǎng)頁(yè)的貢獻(xiàn)積分,判斷各個(gè)網(wǎng)頁(yè)的貢獻(xiàn)積分是否發(fā)生變化,如果發(fā)生變化,則確定不滿足預(yù) 設(shè)的收斂條件;否則,確定滿足預(yù)設(shè)的收斂條件;
[0112] 或者,
[0113] 獲取與第一更新子模塊221更新前后的各個(gè)網(wǎng)頁(yè)的貢獻(xiàn)積分對(duì)應(yīng)的網(wǎng)頁(yè)排序結(jié) 果,判斷所述網(wǎng)頁(yè)排序結(jié)果是否發(fā)生變化,如果發(fā)生變化,則確定不滿足預(yù)設(shè)的收斂條件; 否則,確定滿足預(yù)設(shè)的收斂條件;
[0114] 或者,
[0115] 判斷各個(gè)網(wǎng)頁(yè)的貢獻(xiàn)積分的更新次數(shù)是否達(dá)到預(yù)設(shè)次數(shù),如果是,則確定滿足預(yù) 設(shè)的收斂條件;否則,確定不滿足預(yù)設(shè)的收斂條件。
[0116] 第二更新子模塊223,用于在判斷子模塊222判斷出不滿足預(yù)設(shè)的收斂條件時(shí),根 據(jù)第一更新子模塊221更新后的各個(gè)網(wǎng)頁(yè)的貢獻(xiàn)積分,對(duì)與各個(gè)網(wǎng)頁(yè)對(duì)應(yīng)的積分信息進(jìn)行 更新和保存,并觸發(fā)第二生成子模塊212 ;
[0117] 輸出子模塊224,用于在判斷子模塊222判斷出滿足預(yù)設(shè)的收斂條件時(shí),將與第一 更新子模塊221更新后的各個(gè)網(wǎng)頁(yè)的貢獻(xiàn)積分對(duì)應(yīng)的網(wǎng)頁(yè)排序結(jié)果輸出。
[0118] 本發(fā)明實(shí)施例通過(guò)MapReduce框架中的Map模塊和Reduce模塊,對(duì)文本文件中的 數(shù)據(jù)記錄進(jìn)行并行處理,并根據(jù)處理結(jié)果對(duì)各個(gè)網(wǎng)頁(yè)進(jìn)行排序,提升了排序的效率,且保證 網(wǎng)頁(yè)排序的準(zhǔn)確性。
[0119] 結(jié)合本文中所公開(kāi)的實(shí)施例描述的方法中的步驟可以直接用硬件、處理器執(zhí)行的 軟件模塊,或者二者的結(jié)合來(lái)實(shí)施。軟件模塊可以置于隨機(jī)存儲(chǔ)器(RAM)、內(nèi)存、只讀存儲(chǔ)器 (ROM)、電可編程ROM、電可擦除可編程ROM、寄存器、硬盤(pán)、可移動(dòng)磁盤(pán)、CD-ROM、或【技術(shù)領(lǐng)域】 內(nèi)所公知的任意其它形式的存儲(chǔ)介質(zhì)中。
[0120] 以上所述,僅為本發(fā)明的【具體實(shí)施方式】,但本發(fā)明的保護(hù)范圍并不局限于此,任何 熟悉本【技術(shù)領(lǐng)域】的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵 蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)所述以權(quán)利要求的保護(hù)范圍為準(zhǔn)。
【權(quán)利要求】
1. 一種基于MapReduce框架的網(wǎng)頁(yè)排序方法,其特征在于,應(yīng)用于Hadoop集群中的 MapReduce框架,所述MapReduce框架包括Map模塊和Reduce模塊,所述方法包括以下步 驟: 51、 所述Map模塊從文本文件中讀取與各個(gè)網(wǎng)頁(yè)對(duì)應(yīng)的數(shù)據(jù)記錄,根據(jù)讀取到的數(shù)據(jù) 記錄,生成并保存與各個(gè)網(wǎng)頁(yè)對(duì)應(yīng)的鏈接信息,并對(duì)與各個(gè)網(wǎng)頁(yè)對(duì)應(yīng)的積分信息進(jìn)行初始 化和保存; 52、 所述Map模塊根據(jù)與各個(gè)網(wǎng)頁(yè)對(duì)應(yīng)的積分信息,生成并保存與各個(gè)網(wǎng)頁(yè)對(duì)應(yīng)的出 度息; 53、 所述Reduce模塊獲取與各個(gè)網(wǎng)頁(yè)對(duì)應(yīng)的鏈接信息和出度信息,根據(jù)與各個(gè)網(wǎng)頁(yè)對(duì) 應(yīng)的鏈接信息和出度信息,更新各個(gè)網(wǎng)頁(yè)的貢獻(xiàn)積分; 54、 所述Reduce模塊判斷是否滿足預(yù)設(shè)的收斂條件,如果是,則執(zhí)行步驟S6 ;否則,返 回步驟S5 ; 55、 所述Reduce模塊根據(jù)更新后的各個(gè)網(wǎng)頁(yè)的貢獻(xiàn)積分,對(duì)與各個(gè)網(wǎng)頁(yè)對(duì)應(yīng)的積分信 息進(jìn)行更新和保存,并返回步驟S2 ; 56、 所述Reduce模塊將與更新后的各個(gè)網(wǎng)頁(yè)的貢獻(xiàn)積分對(duì)應(yīng)的網(wǎng)頁(yè)排序結(jié)果輸出。
2. 如權(quán)利要求1所述的方法,其特征在于,所述步驟S1,具體為: 所述Map模塊將各個(gè)網(wǎng)頁(yè)的URL作為鍵,將各個(gè)網(wǎng)頁(yè)包含的正向鏈接的URL作為值, 生成與各個(gè)網(wǎng)頁(yè)對(duì)應(yīng)的第一鍵值對(duì),將所述第一鍵值對(duì)作為鏈接信息存儲(chǔ)到本地文件系統(tǒng) 中;對(duì)各個(gè)網(wǎng)頁(yè)的貢獻(xiàn)積分進(jìn)行初始化,并將各個(gè)網(wǎng)頁(yè)的URL作為鍵,將各個(gè)網(wǎng)頁(yè)的貢獻(xiàn)積 分以及各個(gè)網(wǎng)頁(yè)包含的正向鏈接的URL作為值,生成與各個(gè)網(wǎng)頁(yè)對(duì)應(yīng)的第二鍵值對(duì),并將 所述第二鍵值對(duì)作為積分信息存儲(chǔ)到本地文件系統(tǒng)中。
3. 如權(quán)利要求1所述的方法,其特征在于,所述步驟S2,具體為: 所述Map模塊根據(jù)與各個(gè)網(wǎng)頁(yè)對(duì)應(yīng)的積分信息,獲取各個(gè)網(wǎng)頁(yè)的URL以及各個(gè)網(wǎng)頁(yè)包 含的正向鏈接的URL,獲取各個(gè)網(wǎng)頁(yè)的網(wǎng)頁(yè)ID以及各個(gè)網(wǎng)頁(yè)的出度數(shù)量,將各個(gè)網(wǎng)頁(yè)的網(wǎng) 頁(yè)ID作為鍵,將各個(gè)網(wǎng)頁(yè)的貢獻(xiàn)積分與出度數(shù)量的比值作為值,生成與各個(gè)網(wǎng)頁(yè)對(duì)應(yīng)的第 三鍵值對(duì),并將所述第三鍵值對(duì)作為出度信息存儲(chǔ)到本地文件系統(tǒng)中。
4. 如權(quán)利要求1所述的方法,其特征在于,所述步驟S3,具體為: 所述Reduce模塊根據(jù)與各個(gè)網(wǎng)頁(yè)對(duì)應(yīng)的鏈接信息,確定各個(gè)網(wǎng)頁(yè)的反向鏈接所在的 網(wǎng)頁(yè),并根據(jù)確定出的網(wǎng)頁(yè)對(duì)應(yīng)的出度信息中包含的該網(wǎng)頁(yè)的貢獻(xiàn)積分與出度數(shù)量的比 值,計(jì)算各個(gè)網(wǎng)頁(yè)的貢獻(xiàn)積分,并將計(jì)算結(jié)果作為更新后的各個(gè)網(wǎng)頁(yè)的貢獻(xiàn)積分。
5. 如權(quán)利要求1所述的方法,其特征在于,所述Reduce模塊判斷是否滿足預(yù)設(shè)的收斂 條件,具體為: 所述Reduce模塊根據(jù)更新前后的各個(gè)網(wǎng)頁(yè)的貢獻(xiàn)積分,判斷各個(gè)網(wǎng)頁(yè)的貢獻(xiàn)積分是 否發(fā)生變化,如果發(fā)生變化,則確定不滿足預(yù)設(shè)的收斂條件;否則,確定滿足預(yù)設(shè)的收斂條 件; 或者, 所述Reduce模塊獲取與更新前后的各個(gè)網(wǎng)頁(yè)的貢獻(xiàn)積分對(duì)應(yīng)的網(wǎng)頁(yè)排序結(jié)果,判斷 所述網(wǎng)頁(yè)排序結(jié)果是否發(fā)生變化,如果發(fā)生變化,則確定不滿足預(yù)設(shè)的收斂條件;否則,確 定滿足預(yù)設(shè)的收斂條件; 或者, 所述Reduce模塊判斷各個(gè)網(wǎng)頁(yè)的貢獻(xiàn)積分的更新次數(shù)是否達(dá)到預(yù)設(shè)次數(shù),如果是,則 確定滿足預(yù)設(shè)的收斂條件;否則,確定不滿足預(yù)設(shè)的收斂條件。
6. 一種基于MapReduce框架的網(wǎng)頁(yè)排序系統(tǒng),其特征在于,包括Map模塊和Reduce模 塊; 所述Map模塊包括: 第一生成子模塊,用于從文本文件中讀取與各個(gè)網(wǎng)頁(yè)對(duì)應(yīng)的數(shù)據(jù)記錄,根據(jù)讀取到的 數(shù)據(jù)記錄,生成并保存與各個(gè)網(wǎng)頁(yè)對(duì)應(yīng)的鏈接信息,并對(duì)與各個(gè)網(wǎng)頁(yè)對(duì)應(yīng)的積分信息進(jìn)行 初始化和保存; 第二生成子模塊,用于根據(jù)與各個(gè)網(wǎng)頁(yè)對(duì)應(yīng)的積分信息,生成并保存與各個(gè)網(wǎng)頁(yè)對(duì)應(yīng) 的出度信息; 所述Reduce模塊包括: 第一更新子模塊,用于獲取與各個(gè)網(wǎng)頁(yè)對(duì)應(yīng)的鏈接信息和出度信息,根據(jù)與各個(gè)網(wǎng)頁(yè) 對(duì)應(yīng)的鏈接信息和出度信息,更新各個(gè)網(wǎng)頁(yè)的貢獻(xiàn)積分; 判斷子模塊,用于判斷是否滿足預(yù)設(shè)的收斂條件; 第二更新子模塊,用于在所述判斷子模塊判斷出不滿足預(yù)設(shè)的收斂條件時(shí),根據(jù)所述 第一更新子模塊更新后的各個(gè)網(wǎng)頁(yè)的貢獻(xiàn)積分,對(duì)與各個(gè)網(wǎng)頁(yè)對(duì)應(yīng)的積分信息進(jìn)行更新和 保存,并觸發(fā)所述第二生成子模塊; 輸出子模塊,用于在所述判斷子模塊判斷出滿足預(yù)設(shè)的收斂條件時(shí),將與更新后的各 個(gè)網(wǎng)頁(yè)的貢獻(xiàn)積分對(duì)應(yīng)的網(wǎng)頁(yè)排序結(jié)果輸出。
7. 如權(quán)利要求6所述的系統(tǒng),其特征在于, 所述第一生成子模塊,具體用于將各個(gè)網(wǎng)頁(yè)的URL作為鍵,將各個(gè)網(wǎng)頁(yè)包含的正向鏈 接的URL作為值,生成與各個(gè)網(wǎng)頁(yè)對(duì)應(yīng)的第一鍵值對(duì),將所述第一鍵值對(duì)作為鏈接信息存 儲(chǔ)到本地文件系統(tǒng)中;對(duì)各個(gè)網(wǎng)頁(yè)的貢獻(xiàn)積分進(jìn)行初始化,并將各個(gè)網(wǎng)頁(yè)的URL作為鍵,將 各個(gè)網(wǎng)頁(yè)的貢獻(xiàn)積分以及各個(gè)網(wǎng)頁(yè)包含的正向鏈接的URL作為值,生成與各個(gè)網(wǎng)頁(yè)對(duì)應(yīng)的 第二鍵值對(duì),并將所述第二鍵值對(duì)作為積分信息存儲(chǔ)到本地文件系統(tǒng)中。
8. 如權(quán)利要求6所述的系統(tǒng),其特征在于, 所述第二生成子模塊,具體用于根據(jù)與各個(gè)網(wǎng)頁(yè)對(duì)應(yīng)的積分信息,獲取各個(gè)網(wǎng)頁(yè)的URL 以及各個(gè)網(wǎng)頁(yè)包含的正向鏈接的URL,獲取各個(gè)網(wǎng)頁(yè)的網(wǎng)頁(yè)ID以及各個(gè)網(wǎng)頁(yè)的出度數(shù)量, 將各個(gè)網(wǎng)頁(yè)的網(wǎng)頁(yè)ID作為鍵,將各個(gè)網(wǎng)頁(yè)的貢獻(xiàn)積分與出度數(shù)量的比值作為值,生成與各 個(gè)網(wǎng)頁(yè)對(duì)應(yīng)的第三鍵值對(duì),并將所述第三鍵值對(duì)作為出度信息存儲(chǔ)到本地文件系統(tǒng)中。
9. 如權(quán)利要求6所述的系統(tǒng),其特征在于, 所述第一更新子模塊,具體用于根據(jù)與各個(gè)網(wǎng)頁(yè)對(duì)應(yīng)的鏈接信息,確定各個(gè)網(wǎng)頁(yè)的反 向鏈接所在的網(wǎng)頁(yè),并根據(jù)確定出的網(wǎng)頁(yè)對(duì)應(yīng)的出度信息中包含的該網(wǎng)頁(yè)的貢獻(xiàn)積分與出 度數(shù)量的比值,計(jì)算各個(gè)網(wǎng)頁(yè)的貢獻(xiàn)積分,并將計(jì)算結(jié)果作為更新后的各個(gè)網(wǎng)頁(yè)的貢獻(xiàn)積 分。
10. 如權(quán)利要求6所述的系統(tǒng),其特征在于, 所述判斷子模塊,具體用于根據(jù)更新前后的各個(gè)網(wǎng)頁(yè)的貢獻(xiàn)積分,判斷各個(gè)網(wǎng)頁(yè)的貢 獻(xiàn)積分是否發(fā)生變化,如果發(fā)生變化,則確定不滿足預(yù)設(shè)的收斂條件;否則,確定滿足預(yù)設(shè) 的收斂條件; 或者, 獲取與更新前后的各個(gè)網(wǎng)頁(yè)的貢獻(xiàn)積分對(duì)應(yīng)的網(wǎng)頁(yè)排序結(jié)果,判斷所述網(wǎng)頁(yè)排序結(jié)果 是否發(fā)生變化,如果發(fā)生變化,則確定不滿足預(yù)設(shè)的收斂條件;否則,確定滿足預(yù)設(shè)的收斂 條件; 或者, 判斷各個(gè)網(wǎng)頁(yè)的貢獻(xiàn)積分的更新次數(shù)是否達(dá)到預(yù)設(shè)次數(shù),如果是,則確定滿足預(yù)設(shè)的 收斂條件;否則,確定不滿足預(yù)設(shè)的收斂條件。
【文檔編號(hào)】G06F17/30GK104156457SQ201410409929
【公開(kāi)日】2014年11月19日 申請(qǐng)日期:2014年8月19日 優(yōu)先權(quán)日:2014年8月19日
【發(fā)明者】宗棟瑞, 郭美思, 吳楠 申請(qǐng)人:浪潮(北京)電子信息產(chǎn)業(yè)有限公司