Cassandra是一套開源分布式NoSQL數(shù)據(jù)庫系統(tǒng)。它最初由Facebook開發(fā),用于儲存收件箱等簡單格式數(shù)據(jù),集谷歌BigTable的數(shù)據(jù)模型與Amazon Dynamo的完全分布式的架構(gòu)于一身Facebook于2008將 Cassandra 開源,此后,由于Cassandra良好的可擴(kuò)展性,被Digg、Twitter等知名Web 2.0網(wǎng)站所采納的,成為了一種流行的分布式結(jié)構(gòu)化數(shù)據(jù)存儲方案。
Cassandra是一個混合型的非關(guān)系的數(shù)據(jù)庫,類似于谷歌的BigTable。其主要功能比Dynamo (分布式的Key-Value存儲系統(tǒng))更豐富,但支持度卻不如文檔存儲mongodb(介于關(guān)系數(shù)據(jù)庫和非關(guān)系數(shù)據(jù)庫之間的開源產(chǎn)品,是非關(guān)系數(shù)據(jù)庫當(dāng)中功能最豐富,最像關(guān)系數(shù)據(jù)庫的。支持的數(shù)據(jù)結(jié)構(gòu)非常松散,是類似json的bjson格式,因此可以存儲比較復(fù)雜的數(shù)據(jù)類型)。Cassandra最初由Facebook開發(fā),后轉(zhuǎn)變成了開源項目。它是一個網(wǎng)絡(luò)社交云計算方面理想的數(shù)據(jù)庫。以Amazon專有的完全分布式的Dynamo為基礎(chǔ),結(jié)合了谷歌 BigTable基于列族(Column Family)的數(shù)據(jù)模型。P2P去中心化的存儲。很多方面都可以稱之為Dynamo 2.0。
基本介紹
● 分布式
● 基于column的結(jié)構(gòu)化
● 高伸展性
系統(tǒng)功能
Cassandra的主要特點就是它不是一個數(shù)據(jù)庫,而是由一堆數(shù)據(jù)庫節(jié)點共同構(gòu)成的一個分布式網(wǎng)絡(luò)服務(wù),對Cassandra 的一個寫操作,會被復(fù)制到其他節(jié)點上去,對Cassandra的讀操作,也會被路由到某個節(jié)點上面去讀取。對于一個Cassandra集群來說,擴(kuò)展性能是比較簡單的事情,只管在群集里面添加節(jié)點就可以了。
這里有很多理由來選擇Cassandra用于您的網(wǎng)站。和其他數(shù)據(jù)庫比較,有三個突出特點:
模式靈活
使用Cassandra,像文檔存儲,你不必提前解決記錄中的字段。你可以在系統(tǒng)運(yùn)行時隨意的添加或移除字段。這是一個驚人的效率提升,特別是在大型部署上。
可擴(kuò)展性
Cassandra是純粹意義上的水平擴(kuò)展。為給集群添加更多容量,可以指向另一臺電腦。你不必重啟任何進(jìn)程,改變應(yīng)用查詢,或手動遷移任何數(shù)據(jù)。
多數(shù)據(jù)中心
你可以調(diào)整你的節(jié)點布局來避免某一個數(shù)據(jù)中心起火,一個備用的數(shù)據(jù)中心將至少有每條記錄的完全復(fù)制。
一些使Cassandra提高競爭力的其他功能:
范圍查詢
如果你不喜歡全部的鍵值查詢,則可以設(shè)置鍵的范圍來查詢。
列表數(shù)據(jù)結(jié)構(gòu)
在混合模式可以將超級列添加到5維。對于每個用戶的索引,這是非常方便的。
分布式寫操作
有可以在任何地方任何時間集中讀或?qū)懭魏螖?shù)據(jù)。并且不會有任何單點失敗。
應(yīng)用客戶facebook
安裝說明
以Cassandra 1.0.2為例。
文件準(zhǔn)備
下載Cassandra、Jre 1.6。(全部推薦最新版本)
配置Java
(1)安裝JRE的過程很簡單,這里不做說明。
(2)在“系統(tǒng)屬性”中打開“環(huán)境變量”窗口,添加Java環(huán)境的系統(tǒng)變量:
JAVA_HOME : 一般是 C:\Program Files\Java\jre6,根據(jù)實際安裝路徑設(shè)置。
Cassandra
(1)解壓下載的Cassandra文件包,放置到一個目錄中。
注意程序所在的路徑中不要包含空格,以避免造成加載某些文件找不到的問題。
(2)在“系統(tǒng)屬性”中打開“環(huán)境變量”窗口,添加Cassandra運(yùn)行環(huán)境的系統(tǒng)變量:
CASSANDRA_HOME: D:\apache-cassandra-1.0.2,根據(jù)實際安裝路徑設(shè)置。
(3)修改日志存放地址
打開文件: log4j-server.properties,修改
log4j.appender.R.File=D:\apache-cassandra-1.0.2\system.log,根據(jù)實際安裝路徑設(shè)置。
(4)修改其它地址
打開文件:cassandra.yaml,修改:
data_file_directories:
- D:\apache-cassandra-1.0.2\data
commitlog_directory: D:\apache-cassandra-1.0.2\commitlog
saved_caches_directory: D:\apache-cassandra-1.0.2\saved_caches
根據(jù)實際安裝路徑設(shè)置。
(5)修改內(nèi)存大小和CPU核心數(shù)設(shè)置
*)
# assume reasonable defaults for Evil Genius a modern desktop or
# cheap server
system_memory_in_mb="4096"
system_cpu_cores="4"
;;
按照實際情況設(shè)置。
啟動
在命令提示符工具中啟動Cassandra,用nodetool工具確認(rèn)Cassandra已經(jīng)啟動:
參考資料 >
Cassandra -去中心化的結(jié)構(gòu)化存儲系統(tǒng).新浪研發(fā)中心.2014-02-24
Cassandra0.7的配置文件.51cto.2014-02-24
Windows下安裝配置Cassandra.新浪.2014-02-24