系統架構師成長之路(四)

  大數據應用現狀

     隨着企業的數據量的迅速增長,存儲和處理大規模數據已成爲企業的迫切需求。Hadoop作爲開源的雲計算平臺,已引起了學術界和企業的普遍興趣。 

     在學術方面,Hadoop得到了各科研院所的廣泛關注,多所著名大學加入到Hadoop集羣的研究中來,其中包括石坦福大學、加州大學伯克利分校、康奈爾大學、卡耐基·梅隆大學、普渡大學等。一些國內高校和科研院所如中科院計算所、清華大學、中國人民大學等也開始對Hadoop展開相關研究,研究內容涉及Hadoop的數據存儲、資源管理、作業調度、性能優化、系統可用性和安全性等多個方面。

    在商業方面,Hadoop技術已經在互聯網領域得到了廣泛的應用。互聯網公司往往需要存儲海量的數據並對其進行處理,而這正是Hadoop的強項。如Facebook使用hadoop存儲內部的日誌拷貝,以及數據挖掘和日誌統計;Yahoo!利用Hadoop支持廣告系統並處理網頁搜索;Twitter則使用Hadoop存儲微博數據、日誌文件和其它中間數據等。在國內,Hadoop同樣也得到了許多公司的青睞,如百度主要將Hadoop應用於日誌分析和網頁數據庫的數據挖掘;阿里巴巴則將Hadoop用於商業數據的排序和搜索引擎的優化等;另外,像電力能源、運營商、醫療衛生、智能交通、金融證券、郵政快遞及政府機構等等都將大數據運用到了實際場景。

   Hadoop生態圈

  

    ZooKeeper概述

     Zookeeper事一個分佈式的,開放源碼的分佈式應用程序協調服務,是Google的Chubby一個開源的實現,是Hadoop和Hbase的重要組件。它是一個爲分佈式應用提供一致性服務的軟件,提供的功能包括:配置服務、域名服務、分佈式同步、組服務等。開發者意欲將Zookeeper設計成一個易於編程的環境,所以它的文件系統使用了我們所熟悉的目錄樹結構。zookeeper是使用Java編寫的,但是它支持Java和C兩種編程語言。

     Zookeeper的目標就是封裝好複雜易錯的關鍵服務,將簡單易用的接口和性能高效、功能穩定的系統提供給用戶。

     Zookeeper是以Fast Paxos算法爲基礎的,Paxos算法存在活鎖的問題,即當有多個proposer交錯提交時,有可能互相排斥導致沒有一個proposer能提交成功,而Fast Paxos作了一些優化,通過選舉產生一個leader,只有leader才能提交proposer。具體算法可見Fast Paxos。

      Zookeeper角色描述

      領導者(Leader):負責進行投票的發起和決議,更新系統狀態

      學習者(leaner):其中跟隨者(Follower)接受客戶端請求並返回結果,在選舉過程中參與競選和投票;觀察者(Observer)接受客戶端連接,返回讀操作結果,轉發寫請求給leader。競選過程中不參與投票,只同步leader狀態,它的存在是爲了擴展系統並提高讀取速度。

     Zookeeper部署

     一般情況下,運行一個zookeeper也是可以的,但是在生產環境中,最好是部署3,5,7個節點。部署的越多,可靠性就越高,當然最好是部署奇數個,偶數個也不是不可以,只是zookeeper集羣是以宕機個數過半纔會讓整個集羣宕機,因此奇數個集羣更佳。每個Zookeeper需要1G左右的內存,獨立磁盤可以確保zookeeper是高性能的,如果可能的話,最好有獨立的磁盤。如果集羣的負載很重,不要把Zookeeper和RegionServer運行在同一臺機器上面。

      Zookeeper的應用

       Zookeeper成功地應用於大量的工業程序中。它在Yahoo!被用於雅虎消息代理(Yahoo! Message Broker)的協調和故障恢復服務。雅虎消息代理是一個高度可擴展的發佈-訂閱系統,它管理着上千的總聯機程序和消息控制系統,另外它還用於爲Yahoo!crawler獲取服務並恢復錯誤故障。除此之外,一些Yahoo!廣告系統也同樣適用Zookeeper來實現可靠的服務。

     未完待續……

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章