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

基于云計算的分布式企業搜索引擎研究

2009-04-29 00:00:00林樂然,陳德龍
電腦知識與技術 2009年33期

摘要:當前企業搜索引擎多采用基于全文檢索技術設計,隨著索引的膨脹和客戶端并發查詢的增加,有限的物理存儲、CPU周期、內存容量和網絡帶寬帶來了巨大瓶頸。隨著云計算概念的提出和發展,為企業搜索引擎提供了更加優化的解決方案。本文將簡要介紹現階段基于分布式存儲和分布式計算的云計算研究成果,以及其在企業搜索引擎中的應用。

關鍵詞:云計算;分布式存儲;分布式文件系統;分布式計算;企業搜索引擎;全文檢索

中圖分類號:TP311文獻標識碼:A文章編號: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 云計算概述

1.1 什么是云計算

云計算是一種動態的易擴展的且通常是通過互聯網提供虛擬化的資源計算方式,用戶不需要了解云內部的細節,也不必具有云內部的專業知識,或直接控制基礎設施。云計算包括架構即服務(IaaS),平臺即服務(PaaS)和軟件即服務(SaaS)以及其他依賴于互聯網滿足客戶計算需求的技術趨勢。云計算服務通常提供通用的通過瀏覽器訪問的在線商業應用,軟件和數據存儲在服務器上。

1.1.1 現有云計算服務

現有云計算服務可分為兩類:

虛擬化技術。通過對硬件的虛擬化,最大程度上利用CPU資源和內存,通過出售虛擬機和計算能力獲得商業利益。例如Amazon EC2提供的彈性計算云服務和Amazon S3提供的存儲服務。

打包的計算方案。通過提供分布式存儲和分布式計算服務,最大程度上利用集群中的計算節點,提供分布式并行計算能力。例如Google App Engine。

1.1.2 現有云計算分類

從產業類型對云計算進行分類,主要有這三類:

SaaS:Software as a Service 軟件即服務,通過Internet提供軟件的模式,用戶向提供商租用基于Web的軟件來管理企業經營活動,且無需對軟件進行維護,服務提供商會全權管理和維護軟件。例如Google Docs,Salesforce.com。

PaaS:Platform as a Service平臺即服務,提供分布式存儲和分布式計算平臺給系統管理員和開發人員,以為其構建、測試及部署定制應用程序。例如Google App Engine,AWS S3(Amazon Web Services Simple Storage Service) Amazon存儲服務,Microsoft Azure。

IaaS:Infrastructure as a Service架構即服務,提供了核心計算資源和網絡架構等基礎設施的服務。例如,AWS EC2(Amazon Web Service Elastic Compute Cloud) Amazon彈性計算云。

1.2 從分布式基礎架構理解云

分布式基礎架構起源于Google,基于Google的分布式基礎架構的理論,可以將云計算理解為提供了分布式文件系統和分布式計算的運行環境,用戶可以通過編程,設計可分布式并行計算的程序,其計算數據來源和結果都存儲于分布式文件系統中。

1.2.1 分布式文件系統

分布式文件系統Distributed File System(DFS)采用主從架構,一個分布式文件系統由唯一一個目錄節點NameNode(主節點),和多個數據節點DataNode(子節點)組成。分布式文件系統對外表現為一個普通的文件系統,用戶可以用文件名去存取文件,而實際上這個文件是被分成不同的數據塊,這些數據塊就是存儲在數據節點上面。

一個典型的分布式文件系統集群部署,是由一臺性能較好的機器運行目錄節點,而集群里的其他機器每臺上運行一個數據節點。唯一的目錄節點的設計大大簡化了整個體系結果,目錄節點負責分布式文件系統里面所有元數據的仲裁和存儲,這樣的設計是數據不會脫離目錄節點的控制。

1.2.2 分布式計算

MapReduce源于函數式編程模型中的兩項核心操作:Map和Reduce。Map是把一組數據一對一的映射為另外的一組數據,其映射的規則由一個Map函數來指定。Reduce是對一組數據進行歸約,這個歸約的規則由一個Reduce函數指定。Map是一個把數據分開的過程,Reduce則是把分開的數據合并的過程。

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

2 分布式企業搜索引擎

2.1 企業搜索引擎

2.1.1 企業搜索引擎簡介

企業搜索引擎是基于全文搜索技術設計的軟件系統。全文搜索是指計算機索引程序基于用戶字典解析并文本數據流,對每一個被切分出來的詞組建立索引,標示該詞在文本中出現的次數和位置。當用戶查詢時,檢索程序就根據事先建立的索引進行查詢,并將查詢的結果根據相關度排序后反饋給用戶的檢索技術。

企業搜索引擎包含了兩個核心模塊,即索引引擎和搜索引擎。索引引擎負責生成索引文件,在開始工作前,需要對輸入的結構化或非結構化數據進行文本提取轉換為文本數據流,當文本數據流送入索引引擎時,通過調用文本分析工具對其實現切分詞組,并生成索引文件。搜索引擎是作為客戶端進行搜索的接口,當客戶端提交查詢關鍵詞后,搜索引擎調用文本分析工具對查詢關鍵詞實現切分詞組,并生成數個或關系的查詢請求,通過訪問索引文件進行查詢,返回滿足查詢條件的經過相關度排序的命中結果集。

2.1.2 企業搜索引擎現狀

目前企業使用的全文搜索引擎基本采用的是B/S架構,一般部署于一臺web應用服務器上,對企業內網的office文檔、pdf文檔、domino數據庫、結構化數據庫進行索引,甚至使用了網頁采集對外網網頁進行采集索引。隨著索引數據的膨脹,單臺服務器的存儲已無法滿足存儲需求。同時隨著客戶端的增加,單位時間內并發用戶會不斷增加,這會給服務器帶來巨大壓力,響應給客戶端的時間會大大增加。雖然以上瓶頸可以通過增加硬盤的方式擴大存儲,甚至采用磁盤陣列存儲,負載均衡等方式解決,但依然存在I/O讀寫瓶頸,硬件設備過于集中,硬件成本過高,網絡帶寬消耗過大等問題。

2.2 采用分布式基礎架構設計企業搜索引擎

分布式企業搜索引擎運行于一個集群環境,集群環境包含一個主節點Master和多臺子節點Slaver。主節點作為控制節點,負責維護DFS分布式文件系統的目錄結構以及MapReduce分布式計算的分發。由于主節點的重要性,可以使用性能較好的機架服務器,且為避免其失效,可以用另一臺機器Secondary Master作為備份。子節點作為分布式文件系統的存儲節點和分布式計算的子節點,其性能不做要求,任意一臺可運行的機器都可作為Slave,因此保證了子節點可無限擴充,即分布式文件系統的存儲可擴充性和分布式計算可并行性。

采用分布式基礎架構設計的企業搜索引擎,通過將原始數據和索引數據存儲于DFS中,有效的降低了I/O瓶頸和網絡帶寬瓶頸;將索引生成和搜索服務移動到數據節點,有效降低了網絡帶寬瓶頸,提高了并發性能。

2.2.1 索引文件的分布式存儲

根據分布式文件系統和分布式計算的思想,索引文件的生成和存儲可以采用這樣的設計思想來實現。

Master作為集群的主節點,包含負責任務分發的JobTracker和目錄節點NameNode。Slave作為集群的子節點,包含作業運行的TaskTracker和數據節點DataNode。

首先將待索引的文本數據存儲到分布式文件系統DFS中,并設計生成索引的索引Map函數。主節點Master的JobTracker負責將IndexMap函數分發到各子節點Slave上,每一臺Slave的TaskTracker負責運行IndexMap函數,將自己維護的文本數據生成索引文件,并存儲到分布式文件系統DFS中。

2.2.2 搜索的分布式計算

在索引文件被分布式存儲的基礎上,設計合理的Map/Reduce函數,可以實現高效的并行搜索。設計SearchMap函數在所有的Slave上并行搜索各自維護的索引文件,設計SearchReduce函數,將所有SearchMap函數產生的結果進行排序,得到最終結果。

當客戶端發起搜索請求時,主節點Master的JobTracker將SearchMap函數分發到所有Slave上,各Slave的TaskTracker對自己維護的索引數據運行SearchMap函數,并將未排序的搜索結果傳給負責Reduce的Slave運行SearchReduce函數,并行的對未排序的搜索結果排序,最后由一個Slave運行SearchReduce合并搜索結果,輸出最終搜索結果。

3 結束語

基于云計算的分布式文件系統和分布式計算以較低的硬件投入解決了全文搜索系統索引文件膨脹,網絡帶寬瓶頸以及磁盤I/O瓶頸等問題。為其提供了高效的數據存儲和并行計算服務。

參考文獻:

[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] 云計算七問七答 http://www.infoq.com/cn/articles/questions-about-cloud-computing.

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

主站蜘蛛池模板: 欧美一区二区三区欧美日韩亚洲| 亚洲欧美精品日韩欧美| jizz国产视频| 免费又黄又爽又猛大片午夜| 国产永久免费视频m3u8| 婷婷综合色| 国产精品人成在线播放| 成人国产免费| 青青热久麻豆精品视频在线观看| 丁香婷婷久久| 国产国产人成免费视频77777| 久久午夜影院| 在线国产资源| 日韩精品亚洲精品第一页| 国内精品久久久久久久久久影视| 91青青在线视频| 欧美日韩福利| 999精品色在线观看| 亚洲欧美在线综合图区| 日韩无码白| 久操中文在线| 国产福利免费在线观看| 夜夜爽免费视频| 国产成人91精品免费网址在线| 青青青国产视频手机| 伊人91在线| 精品久久久久久久久久久| 青青青国产在线播放| 欧美日韩免费| 日本三级黄在线观看| 欧美精品亚洲精品日韩专| 国产成人AV综合久久| 亚洲黄网视频| AV老司机AV天堂| 18禁高潮出水呻吟娇喘蜜芽| 国产成人免费高清AⅤ| 91综合色区亚洲熟妇p| 色天天综合久久久久综合片| 日本91在线| 日本尹人综合香蕉在线观看| 成人精品亚洲| 伦伦影院精品一区| 欧美中文字幕在线二区| 国产精品嫩草影院视频| 日韩精品无码免费一区二区三区| 日韩av高清无码一区二区三区| 国产免费高清无需播放器| 日本午夜精品一本在线观看| 一级看片免费视频| 成人国产免费| 国产黄色爱视频| 欧美成人精品欧美一级乱黄| 欧美色视频日本| 免费a在线观看播放| 欧美激情视频二区三区| 欧美亚洲国产精品久久蜜芽| 午夜少妇精品视频小电影| 国产精品亚洲片在线va| 亚洲色图综合在线| 亚洲欧美日韩中文字幕在线一区| 99久久精品视香蕉蕉| 91精品伊人久久大香线蕉| 精品免费在线视频| 色哟哟国产精品一区二区| 久久公开视频| 在线看AV天堂| 亚洲三级片在线看| 日韩a级片视频| 四虎永久在线精品国产免费 | 中文一级毛片| 三级国产在线观看| 欧美亚洲欧美| 中文字幕 91| 午夜国产精品视频黄| 色偷偷综合网| 色天天综合久久久久综合片| 久久大香香蕉国产免费网站| 黄色在线网| 亚洲天堂免费在线视频| 国产一区免费在线观看| 亚洲三级网站| 亚洲AV电影不卡在线观看|