国产在线观看免费视频软件-亚洲国产成人在线观看-亚洲超丰满肉感bbw-在线亚洲天堂-欧美日韩一区二区三区不卡-97精品依人久久久大香线蕉97-日本高清不卡一区-国产精品果冻传媒-91精品国产吴梦梦-在线免费看毛片-黄色国产网站-岛国精品在线播放-免费在线看黄网址-天天操天天干天天摸-精品性视频-日韩色av色资源-三上悠亚影音先锋

美章網(wǎng) 資料文庫(kù) 海運(yùn)業(yè)分布式搜索引擎的應(yīng)用范文

海運(yùn)業(yè)分布式搜索引擎的應(yīng)用范文

本站小編為你精心準(zhǔn)備了海運(yùn)業(yè)分布式搜索引擎的應(yīng)用參考范文,愿這些范文能點(diǎn)燃您思維的火花,激發(fā)您的寫(xiě)作靈感。歡迎深入閱讀并收藏。

海運(yùn)業(yè)分布式搜索引擎的應(yīng)用

《西安工程大學(xué)學(xué)報(bào)》2015年第一期

1關(guān)鍵技術(shù)分析

1.1分布式計(jì)算分布式計(jì)算的基本原理是將待解的問(wèn)題分解成若干個(gè)子問(wèn)題,由多個(gè)獨(dú)立并行的計(jì)算設(shè)備來(lái)進(jìn)行計(jì)算.Hadoop是一個(gè)基于Map/Reduce的相當(dāng)成功的分布式計(jì)算平臺(tái),Map/Reduce是Google的一項(xiàng)重要技術(shù),是一種簡(jiǎn)化的并行計(jì)算編程模型[5].當(dāng)接到一項(xiàng)任務(wù)時(shí),不同的數(shù)據(jù)文件大小差異會(huì)很大,這就使線程運(yùn)行的時(shí)間不一樣,而整個(gè)任務(wù)的時(shí)間是由處理最大文件的那個(gè)線程所決定的,這就導(dǎo)致資源的浪費(fèi).所以,一種更好的方法是將輸入數(shù)據(jù)分割成相同的塊,大小一般為64M,這樣既使有些進(jìn)程處理速度快,也可以給它分配更多的數(shù)據(jù)塊.Map/Reduce任務(wù)被分為Map階段和Reduce階段兩個(gè)處理階段.每個(gè)階段都以鍵/值對(duì)作為輸入和輸出,由程序員決定它們的類(lèi)型并具體定義Map函數(shù)和Reduce函數(shù).Map函數(shù)是數(shù)據(jù)的準(zhǔn)備階段,對(duì)指定的屬性進(jìn)行提取,輸出后的數(shù)據(jù)被存入本地硬盤(pán).因?yàn)橐坏┳鳂I(yè)處理完成,Map輸出的中間結(jié)果可以被刪除,如果中間結(jié)果傳遞給Reduce函數(shù)前失敗,就由Hadoop在另一個(gè)結(jié)點(diǎn)上重新運(yùn)行這個(gè)Map函數(shù).中間結(jié)果被送到Reduce函數(shù)后,所有的Reduce函數(shù)對(duì)整個(gè)數(shù)據(jù)列表進(jìn)行遍歷,最終得到符合條件的結(jié)果.執(zhí)行流程如圖1所示.

1.2分布式存儲(chǔ)HDFS最高效的訪問(wèn)模式是一次寫(xiě)入,多次讀?。粋€(gè)HDFS集群由一個(gè)NameNode(管理者)和一定數(shù)目的DataNode(工作者)組成.NameNode管理文件系統(tǒng)的命名空間,維護(hù)著文件系統(tǒng)樹(shù)及整棵樹(shù)內(nèi)的所有文件和目錄;DataNode是文件系統(tǒng)的工作節(jié)點(diǎn),受NameNode和客戶(hù)端的調(diào)用,根據(jù)需要存儲(chǔ)或檢索數(shù)據(jù)塊,并定期向NameNode發(fā)送它們存儲(chǔ)的塊列表.當(dāng)機(jī)器出現(xiàn)故障時(shí),需要根據(jù)NameNo-de的塊來(lái)重建文件,所以NameNode實(shí)現(xiàn)容錯(cuò)非常重要,Hadoop為此提供了兩種機(jī)制.一種機(jī)制是備份那些組成文件系統(tǒng)元數(shù)據(jù)持久狀態(tài)的文件,一般的配置是將持久狀態(tài)寫(xiě)入本地磁盤(pán)的同時(shí),寫(xiě)入一個(gè)遠(yuǎn)程掛載的網(wǎng)絡(luò)文件系統(tǒng);另一種機(jī)制運(yùn)行一個(gè)輔助的NameNode,一般運(yùn)行在一個(gè)單獨(dú)的計(jì)算機(jī)上,它會(huì)保存合并后命名空間鏡像的副本.HDFS文件系統(tǒng)使用副本存儲(chǔ)策略來(lái)實(shí)現(xiàn)高可靠性.系統(tǒng)的復(fù)制因子一般為3,分別位于3個(gè)DataNode上,其中一個(gè)位于不同集群上.當(dāng)一個(gè)DataNode出現(xiàn)故障后,其保存的數(shù)據(jù)仍然可以通過(guò)其他DataNode上保存的數(shù)據(jù)進(jìn)行讀?。W(wǎng)絡(luò)斷開(kāi)會(huì)造成一組DataNode和NameNode失去聯(lián)系,NameNode根據(jù)缺失的心跳信息判斷故障情況.當(dāng)一個(gè)在DataNode出現(xiàn)故障,這時(shí)NameNode就再?gòu)?fù)制該DataNode的副本并存儲(chǔ)到其他DataNode上,以此來(lái)保證系統(tǒng)的高可靠性.當(dāng)用戶(hù)需要訪問(wèn)文件系統(tǒng)中的文件時(shí),都需要向NameNode提交請(qǐng)求,獲得相應(yīng)的權(quán)限后,再對(duì)DateNode進(jìn)行讀或?qū)懀植际轿募到y(tǒng)結(jié)構(gòu)如圖2所示.

1.3搜索引擎技術(shù)架構(gòu)作為互聯(lián)網(wǎng)應(yīng)用中最具技術(shù)含量的應(yīng)用之一,優(yōu)秀的搜索引擎需要復(fù)雜的架構(gòu)和算法,以此來(lái)支撐對(duì)海量數(shù)據(jù)的獲取、存儲(chǔ),以及對(duì)用戶(hù)查詢(xún)的快速而準(zhǔn)確地響應(yīng).搜索引擎的信息源來(lái)自于互聯(lián)網(wǎng)網(wǎng)頁(yè),通過(guò)網(wǎng)絡(luò)爬蟲(chóng)將整個(gè)互聯(lián)網(wǎng)的信息獲取到本地,因?yàn)榛ヂ?lián)網(wǎng)頁(yè)面中有相當(dāng)大比例的內(nèi)容是完全相同或者近似重復(fù)的,“網(wǎng)頁(yè)去重”模塊會(huì)對(duì)此做出檢測(cè),并去除重復(fù)內(nèi)容.在此之后,搜索引擎會(huì)對(duì)網(wǎng)頁(yè)進(jìn)行解析,抽取出網(wǎng)頁(yè)主體內(nèi)容,以及頁(yè)面中包含的指向其他頁(yè)面的鏈接[6].為了加快響應(yīng)用戶(hù)查詢(xún)的速度,網(wǎng)頁(yè)內(nèi)容通過(guò)“倒排索引”這種高效查詢(xún)數(shù)據(jù)結(jié)構(gòu)來(lái)保存,而網(wǎng)頁(yè)之間的鏈接關(guān)系也會(huì)予以保存.之所以要保存鏈接關(guān)系,是因?yàn)檫@種關(guān)系在網(wǎng)頁(yè)相關(guān)性排序階段是可利用的,通過(guò)“鏈接分析”可以判斷頁(yè)面的相對(duì)重要性,可以對(duì)用戶(hù)提供比較準(zhǔn)確的搜索結(jié)果.由于網(wǎng)頁(yè)數(shù)量太多,搜索引擎不僅需要保存網(wǎng)頁(yè)原始信息,還要存儲(chǔ)一些中間的處理結(jié)果,使用單臺(tái)或者少量的機(jī)器明顯是不現(xiàn)實(shí)的,分布式搜索引擎應(yīng)運(yùn)而生.Google等商業(yè)搜索引擎為此開(kāi)發(fā)了一整套云存儲(chǔ)與云計(jì)算平臺(tái),即前文介紹的Hadoop平臺(tái),使用數(shù)以萬(wàn)計(jì)的普通PC搭建了海量信息的可靠存儲(chǔ)與計(jì)算架構(gòu),以此作為搜索引擎的基礎(chǔ)支撐.大部分的HDFS程序?qū)ξ募僮餍枰氖且淮螌?xiě)入多次讀取的操作模式.一個(gè)文件一旦創(chuàng)建、寫(xiě)入、關(guān)閉之后就不需要再修改.這個(gè)設(shè)定簡(jiǎn)化了數(shù)據(jù)一致性問(wèn)題,并使高吞吐量的數(shù)據(jù)訪問(wèn)變得可能.網(wǎng)絡(luò)爬蟲(chóng)程序可以完美地適合這個(gè)模型.搜索引擎的技術(shù)架構(gòu)如圖3所示.

2基于Hadoop的海運(yùn)業(yè)分布式搜索引擎架構(gòu)

隨著經(jīng)濟(jì)全球化的出現(xiàn),海運(yùn)企業(yè)面對(duì)的是一個(gè)更大的市場(chǎng)空間和更激烈的競(jìng)爭(zhēng)環(huán)境,信息的實(shí)時(shí)性交換要求越來(lái)越高,同時(shí)也對(duì)應(yīng)用系統(tǒng)的全球快速部署提出了更高的要求.傳統(tǒng)的企業(yè)IT架構(gòu)給計(jì)算資源和軟件留下了眾多“孤島”,因此集成和管理變得非常困難,傳統(tǒng)的區(qū)域性計(jì)算機(jī)信息中心已經(jīng)難以適應(yīng)這種競(jìng)爭(zhēng)需求,需要建立一個(gè)以數(shù)據(jù)為中心、分布式應(yīng)用一體化的信息系統(tǒng)[7],以提高企業(yè)的核心競(jìng)爭(zhēng)力.海運(yùn)企業(yè)也有其特殊的一面,就是分公司與分支機(jī)構(gòu)遍布全球各個(gè)港口,并且相互間的信息交互頻繁,企業(yè)需要實(shí)時(shí)動(dòng)態(tài)的查詢(xún)船泊掛靠港口以及單證資料的傳遞信息,客戶(hù)也需要隨時(shí)能了解貨物的運(yùn)輸情況.因此,基于Hadoop平臺(tái)的分布式搜索引擎架構(gòu),特別適用于典型的全球性企業(yè),尤其適用海運(yùn)業(yè),而且海運(yùn)業(yè)的計(jì)算機(jī)應(yīng)用系統(tǒng)經(jīng)過(guò)幾十年的發(fā)展,已經(jīng)形成了一套完整的體系,如圖4所示.其中,網(wǎng)關(guān)中心與各地區(qū)的海關(guān)、碼頭、堆場(chǎng)等服務(wù)商進(jìn)行數(shù)據(jù)交換,采用全球通用的標(biāo)準(zhǔn),例如EDI標(biāo)準(zhǔn)進(jìn)行編碼(UN/EDIFACT),進(jìn)行雙向數(shù)據(jù)交換,以達(dá)到和配合單位的數(shù)據(jù)共享,提升作業(yè)效率,降低人工錄入成本.傳輸方式可以采用FTP或EMAIL等,主要對(duì)象和數(shù)據(jù)內(nèi)容如下。Hadoop平臺(tái)采用分布式存儲(chǔ)技術(shù),使得原來(lái)分布在各分支機(jī)構(gòu)服務(wù)器上的數(shù)據(jù)處理能按照HDFS集群的方式集中在一起,成為分布式存儲(chǔ)中心.將時(shí)效性高、處理時(shí)間集中的業(yè)務(wù)集中處理,合理分配人力資源.不但降低了人力成本,也提高了工作效率.Hadoop平臺(tái)以分布式存儲(chǔ)技術(shù)作為底層支撐,爬蟲(chóng)模塊在搜索各個(gè)服務(wù)器的時(shí)候,定義一系列的Map/Reduce任務(wù),下載服務(wù)器數(shù)據(jù),分析數(shù)據(jù),提取數(shù)據(jù)之間的關(guān)聯(lián),計(jì)算鏈接權(quán)重以及PageRank評(píng)分.索引模塊將下載的數(shù)據(jù)解析成文本文檔,并對(duì)抓取的內(nèi)容進(jìn)行分詞,然后提取詞元序列,按照重要性生成索引,方便用戶(hù)檢索業(yè)務(wù)數(shù)據(jù).模擬千名用戶(hù)在同一時(shí)刻對(duì)系統(tǒng)進(jìn)行查詢(xún)操作,測(cè)試數(shù)十次,響應(yīng)速度很快,數(shù)據(jù)查詢(xún)返回結(jié)果均在3s以?xún)?nèi).同時(shí)也模擬進(jìn)行了異地大量數(shù)據(jù)查詢(xún),例如10萬(wàn)條數(shù)據(jù)返回時(shí)間也均在5s以?xún)?nèi).測(cè)試結(jié)果令人滿(mǎn)意,如圖5所示.

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

基于Hadoop平臺(tái)的分布式搜索引擎架構(gòu),特別適用于典型的全球性企業(yè),面對(duì)龐大的數(shù)據(jù)量也可以快速處理,提高了系統(tǒng)的可靠性和可擴(kuò)展性.用在中小型機(jī)構(gòu)當(dāng)中,也可以大大改善其數(shù)據(jù)的存儲(chǔ)和檢索功能.但如何對(duì)任務(wù)進(jìn)行分割,使Hadoop平臺(tái)達(dá)到負(fù)載均衡,將是接下來(lái)研究的重點(diǎn).改進(jìn)中文分詞和網(wǎng)頁(yè)評(píng)分策略,也將構(gòu)造出性能更好、搜索準(zhǔn)確率更高的分布式搜索引擎.

作者:陳寧柴向陽(yáng)孫勇單位:西安工程大學(xué)計(jì)算機(jī)科學(xué)學(xué)院西安西翼智能科技有限公司

沛县| 永清县| 大同市| 全南县| 英山县| 宝兴县| 辉南县| 清远市| 岚皋县| 上犹县| 谷城县| 宝鸡市| 奈曼旗| 扶余县| 汝阳县| 通山县| 南木林县| 桐梓县| 化隆| 舞阳县| 安龙县| 铜梁县| 马公市| 太保市| 工布江达县| 芦溪县| 金堂县| 新平| 常山县| 图们市| 鄂伦春自治旗| 清镇市| 隆安县| 金溪县| 诸暨市| 玉山县| 太仆寺旗| 延安市| 桃源县| 安仁县| 惠安县|