999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于云計(jì)算的分布式企業(yè)搜索引擎研究

2009-04-29 00:00:00林樂(lè)然,陳德龍
電腦知識(shí)與技術(shù) 2009年33期

摘要:當(dāng)前企業(yè)搜索引擎多采用基于全文檢索技術(shù)設(shè)計(jì),隨著索引的膨脹和客戶(hù)端并發(fā)查詢(xún)的增加,有限的物理存儲(chǔ)、CPU周期、內(nèi)存容量和網(wǎng)絡(luò)帶寬帶來(lái)了巨大瓶頸。隨著云計(jì)算概念的提出和發(fā)展,為企業(yè)搜索引擎提供了更加優(yōu)化的解決方案。本文將簡(jiǎn)要介紹現(xiàn)階段基于分布式存儲(chǔ)和分布式計(jì)算的云計(jì)算研究成果,以及其在企業(yè)搜索引擎中的應(yīng)用。

關(guān)鍵詞:云計(jì)算;分布式存儲(chǔ);分布式文件系統(tǒng);分布式計(jì)算;企業(yè)搜索引擎;全文檢索

中圖分類(lèi)號(hào):TP311文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2009)33-9429-02

The Research of Distributed Search Engine Base on Cloud Computing

LIN Le-ran,CHEN De-long

(Fujian Fujitsu Communication Software Co., Ltd. Fuzhou 350013, China)

Abstract: At present, most of the Enterprise Search Engine is based on information retrieval technology. However, with the expansion of index and the increase of client concurrent queries, the limited physical storage, CPU cycles, memory capacity and network bandwidth have become a huge bottleneck. With the proposal of the concept of Cloud Computing and development, it provides a more optimized solution for Enterprise Search Engine. It will introduce the research result of Cloud Computing based on Distributed Storage and Distributed Computing, as well as how to apply it in the Enterprise Search Engine in this article.

Key words: cloud computing; distributed storage; distributed file system; distributed computing; enterprise search engine; information retrieval

1 云計(jì)算概述

1.1 什么是云計(jì)算

云計(jì)算是一種動(dòng)態(tài)的易擴(kuò)展的且通常是通過(guò)互聯(lián)網(wǎng)提供虛擬化的資源計(jì)算方式,用戶(hù)不需要了解云內(nèi)部的細(xì)節(jié),也不必具有云內(nèi)部的專(zhuān)業(yè)知識(shí),或直接控制基礎(chǔ)設(shè)施。云計(jì)算包括架構(gòu)即服務(wù)(IaaS),平臺(tái)即服務(wù)(PaaS)和軟件即服務(wù)(SaaS)以及其他依賴(lài)于互聯(lián)網(wǎng)滿(mǎn)足客戶(hù)計(jì)算需求的技術(shù)趨勢(shì)。云計(jì)算服務(wù)通常提供通用的通過(guò)瀏覽器訪問(wèn)的在線商業(yè)應(yīng)用,軟件和數(shù)據(jù)存儲(chǔ)在服務(wù)器上。

1.1.1 現(xiàn)有云計(jì)算服務(wù)

現(xiàn)有云計(jì)算服務(wù)可分為兩類(lèi):

虛擬化技術(shù)。通過(guò)對(duì)硬件的虛擬化,最大程度上利用CPU資源和內(nèi)存,通過(guò)出售虛擬機(jī)和計(jì)算能力獲得商業(yè)利益。例如Amazon EC2提供的彈性計(jì)算云服務(wù)和Amazon S3提供的存儲(chǔ)服務(wù)。

打包的計(jì)算方案。通過(guò)提供分布式存儲(chǔ)和分布式計(jì)算服務(wù),最大程度上利用集群中的計(jì)算節(jié)點(diǎn),提供分布式并行計(jì)算能力。例如Google App Engine。

1.1.2 現(xiàn)有云計(jì)算分類(lèi)

從產(chǎn)業(yè)類(lèi)型對(duì)云計(jì)算進(jìn)行分類(lèi),主要有這三類(lèi):

SaaS:Software as a Service 軟件即服務(wù),通過(guò)Internet提供軟件的模式,用戶(hù)向提供商租用基于Web的軟件來(lái)管理企業(yè)經(jīng)營(yíng)活動(dòng),且無(wú)需對(duì)軟件進(jìn)行維護(hù),服務(wù)提供商會(huì)全權(quán)管理和維護(hù)軟件。例如Google Docs,Salesforce.com。

PaaS:Platform as a Service平臺(tái)即服務(wù),提供分布式存儲(chǔ)和分布式計(jì)算平臺(tái)給系統(tǒng)管理員和開(kāi)發(fā)人員,以為其構(gòu)建、測(cè)試及部署定制應(yīng)用程序。例如Google App Engine,AWS S3(Amazon Web Services Simple Storage Service) Amazon存儲(chǔ)服務(wù),Microsoft Azure。

IaaS:Infrastructure as a Service架構(gòu)即服務(wù),提供了核心計(jì)算資源和網(wǎng)絡(luò)架構(gòu)等基礎(chǔ)設(shè)施的服務(wù)。例如,AWS EC2(Amazon Web Service Elastic Compute Cloud) Amazon彈性計(jì)算云。

1.2 從分布式基礎(chǔ)架構(gòu)理解云

分布式基礎(chǔ)架構(gòu)起源于Google,基于Google的分布式基礎(chǔ)架構(gòu)的理論,可以將云計(jì)算理解為提供了分布式文件系統(tǒng)和分布式計(jì)算的運(yùn)行環(huán)境,用戶(hù)可以通過(guò)編程,設(shè)計(jì)可分布式并行計(jì)算的程序,其計(jì)算數(shù)據(jù)來(lái)源和結(jié)果都存儲(chǔ)于分布式文件系統(tǒng)中。

1.2.1 分布式文件系統(tǒng)

分布式文件系統(tǒng)Distributed File System(DFS)采用主從架構(gòu),一個(gè)分布式文件系統(tǒng)由唯一一個(gè)目錄節(jié)點(diǎn)NameNode(主節(jié)點(diǎn)),和多個(gè)數(shù)據(jù)節(jié)點(diǎn)DataNode(子節(jié)點(diǎn))組成。分布式文件系統(tǒng)對(duì)外表現(xiàn)為一個(gè)普通的文件系統(tǒng),用戶(hù)可以用文件名去存取文件,而實(shí)際上這個(gè)文件是被分成不同的數(shù)據(jù)塊,這些數(shù)據(jù)塊就是存儲(chǔ)在數(shù)據(jù)節(jié)點(diǎn)上面。

一個(gè)典型的分布式文件系統(tǒng)集群部署,是由一臺(tái)性能較好的機(jī)器運(yùn)行目錄節(jié)點(diǎn),而集群里的其他機(jī)器每臺(tái)上運(yùn)行一個(gè)數(shù)據(jù)節(jié)點(diǎn)。唯一的目錄節(jié)點(diǎn)的設(shè)計(jì)大大簡(jiǎn)化了整個(gè)體系結(jié)果,目錄節(jié)點(diǎn)負(fù)責(zé)分布式文件系統(tǒng)里面所有元數(shù)據(jù)的仲裁和存儲(chǔ),這樣的設(shè)計(jì)是數(shù)據(jù)不會(huì)脫離目錄節(jié)點(diǎn)的控制。

1.2.2 分布式計(jì)算

MapReduce源于函數(shù)式編程模型中的兩項(xiàng)核心操作:Map和Reduce。Map是把一組數(shù)據(jù)一對(duì)一的映射為另外的一組數(shù)據(jù),其映射的規(guī)則由一個(gè)Map函數(shù)來(lái)指定。Reduce是對(duì)一組數(shù)據(jù)進(jìn)行歸約,這個(gè)歸約的規(guī)則由一個(gè)Reduce函數(shù)指定。Map是一個(gè)把數(shù)據(jù)分開(kāi)的過(guò)程,Reduce則是把分開(kāi)的數(shù)據(jù)合并的過(guò)程。

面對(duì)復(fù)雜計(jì)算,采用分而治之的策略,即Divide/Conquer,通過(guò)把復(fù)雜計(jì)算切分,使這些切分后的映射(Map)運(yùn)算高度平行,再將Map后的結(jié)果根據(jù)Key進(jìn)行規(guī)約(Reduce)運(yùn)算,得到最終結(jié)果。

2 分布式企業(yè)搜索引擎

2.1 企業(yè)搜索引擎

2.1.1 企業(yè)搜索引擎簡(jiǎn)介

企業(yè)搜索引擎是基于全文搜索技術(shù)設(shè)計(jì)的軟件系統(tǒng)。全文搜索是指計(jì)算機(jī)索引程序基于用戶(hù)字典解析并文本數(shù)據(jù)流,對(duì)每一個(gè)被切分出來(lái)的詞組建立索引,標(biāo)示該詞在文本中出現(xiàn)的次數(shù)和位置。當(dāng)用戶(hù)查詢(xún)時(shí),檢索程序就根據(jù)事先建立的索引進(jìn)行查詢(xún),并將查詢(xún)的結(jié)果根據(jù)相關(guān)度排序后反饋給用戶(hù)的檢索技術(shù)。

企業(yè)搜索引擎包含了兩個(gè)核心模塊,即索引引擎和搜索引擎。索引引擎負(fù)責(zé)生成索引文件,在開(kāi)始工作前,需要對(duì)輸入的結(jié)構(gòu)化或非結(jié)構(gòu)化數(shù)據(jù)進(jìn)行文本提取轉(zhuǎn)換為文本數(shù)據(jù)流,當(dāng)文本數(shù)據(jù)流送入索引引擎時(shí),通過(guò)調(diào)用文本分析工具對(duì)其實(shí)現(xiàn)切分詞組,并生成索引文件。搜索引擎是作為客戶(hù)端進(jìn)行搜索的接口,當(dāng)客戶(hù)端提交查詢(xún)關(guān)鍵詞后,搜索引擎調(diào)用文本分析工具對(duì)查詢(xún)關(guān)鍵詞實(shí)現(xiàn)切分詞組,并生成數(shù)個(gè)或關(guān)系的查詢(xún)請(qǐng)求,通過(guò)訪問(wèn)索引文件進(jìn)行查詢(xún),返回滿(mǎn)足查詢(xún)條件的經(jīng)過(guò)相關(guān)度排序的命中結(jié)果集。

2.1.2 企業(yè)搜索引擎現(xiàn)狀

目前企業(yè)使用的全文搜索引擎基本采用的是B/S架構(gòu),一般部署于一臺(tái)web應(yīng)用服務(wù)器上,對(duì)企業(yè)內(nèi)網(wǎng)的office文檔、pdf文檔、domino數(shù)據(jù)庫(kù)、結(jié)構(gòu)化數(shù)據(jù)庫(kù)進(jìn)行索引,甚至使用了網(wǎng)頁(yè)采集對(duì)外網(wǎng)網(wǎng)頁(yè)進(jìn)行采集索引。隨著索引數(shù)據(jù)的膨脹,單臺(tái)服務(wù)器的存儲(chǔ)已無(wú)法滿(mǎn)足存儲(chǔ)需求。同時(shí)隨著客戶(hù)端的增加,單位時(shí)間內(nèi)并發(fā)用戶(hù)會(huì)不斷增加,這會(huì)給服務(wù)器帶來(lái)巨大壓力,響應(yīng)給客戶(hù)端的時(shí)間會(huì)大大增加。雖然以上瓶頸可以通過(guò)增加硬盤(pán)的方式擴(kuò)大存儲(chǔ),甚至采用磁盤(pán)陣列存儲(chǔ),負(fù)載均衡等方式解決,但依然存在I/O讀寫(xiě)瓶頸,硬件設(shè)備過(guò)于集中,硬件成本過(guò)高,網(wǎng)絡(luò)帶寬消耗過(guò)大等問(wèn)題。

2.2 采用分布式基礎(chǔ)架構(gòu)設(shè)計(jì)企業(yè)搜索引擎

分布式企業(yè)搜索引擎運(yùn)行于一個(gè)集群環(huán)境,集群環(huán)境包含一個(gè)主節(jié)點(diǎn)Master和多臺(tái)子節(jié)點(diǎn)Slaver。主節(jié)點(diǎn)作為控制節(jié)點(diǎn),負(fù)責(zé)維護(hù)DFS分布式文件系統(tǒng)的目錄結(jié)構(gòu)以及MapReduce分布式計(jì)算的分發(fā)。由于主節(jié)點(diǎn)的重要性,可以使用性能較好的機(jī)架服務(wù)器,且為避免其失效,可以用另一臺(tái)機(jī)器Secondary Master作為備份。子節(jié)點(diǎn)作為分布式文件系統(tǒng)的存儲(chǔ)節(jié)點(diǎn)和分布式計(jì)算的子節(jié)點(diǎn),其性能不做要求,任意一臺(tái)可運(yùn)行的機(jī)器都可作為Slave,因此保證了子節(jié)點(diǎn)可無(wú)限擴(kuò)充,即分布式文件系統(tǒng)的存儲(chǔ)可擴(kuò)充性和分布式計(jì)算可并行性。

采用分布式基礎(chǔ)架構(gòu)設(shè)計(jì)的企業(yè)搜索引擎,通過(guò)將原始數(shù)據(jù)和索引數(shù)據(jù)存儲(chǔ)于DFS中,有效的降低了I/O瓶頸和網(wǎng)絡(luò)帶寬瓶頸;將索引生成和搜索服務(wù)移動(dòng)到數(shù)據(jù)節(jié)點(diǎn),有效降低了網(wǎng)絡(luò)帶寬瓶頸,提高了并發(fā)性能。

2.2.1 索引文件的分布式存儲(chǔ)

根據(jù)分布式文件系統(tǒng)和分布式計(jì)算的思想,索引文件的生成和存儲(chǔ)可以采用這樣的設(shè)計(jì)思想來(lái)實(shí)現(xiàn)。

Master作為集群的主節(jié)點(diǎn),包含負(fù)責(zé)任務(wù)分發(fā)的JobTracker和目錄節(jié)點(diǎn)NameNode。Slave作為集群的子節(jié)點(diǎn),包含作業(yè)運(yùn)行的TaskTracker和數(shù)據(jù)節(jié)點(diǎn)DataNode。

首先將待索引的文本數(shù)據(jù)存儲(chǔ)到分布式文件系統(tǒng)DFS中,并設(shè)計(jì)生成索引的索引Map函數(shù)。主節(jié)點(diǎn)Master的JobTracker負(fù)責(zé)將IndexMap函數(shù)分發(fā)到各子節(jié)點(diǎn)Slave上,每一臺(tái)Slave的TaskTracker負(fù)責(zé)運(yùn)行IndexMap函數(shù),將自己維護(hù)的文本數(shù)據(jù)生成索引文件,并存儲(chǔ)到分布式文件系統(tǒng)DFS中。

2.2.2 搜索的分布式計(jì)算

在索引文件被分布式存儲(chǔ)的基礎(chǔ)上,設(shè)計(jì)合理的Map/Reduce函數(shù),可以實(shí)現(xiàn)高效的并行搜索。設(shè)計(jì)SearchMap函數(shù)在所有的Slave上并行搜索各自維護(hù)的索引文件,設(shè)計(jì)SearchReduce函數(shù),將所有SearchMap函數(shù)產(chǎn)生的結(jié)果進(jìn)行排序,得到最終結(jié)果。

當(dāng)客戶(hù)端發(fā)起搜索請(qǐng)求時(shí),主節(jié)點(diǎn)Master的JobTracker將SearchMap函數(shù)分發(fā)到所有Slave上,各Slave的TaskTracker對(duì)自己維護(hù)的索引數(shù)據(jù)運(yùn)行SearchMap函數(shù),并將未排序的搜索結(jié)果傳給負(fù)責(zé)Reduce的Slave運(yùn)行SearchReduce函數(shù),并行的對(duì)未排序的搜索結(jié)果排序,最后由一個(gè)Slave運(yùn)行SearchReduce合并搜索結(jié)果,輸出最終搜索結(jié)果。

3 結(jié)束語(yǔ)

基于云計(jì)算的分布式文件系統(tǒng)和分布式計(jì)算以較低的硬件投入解決了全文搜索系統(tǒng)索引文件膨脹,網(wǎng)絡(luò)帶寬瓶頸以及磁盤(pán)I/O瓶頸等問(wèn)題。為其提供了高效的數(shù)據(jù)存儲(chǔ)和并行計(jì)算服務(wù)。

參考文獻(xiàn):

[1] Jeffrey Dean and Sanjay Ghemawat. MapReduce: Simplifed Data Processing on Large Clusters. Google, Inc.

[2] Sanjay Ghemawat, Howard Gobioff, and Shun-Tak Leung. The Google File System. Google, Inc.

[3] Tom White. Hadoop The Definitive Guide.

[4] 云計(jì)算七問(wèn)七答 http://www.infoq.com/cn/articles/questions-about-cloud-computing.

[5] Linux上的云計(jì)算 http://www.ibm.com/developerworks/cn/linux/l-cloud-computing/index.html.

主站蜘蛛池模板: 亚洲精品少妇熟女| 亚洲欧美在线综合一区二区三区| 国产成年女人特黄特色毛片免 | 91综合色区亚洲熟妇p| 精品丝袜美腿国产一区| 国产在线精品人成导航| 丁香婷婷综合激情| 欧美综合区自拍亚洲综合绿色| 一本大道东京热无码av| 亚洲精品色AV无码看| 国产好痛疼轻点好爽的视频| 亚洲无线一二三四区男男| 亚洲欧美日韩精品专区| 亚洲区视频在线观看| 高清无码手机在线观看| 国产亚卅精品无码| 色视频国产| 亚洲精品国产自在现线最新| 在线日韩日本国产亚洲| 精品無碼一區在線觀看 | 夜夜高潮夜夜爽国产伦精品| 亚洲一区毛片| 国产v精品成人免费视频71pao| 91美女视频在线| 国产丝袜精品| 亚洲精品成人片在线观看| 日韩123欧美字幕| 国产午夜福利亚洲第一| 91网红精品在线观看| 久久久久88色偷偷| 欧美人与性动交a欧美精品| 中文字幕人成乱码熟女免费| 日本亚洲最大的色成网站www| 97久久精品人人做人人爽| 97国产在线观看| 这里只有精品在线播放| 天天婬欲婬香婬色婬视频播放| 国产一区二区丝袜高跟鞋| 成色7777精品在线| 欧美精品在线免费| 亚洲热线99精品视频| 91久久国产综合精品| 国产真实乱子伦精品视手机观看| 国产成人精品一区二区不卡| 国产日本视频91| 欧美亚洲综合免费精品高清在线观看| 中文字幕1区2区| 欧美色亚洲| 亚洲swag精品自拍一区| 91午夜福利在线观看精品| 99热这里只有精品久久免费| 97se亚洲| 国产精品自拍合集| 少妇精品在线| 亚洲国产欧洲精品路线久久| 亚洲精品日产精品乱码不卡| 久久先锋资源| A级全黄试看30分钟小视频| 伊人久综合| 亚洲综合中文字幕国产精品欧美| 成人午夜久久| 综合五月天网| 亚洲香蕉在线| 中国毛片网| 欧美国产成人在线| 国产精品久线在线观看| 国产精品蜜芽在线观看| 欧美日韩在线亚洲国产人| 欧美久久网| 色噜噜狠狠狠综合曰曰曰| 一级成人a做片免费| 亚洲欧美在线综合一区二区三区| av在线人妻熟妇| 亚洲午夜片| 黄色三级毛片网站| 丁香综合在线| 亚洲AⅤ无码日韩AV无码网站| 久久亚洲国产最新网站| 国产高清国内精品福利| 久久精品国产精品青草app| 久久精品女人天堂aaa| 久无码久无码av无码|