1. 程式人生 > >雲端計算與分散式概述

雲端計算與分散式概述

一般來說單個爬蟲的效能有限,不能再合理的時間範圍內抓取到足夠數目的相關網頁。所以在實際的應用中一般做法是設計一個分散式的爬蟲,讓每個爬蟲節點就近抓取靠近他的網站,然後把結構進行整合反饋給使用者。分散式技術應用於網路爬蟲中,不僅可以降低運營的成本,而且能夠大幅度提高爬蟲的效能。尤其是在當今雲端計算正處於飛速發展時期,更是帶動了分散式技術的發展。

所謂分散式技術其實質上是一種基於網路的計算機處理技術。一個分散式系統(Distributed System)是一組邏輯和物理上互聯的處理單元的集合。其實質就是對資源的系統範圍的分散控制,以達到應用程式的協同執行。這種系統不要求單臺計算機的功能十分強大,故能降低成本。分散式系統具有快速訪問、多使用者使用的優點。系統中的每臺計算機可以方便快捷的訪問其他內部節點的資訊檔案,它既可以為本地使用者的特殊要求服務,也可以為網路中其他使用者服務,實現不同計算機之間的通訊與協同工作。

雲端計算(Cloud Computing)是分散式處理、並行處理、網格計算的發展,是虛擬化、效用計算、IaaS、PaaS、SaaS等概念混合躍升的結果。基本原理是將計算任務分佈在雲端的大量的分散式計算機上、資料也儲存在雲端,使得企業將有限的資源切換到需要的應用上,降低企業執行的成本。這樣帶來的結果是中小企業不需要購置專門的計算機系統去滿足某一應用需求,只需要想雲端計算中心支付服務費即可獲得響應服務,而云計算中心則大規模的雲,以向用戶提供服務。總的來說雲端計算具有如下的特點:超大規模雲端計算叢集、虛擬化、高可靠性、通用性、按需服務、極其廉價。

搜尋引擎的發展產生了雲端計算的概念,而反過來雲端計算與分散式技術又深刻的影響著搜尋引擎的發展。如Google公司率先提出雲端計算的概念,並保持著在雲端計算領域的領先,才能多年在搜尋引擎中保持霸主地位,Google三大核心技術構成了雲端計算服務的基礎:GFS(Google File System)、MapReduce(分散式計算系統)、BigTable(分散式儲存系統)。GFS位於最底層,用於管理資料的儲存工作,它將大資料分割成固定大小的資料塊,儲存在兩到三個伺服器上,保證了資料具有較好的容錯性。MapReduce是Google開發的分散式程式設計工具,用於1TB資料的大規模資料集並行運算,其實質是將海量資料分割成小資料在不同伺服器上運算處理,並將運算結果進行整合,最後返回給使用者。BigTable是Google的一種對於半結構化資料進行分佈儲存與訪問的服務,它是建立在GFS與MapReduce基礎之上的結構化分散式儲存系統,可以使Google能最大限度的利用已有資源,在提供服務的同時降低執行成本。

Google的三大核心技術沒有公開其內部的詳細設計技術,但通過已有的論文,Apache都將其一一實現:GFS對應的開源專案為HDFS;BigTable對應的是HBase;Hadoop是Apache旗下的一個分散式開源計算框架。對於這些開源的技術,在網上都有詳細的技術文件,可以藉助這些技術文件進行學習。國內已有一些知名的網際網路公司成功的運用了以上的一些技術,並取得了很好的效果。