老李分享雲計算基本概念

老李分享雲計算基本概念

 

  poptest是國內惟一一家培養測試開發工程師的培訓機構,以學員能勝任自動化測試,性能測試,測試工具開發等工做爲目標。若是對課程感興趣,請你們諮詢qq:908821478,諮詢電話010-84505200。html

一、NOSQL數據庫:node

列族存儲:HBase,Hypertable數據庫

文檔存儲:MongDB,CouchDBjson

鍵值存儲:Redis,Memcahed,Berkeley DB網絡

最終一致的鍵值存儲:Cassandra,Voldermot數據結構

 

它們各有特點,適用於不一樣的應用場景。
Redis是一個高性能的key-value數據庫。它的出現很大程度補償了memcached這類keyvalue存儲的不足,在部分場合能夠對關係數據庫起到很好的補充做用,比較適合做爲內存數據庫。但它的查詢功能比較單一,沒法實現RDBMS豐富的查詢功能,而HBase通過改進後能夠實現。

MongoDB是用C++編寫的分佈式文件存儲數據庫。它是一個介於RDBMS和NoSQL之間的產品,是NoSQL當中功能最豐富,最像RDBMS的。MongoDB支持的數據結構很是鬆散,是相似json的bson格式,所以能夠存儲比較複雜的數據類型。它支持的查詢語言很是強大,其語法有點相似於面向對象的查詢語言,幾乎能夠實現相似關係數據庫單表查詢的絕大部分功能,並且還支持對數據創建索引。所以,用戶能夠方便地由MySQL遷移到MongoDB,進一步促進MongoDB的流行。

相比之下,HBase支持的查詢語言沒有MongoDB豐富,也不支持二級索引, 在易用性方面完敗於MongoDB。但HBase是在Hadoop基礎上開發的,與Hadoop結合更緊密,數據存儲在riDFS巾,對MapReduce框架的支持更好。並且HBase的吞吐率遠大於MongoDB,大數據寫入性能也遙遙領先。在具體應用上,

MongoDB更適合於數據變化較快的場景,適用動態的查詢,使用索引而不須要MapReduce;而HBase更適合海量數據的實時隨機讀取。架構

不過經過一些方法,好比Solr+Hbase,ITHbase,協處理器等方式,爲HBase增長二級索引的話,可讓HBase在功能上不輸於MongDB。併發

 

二、分佈式文件系統:負載均衡

HDFS,GFS等:適合存儲大文件。(HDFS對大文件作了優化,關注吞吐量,適合作批處理)框架

MogileFS,FastDFS,OpenStack的Swift等。適合存儲小文件

淘寶的TFS。

 

註解1 -- 下面是轉載來的HDFS和Swift的對比:

 

最近在Quora上有人提到一個問題,有關Hadoop分佈式文件系統和OpenStack對象存儲的不一樣。問題原文以下:

「Hadoop分佈式文件系統(HDFS)和OpenStack對象存儲(OpenStack Object Storage)彷佛都有着類似的目的:實現冗餘、快速、聯網的存儲。什麼樣的技術特性讓這兩種系統於是不同?這兩種存儲系統最終趨於融合是否大有意義?」

問題提出以後,很快有OpenStack的開發者進行了回覆。51CTO在此摘抄了前兩名回覆進行翻譯,以供各位參考。

排名第一的答案來自RackSpace的OpenStack Swift開發者Chuck Their:

雖然HDFS與Openstack對象存儲(Swift)之間有着一些類似之處,可是這兩種系統的整體設計卻大不同。

1. HDFS使用了中央系統來維護文件元數據(Namenode,名稱節點),而在Swift中,元數據呈分佈式,跨集羣複製。使用一種中央元數據系統對HDFS來講無異於單一故障點,於是擴展到規模很是大的環境顯得更困難。

2. Swift在設計時考慮到了多租戶架構,而HDFS沒有多租戶架構這個概念。

3. HDFS針對更龐大的文件做了優化(這是處理數據時一般會出現的狀況),Swift被設計成了能夠存儲任何大小的文件。

4. 在HDFS中,文件寫入一次,並且每次只能有一個文件寫入;而在Swift中,文件能夠寫入屢次;在併發操做環境下,以最近一次操做爲準。

5. HDFS用Java來編寫,而Swift用Python來編寫。

另外,HDFS被設計成了能夠存儲數量中等的大文件,以支持數據處理,而Swift被設計成了一種比較通用的存儲解決方案,可以可靠地存儲數量很是多的大小不一的文件

註解2 -- 下面是轉載來的FastDFS和HDFS的對比:

主要是定位和應用場合不同。
hadoop的文件系統HDFS主要解決並行計算中分佈式存儲數據的問題。其單個數據文件一般很大,採用了分塊(切分)存儲的方式;
FastDFS主要用於大中網站,爲文件上傳和下載提供在線服務。因此在負載均衡、動態擴容等方面都支持得比較好,FastDFS不會對文件進行分快(切分)存儲。

一句話歸納就是:HDFS是給超大的數據集設計的, FASTDFS是專爲小文件設計的,FASTDFS有JAVA 的API

註解3: --- 下面是轉載來的流行的分佈式系統的常見應用場景: 

 

應用場景

可行系統

大數據離線/在線分析

HDFS、Swift、GlusterFS

電子商務

TFS、FastDFS、Dynamo、Swift、Tair

社交網絡

TFS、FastDFS、Dynamo、Swift、Tair

網絡硬盤

HDFS、FastDFS、Swift、GlusterFS

郵件服務

TFS、FastDFS、Dynamo、Swift、Tair

圖片服務

TFS、FastDFS、Dynamo、Swift、Tair

語音視頻服務

HDFS、FastDFS、Swift、GlusterFS

虛擬機調度和鏡像存儲

HDFS、Swift、GlusterFS

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  
 

 

三、雲計算平臺/解決方案(提供IaaS)

CouldStack: Apache的

OpenStack:  Rackspace 和 NASA 共同開發的,幫助服務商和企業內部實現相似於 Amazon EC2 和 S3 的雲基礎架構服務(Infrastructure as a Service, IaaS)

vCloud Director: VMware開發的用於部署雲的平臺

相關文章
相關標籤/搜索