cassandra[開源分散式NoSQL資料庫系統]

cassandra[開源分散式NoSQL資料庫系統]
cassandra[開源分散式NoSQL資料庫系統]
更多義項 ▼ 收起列表 ▲

Cassandra是一套開源分散式NoSQL資料庫系統。它最初由Facebook開發,用於儲存收件箱等簡單格式數據,集GoogleBigTable的數據模型與Amazon Dynamo的完全分散式的架構於一身Facebook於2008將 Cassandra 開源,此後,由於Cassandra良好的可擴展性,被Digg、Twitter等知名Web 2.0網站所採納,成為了一種流行的分散式結構化數據存儲方案。 Cassandra是一個混合型的非關係的資料庫,類似於Google的BigTable。其主要功能比Dynamo (分散式的Key-Value存儲系統)更豐富,但支持度卻不如文檔存儲MongoDB(介於關係資料庫和非關係資料庫之間的開源產品,是非關係資料庫當中功能最豐富,最像關係資料庫的。支持的數據結構非常鬆散,是類似json的bjson格式,因此可以存儲比較複雜的數據類型)。Cassandra最初由Facebook開發,後轉變成了開源項目。它是一個網路社交雲計算方面理想的資料庫。以Amazon專有的完全分散式的Dynamo為基礎,結合了Google BigTable基於列族(Column Family)的數據模型。P2P去中心化的存儲。很多方面都可以稱之為Dynamo 2.0。

主要特性

● 分散式

● 基於column的結構化

● 高伸展性

系統功能

Cassandra的主要特點就是它不是一個資料庫,而是由一堆資料庫節點共同構成的一個分散式網路服務,對Cassandra 的一個寫操作,會被複製到其他節點上去,對Cassandra的讀操作,也會被路由到某個節點上面去讀取。對於一個Cassandra集群來說,擴展性能是比較簡單的事情,只管在群集裡面添加節點就可以了。

這裡有很多理由來選擇Cassandra用於您的網站。和其他資料庫比較,有三個突出特點:

模式靈活

使用Cassandra,像文檔存儲,你不必提前解決記錄中的欄位。你可以在系統運行時隨意的添加或移除欄位。這是一個驚人的效率提升,特別是在大型部署上。

可擴展性

Cassandra是純粹意義上的水平擴展。為給集群添加更多容量,可以指向另一台電腦。你不必重啟任何進程,改變套用查詢,或手動遷移任何數據。

多數據中心

你可以調整你的節點布局來避免某一個數據中心起火,一個備用的數據中心將至少有每條記錄的完全複製。

一些使Cassandra提高競爭力的其他功能:

範圍查詢

如果你不喜歡全部的鍵值查詢,則可以設定鍵的範圍來查詢。

列表數據結構

在混合模式可以將超級列添加到5維。對於每個用戶的索引,這是非常方便的。

分散式寫操作

有可以在任何地方任何時間集中讀或寫任何數據。並且不會有任何單點失敗。

套用客戶facebook

安裝說明

以Cassandra 1.0.2為例。

檔案準備

下載Cassandra、Jre 1.6。(全部推薦最新版本)

配置Java

(1)安裝Jre的過程很簡單,這裡不做說明。

(2)在“系統屬性”中打開“環境變數”視窗,添加Java環境的系統變數:

JAVA_HOME : 一般是 C:\Program Files\Java\jre6,根據實際安裝路徑設定。

Cassandra

(1)解壓下載的Cassandra檔案包,放置到一個目錄中。

注意程式所在的路徑中不要包含空格,以避免造成載入某些檔案找不到的問題。

(2)在“系統屬性”中打開“環境變數”視窗,添加Cassandra運行環境的系統變數:

CASSANDRA_HOME: D:\apache-cassandra-1.0.2,根據實際安裝路徑設定。

(3)修改日誌存放地址

打開檔案: log4j-server.properties,修改

log4j.appender.R.File=D:\apache-cassandra-1.0.2\system.log,根據實際安裝路徑設定。

(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

根據實際安裝路徑設定。

(5)修改記憶體大小和CPU核心數設定

*)

# assume reasonable defaults for e.g. a modern desktop or

# cheap server

system_memory_in_mb="4096"

system_cpu_cores="4"

;;

按照實際情況設定。

啟動

在命令提示符工具中啟動Cassandra,用nodetool工具確認Cassandra已經啟動:

cassandra 啟動 cassandra 啟動
cassandra啟動確認 cassandra啟動確認

相關詞條

相關搜尋

熱門詞條

聯絡我們