本站小編為你精心準備了海運業分布式搜索引擎的應用參考范文,愿這些范文能點燃您思維的火花,激發您的寫作靈感。歡迎深入閱讀并收藏。
《西安工程大學學報》2015年第一期
1關鍵技術分析
1.1分布式計算分布式計算的基本原理是將待解的問題分解成若干個子問題,由多個獨立并行的計算設備來進行計算.Hadoop是一個基于Map/Reduce的相當成功的分布式計算平臺,Map/Reduce是Google的一項重要技術,是一種簡化的并行計算編程模型[5].當接到一項任務時,不同的數據文件大小差異會很大,這就使線程運行的時間不一樣,而整個任務的時間是由處理最大文件的那個線程所決定的,這就導致資源的浪費.所以,一種更好的方法是將輸入數據分割成相同的塊,大小一般為64M,這樣既使有些進程處理速度快,也可以給它分配更多的數據塊.Map/Reduce任務被分為Map階段和Reduce階段兩個處理階段.每個階段都以鍵/值對作為輸入和輸出,由程序員決定它們的類型并具體定義Map函數和Reduce函數.Map函數是數據的準備階段,對指定的屬性進行提取,輸出后的數據被存入本地硬盤.因為一旦作業處理完成,Map輸出的中間結果可以被刪除,如果中間結果傳遞給Reduce函數前失敗,就由Hadoop在另一個結點上重新運行這個Map函數.中間結果被送到Reduce函數后,所有的Reduce函數對整個數據列表進行遍歷,最終得到符合條件的結果.執行流程如圖1所示.
1.2分布式存儲HDFS最高效的訪問模式是一次寫入,多次讀取.一個HDFS集群由一個NameNode(管理者)和一定數目的DataNode(工作者)組成.NameNode管理文件系統的命名空間,維護著文件系統樹及整棵樹內的所有文件和目錄;DataNode是文件系統的工作節點,受NameNode和客戶端的調用,根據需要存儲或檢索數據塊,并定期向NameNode發送它們存儲的塊列表.當機器出現故障時,需要根據NameNo-de的塊來重建文件,所以NameNode實現容錯非常重要,Hadoop為此提供了兩種機制.一種機制是備份那些組成文件系統元數據持久狀態的文件,一般的配置是將持久狀態寫入本地磁盤的同時,寫入一個遠程掛載的網絡文件系統;另一種機制運行一個輔助的NameNode,一般運行在一個單獨的計算機上,它會保存合并后命名空間鏡像的副本.HDFS文件系統使用副本存儲策略來實現高可靠性.系統的復制因子一般為3,分別位于3個DataNode上,其中一個位于不同集群上.當一個DataNode出現故障后,其保存的數據仍然可以通過其他DataNode上保存的數據進行讀取.網絡斷開會造成一組DataNode和NameNode失去聯系,NameNode根據缺失的心跳信息判斷故障情況.當一個在DataNode出現故障,這時NameNode就再復制該DataNode的副本并存儲到其他DataNode上,以此來保證系統的高可靠性.當用戶需要訪問文件系統中的文件時,都需要向NameNode提交請求,獲得相應的權限后,再對DateNode進行讀或寫.分布式文件系統結構如圖2所示.
1.3搜索引擎技術架構作為互聯網應用中最具技術含量的應用之一,優秀的搜索引擎需要復雜的架構和算法,以此來支撐對海量數據的獲取、存儲,以及對用戶查詢的快速而準確地響應.搜索引擎的信息源來自于互聯網網頁,通過網絡爬蟲將整個互聯網的信息獲取到本地,因為互聯網頁面中有相當大比例的內容是完全相同或者近似重復的,“網頁去重”模塊會對此做出檢測,并去除重復內容.在此之后,搜索引擎會對網頁進行解析,抽取出網頁主體內容,以及頁面中包含的指向其他頁面的鏈接[6].為了加快響應用戶查詢的速度,網頁內容通過“倒排索引”這種高效查詢數據結構來保存,而網頁之間的鏈接關系也會予以保存.之所以要保存鏈接關系,是因為這種關系在網頁相關性排序階段是可利用的,通過“鏈接分析”可以判斷頁面的相對重要性,可以對用戶提供比較準確的搜索結果.由于網頁數量太多,搜索引擎不僅需要保存網頁原始信息,還要存儲一些中間的處理結果,使用單臺或者少量的機器明顯是不現實的,分布式搜索引擎應運而生.Google等商業搜索引擎為此開發了一整套云存儲與云計算平臺,即前文介紹的Hadoop平臺,使用數以萬計的普通PC搭建了海量信息的可靠存儲與計算架構,以此作為搜索引擎的基礎支撐.大部分的HDFS程序對文件操作需要的是一次寫入多次讀取的操作模式.一個文件一旦創建、寫入、關閉之后就不需要再修改.這個設定簡化了數據一致性問題,并使高吞吐量的數據訪問變得可能.網絡爬蟲程序可以完美地適合這個模型.搜索引擎的技術架構如圖3所示.
隨著經濟全球化的出現,海運企業面對的是一個更大的市場空間和更激烈的競爭環境,信息的實時性交換要求越來越高,同時也對應用系統的全球快速部署提出了更高的要求.傳統的企業IT架構給計算資源和軟件留下了眾多“孤島”,因此集成和管理變得非常困難,傳統的區域性計算機信息中心已經難以適應這種競爭需求,需要建立一個以數據為中心、分布式應用一體化的信息系統[7],以提高企業的核心競爭力.海運企業也有其特殊的一面,就是分公司與分支機構遍布全球各個港口,并且相互間的信息交互頻繁,企業需要實時動態的查詢船泊掛靠港口以及單證資料的傳遞信息,客戶也需要隨時能了解貨物的運輸情況.因此,基于Hadoop平臺的分布式搜索引擎架構,特別適用于典型的全球性企業,尤其適用海運業,而且海運業的計算機應用系統經過幾十年的發展,已經形成了一套完整的體系,如圖4所示.其中,網關中心與各地區的海關、碼頭、堆場等服務商進行數據交換,采用全球通用的標準,例如EDI標準進行編碼(UN/EDIFACT),進行雙向數據交換,以達到和配合單位的數據共享,提升作業效率,降低人工錄入成本.傳輸方式可以采用FTP或EMAIL等,主要對象和數據內容如下。Hadoop平臺采用分布式存儲技術,使得原來分布在各分支機構服務器上的數據處理能按照HDFS集群的方式集中在一起,成為分布式存儲中心.將時效性高、處理時間集中的業務集中處理,合理分配人力資源.不但降低了人力成本,也提高了工作效率.Hadoop平臺以分布式存儲技術作為底層支撐,爬蟲模塊在搜索各個服務器的時候,定義一系列的Map/Reduce任務,下載服務器數據,分析數據,提取數據之間的關聯,計算鏈接權重以及PageRank評分.索引模塊將下載的數據解析成文本文檔,并對抓取的內容進行分詞,然后提取詞元序列,按照重要性生成索引,方便用戶檢索業務數據.模擬千名用戶在同一時刻對系統進行查詢操作,測試數十次,響應速度很快,數據查詢返回結果均在3s以內.同時也模擬進行了異地大量數據查詢,例如10萬條數據返回時間也均在5s以內.測試結果令人滿意,如圖5所示.
3結束語
基于Hadoop平臺的分布式搜索引擎架構,特別適用于典型的全球性企業,面對龐大的數據量也可以快速處理,提高了系統的可靠性和可擴展性.用在中小型機構當中,也可以大大改善其數據的存儲和檢索功能.但如何對任務進行分割,使Hadoop平臺達到負載均衡,將是接下來研究的重點.改進中文分詞和網頁評分策略,也將構造出性能更好、搜索準確率更高的分布式搜索引擎.
作者:陳寧柴向陽孫勇單位:西安工程大學計算機科學學院西安西翼智能科技有限公司