Apache Cassandra數(shù)據(jù)庫 最新更新|軟件分類|軟件專題|手機(jī)版|論壇轉(zhuǎn)貼|軟件發(fā)布

您當(dāng)前所在位置:首頁編程開發(fā)數(shù)據(jù)庫類 → Apache Cassandra分布式數(shù)據(jù)庫 v3.11.7 官方最新版

Apache Cassandra分布式數(shù)據(jù)庫

v3.11.7 官方最新版

Apache Cassandra分布式數(shù)據(jù)庫
  • 軟件大小:36M
  • 軟件語言:中文
  • 軟件類型:國產(chǎn)軟件 / 數(shù)據(jù)庫類
  • 軟件授權(quán):免費(fèi)軟件
  • 更新時(shí)間:2020-11-02 09:24
  • 軟件等級(jí):4星
  • 應(yīng)用平臺(tái):WinAll
  • 軟件官網(wǎng):

ITMOP本地下載文件大。36M

點(diǎn)贊好評(píng)0%(0) 差評(píng)差評(píng)0%(0)

軟件介紹人氣軟件精品推薦相關(guān)文章網(wǎng)友評(píng)論下載地址

小編為您推薦:ApacheCassandra

Apache Cassandra是一個(gè)開源的混合型的非關(guān)系的數(shù)據(jù)庫、很早之前Facebook開發(fā),并且應(yīng)用于蘋果、360等全球很多公司,因?yàn)樗哂泻芏嗤愋彤a(chǎn)品的優(yōu)點(diǎn),除了免費(fèi),還有分布式、無中心、彈性可擴(kuò)展等優(yōu)勢,比Dynomite的功能更為豐富,很多網(wǎng)站都會(huì)應(yīng)用到。

官方介紹

當(dāng)您需要可伸縮性和高可用性而不影響性能時(shí),Apache Cassandra數(shù)據(jù)庫是正確的選擇。 線性可擴(kuò)展性和在商用硬件或云基礎(chǔ)架構(gòu)上經(jīng)過驗(yàn)證的容錯(cuò)能力使它成為關(guān)鍵任務(wù)數(shù)據(jù)的理想平臺(tái)。 Cassandra對(duì)跨多個(gè)數(shù)據(jù)中心的復(fù)制提供了一流的支持,為您的用戶提供了更低的延遲,并且知道您可以在區(qū)域中斷中幸存,因此安心無憂。

在Windows上安裝cassandra方法

一、 安裝配置

1)解壓下載后的程序apache-cassandra-0.7.3-bin.tar.gz到某個(gè)目錄,如d:\cassandra;

2)修改conf目錄下配置文件

A)使用記事本打開cassandra.yaml文件,修改如下參數(shù):

data_file_directories:

- /var/lib/cassandra/data

為 - d:\cassandra\data

注意:-后面需要有空格

commitlog_directory: /var/lib/cassandra/commitlog

為:commitlog_directory: d:\cassandra\commitlog

saved_caches_directory: /var/lib/cassandra/saved_caches

為:saved_caches_directory: d:\cassandra\saved_caches

B)使用記事本打開log4j-server.properties文件,修改如下參數(shù):

log4j.appender.R.File=/var/log/cassandra/system.log

為:log4j.appender.R.File=D:\Cassandra\logs

二、安裝jre

2.1 下載安裝程序

在https://www.oracle.com/technetwork/java/javase/downloads/index.html上下載jre的安裝程序;

jre和jdk區(qū)別:jre只是java環(huán)境,jdk包含了開發(fā)工具和jre;

2.2 直接雙擊執(zhí)行jre-6u25-windows-i586.exe進(jìn)行安裝,默認(rèn)安裝在C:\Program Files\Java\jre6目錄即可;

三、配置環(huán)境變量

3.1 打開windows的環(huán)境變量配置窗口

鼠標(biāo)右鍵點(diǎn)擊我的電腦,選擇屬性,在彈出界面點(diǎn)擊【高級(jí)】頁簽,再點(diǎn)擊【環(huán)境變量】按鈕;

3.2 配置JAVA_HOME環(huán)境變量

在“系統(tǒng)變量”添加JAVA_HOME,點(diǎn)擊【系統(tǒng)變量】下方的【新建】按鈕,輸入

變量名:JAVA_HOME

變量值:C:\Program Files\Java\jre6

3.3 配置Cassandra_HOME環(huán)境變量

在“系統(tǒng)變量”添加Cassandra_HOME,點(diǎn)擊【系統(tǒng)變量】下方的【新建】按鈕,輸入

變量名:Cassandra_HOME

變量值:D:\Cassandra\apache-cassandra-0.7.3

四、啟動(dòng)Cassandra

開始運(yùn)行中敲入cmd回車打開命令窗口,敲入cd D:\Cassandra\apache-cassandra-0.7.3\bin回車,敲入d:回車,轉(zhuǎn)到D:\Cassandra\apache-cassandra-0.7.3\bin目錄后,直接敲入cassandra就可以啟動(dòng)cassandra服務(wù)了,如下:

D:\Cassandra\apache-cassandra-0.7.3\bin>cassandra

Starting Cassandra Server

INFO 09:33:34,375 Logging initialized

INFO 09:33:34,390 Heap size: 1070399488/1070399488

INFO 09:33:34,390 JNA not found. Native methods will be disabled.

INFO 09:33:34,406 Loading settings from file:/D:/Cassandra/apache-cassandra-0.7.3/conf/cassandra.yaml

INFO 09:33:34,562 DiskaccessMode 'auto' determined to be standard, indexAccessMode is standard

INFO 09:33:34,765 Creating new commitlog segment d:\cassandra\commitlog\CommitLog-1306200814765.log

INFO 09:33:34,781 Couldn't detect any schema definitions in local storage.

INFO 09:33:34,781 Found table data in data directories. Consider using JMX to call org.apache.cassandra.service.StorageService.loadSchemaFromYaml().

INFO 09:33:34,796 No commitlog files found; skipping replay

INFO 09:33:34,828 Upgrading to 0.7. Purging hints if there are any. Old hints will be snapshotted.

INFO 09:33:34,828 Cassandra version: 0.7.3

INFO 09:33:34,828 Thrift API version: 19.4.0

INFO 09:33:34,843 Loading persisted ring state

INFO 09:33:34,843 Starting up server gossip

INFO 09:33:34,843 switching in a fresh Memtable for LocationInfo at CommitLogContext(file='d:\cassandra\commitlog\CommitLog-1306200814765.log', position=700)

INFO 09:33:34,859 Enqueuing flush of Memtable-LocationInfo@31556811(227 bytes,4 operations)

INFO 09:33:34,859 Writing Memtable-LocationInfo@31556811(227 bytes, 4 operations)

INFO 09:33:35,656 Completed flushing d:\cassandra\data\system\LocationInfo-f-1-Data.db (335 bytes)

WARN 09:33:35,718 Generated random token 152144483071909207899303400696660552068. Random tokens will result in an unbalanced ring; see https://wiki.apache.org/cassandra/Operations

INFO 09:33:35,718 switching in a fresh Memtable for LocationInfo at CommitLogContext(file='d:\cassandra\commitlog\CommitLog-1306200814765.log', position=996)

INFO 09:33:35,718 Enqueuing flush of Memtable-LocationInfo@22975191(53 bytes, 2operations)

INFO 09:33:35,734 Writing Memtable-LocationInfo@22975191(53 bytes, 2 operations)

INFO 09:33:35,828 Completed flushing d:\cassandra\data\system\LocationInfo-f-2-Data.db (163 bytes)

INFO 09:33:35,843 Will not load MX4J, mx4j-tools.jar is not in the classpath

INFO 09:33:35,890 Binding thrift service to localhost/127.0.0.1:9160

INFO 09:33:35,890 Using TFastFramedTransport with a max frame size of 15728640bytes.

INFO 09:33:35,890 Listening for thrift clients...

安裝目錄文件說明

各個(gè)文件或目錄介紹如下:

bin:這個(gè)目錄下包含了啟動(dòng) Cassandra 以及客戶端相關(guān)操作的可執(zhí)行文件,包括 query language shell(cqlsh)以及命令行界面(CLI)等客戶端。同時(shí)還包含運(yùn)行 nodetool 的相關(guān)腳本,操作 SSTables 的工具等等。

conf:這個(gè)目錄下面包含了 Cassandra 的配置文件。必須包含的配置文件包括:assandra.yaml 以及 logback.xml,這兩個(gè)文件分別是運(yùn)行 Cassandra 必須包含的配置文件以及日志相關(guān)配置文件。同時(shí)還包含 Cassandra 網(wǎng)絡(luò)拓?fù)渑渲梦募取?/p>

doc:這個(gè)目錄包含 CQL 相關(guān)的 html 文檔。

interface:這個(gè)文件夾下面只包含一個(gè)名為 cassandra.thrift 的文件。這個(gè)文件定義了基于 Thrift 語法的 RPC API,這個(gè) Thrift 主要用于在 Java, C++, php, Ruby, python, Perl, 以及 C# 等語言中創(chuàng)建相關(guān)客戶端,但是在 CQL 出現(xiàn)之后,Thrift API 在 Cassandra 3.2 版本開始標(biāo)記為 deprecated,并且會(huì)在 Cassandra 4.0 版本刪除。

javadoc:這個(gè)文件夾包含使用 JavaDoc 工具生成的 html 文檔。

lib:這個(gè)目錄包含 Cassandra 運(yùn)行時(shí)需要的所有外部庫。

pylib:這個(gè)目錄包含 cqlsh 運(yùn)行時(shí)需要使用的 Python 庫。

tools:這個(gè)目錄包含用于維護(hù) Cassandra 節(jié)點(diǎn)的相關(guān)工具。

NEWS.txt:這個(gè)文件包含當(dāng)前及之前版本的 release notes 相關(guān)信息。

CHANGES.txt:這個(gè)文件主要包含一些 bug fixes 信息。

功能特性

1、彈性可擴(kuò)展(Elastic Scalability)

可擴(kuò)展性是指系統(tǒng)架構(gòu)可以讓系統(tǒng)提供更多的服務(wù)而不降低使用性能的特性。僅僅通過給現(xiàn)有的機(jī)器增加硬件的容量、內(nèi)存進(jìn)行垂直擴(kuò)展,是最簡單的達(dá)到可擴(kuò)展性的手段。而水平擴(kuò)展則需要增加更多機(jī)器,每臺(tái)機(jī)器提供全部或部分?jǐn)?shù)據(jù),這樣所有主機(jī)都不必負(fù)擔(dān)全部業(yè)務(wù)請求。但軟件自己需要有內(nèi)部機(jī)制來保證集群中節(jié)點(diǎn)間的數(shù)據(jù)同步。

彈性可擴(kuò)展是指水平擴(kuò)展的特性,意即你的集群可以不間斷的情況下,方便擴(kuò)展或縮減服務(wù)的規(guī)模。這樣,你就不需要重新啟動(dòng)進(jìn)程,不必修改應(yīng)用的查詢,也無需自己手工重新均衡數(shù)據(jù)分布。在 Cassandra 里,你只要加入新的計(jì)算機(jī),Cassandra 就會(huì)自動(dòng)地發(fā)現(xiàn)它并讓它開始工作。

2、分布式和去中心化(Distributed and Decentralized)

Cassandra 是分布式的,這意味著它可以運(yùn)行在多臺(tái)機(jī)器上,并呈現(xiàn)給用戶一個(gè)一致的整體。事實(shí)上,在一個(gè)節(jié)點(diǎn)上運(yùn)行 Cassandra 是沒啥用的,雖然我們可以這么做,并且這可以幫助我們了解它的工作機(jī)制,但是你很快就會(huì)意識(shí)到,需要多個(gè)節(jié)點(diǎn)才能真正了解 Cassandra 的強(qiáng)大之處。它的很多設(shè)計(jì)和實(shí)現(xiàn)讓系統(tǒng)不僅可以在多個(gè)節(jié)點(diǎn)上運(yùn)行,更為多機(jī)架部署進(jìn)行了優(yōu)化,甚至一個(gè) Cassandra 集群可以運(yùn)行在分散于世界各地的數(shù)據(jù)中心上。你可以放心地將數(shù)據(jù)寫到集群的任意一臺(tái)機(jī)器上,Cassandra 都會(huì)收到數(shù)據(jù)。

對(duì)于很多存儲(chǔ)系統(tǒng)(比如 mysql, Bigtable),一旦你開始擴(kuò)展它,就需要把某些節(jié)點(diǎn)設(shè)為主節(jié)點(diǎn),其他則作為從節(jié)點(diǎn)。但 Cassandra 是無中心的,也就是說每個(gè)節(jié)點(diǎn)都是一樣的。與主從結(jié)構(gòu)相反,Cassandra 的協(xié)議是 P2P 的,并使用 gossip 來維護(hù)存活或死亡節(jié)點(diǎn)的列表。關(guān)于 gossip 可以參見 分布式原理:一文了解 Gossip 協(xié)議

去中心化這一事實(shí)意味著 Cassandra 不會(huì)存在單點(diǎn)失效。Cassandra 集群中的所有節(jié)點(diǎn)的功能都完全一樣, 所以不存在一個(gè)特殊的主機(jī)作為主節(jié)點(diǎn)來承擔(dān)協(xié)調(diào)任務(wù)。有時(shí)這被叫做服務(wù)器對(duì)稱(server symmetry)。

綜上所述,Cassandra 是分布式、無中心的,它不會(huì)有單點(diǎn)失效,所以支持高可用性。

3、可調(diào)節(jié)的一致性(Tuneable Consistency)

2000年,加州大學(xué)伯克利分校的 Eric Brewer 在 ACM 分布式計(jì)算原理會(huì)議提出了著名的 CAP 定律。CAP 定律表明,對(duì)于任意給定的系統(tǒng),只能在一致性(Consistency)、可用性(Availability)以及分區(qū)容錯(cuò)性(Partition Tolerance)之間選擇兩個(gè)。關(guān)于 CAP 定律的詳細(xì)介紹可參見《分布式系統(tǒng)一致性問題、CAP定律以及 BASE 理論》以及《一篇文章搞清楚什么是分布式系統(tǒng) CAP 定理》。所以 Cassandra 在設(shè)計(jì)的時(shí)候也不得不考慮這些問題,因?yàn)榉謪^(qū)容錯(cuò)性這個(gè)是每個(gè)分布式系統(tǒng)必須考慮的,所以只能在一致性和可用性之間做選擇,而 Cassandra 的應(yīng)用場景更多的是為了滿足可用性,所以我們只能犧牲一致性了。但是根據(jù) BASE 理論,我們其實(shí)可以通過犧牲強(qiáng)一致性獲得可用性。

Cassandra 提供了可調(diào)節(jié)的一致性,允許我們選定需要的一致性水平與可用性水平,在二者間找到平衡點(diǎn)。因?yàn)榭蛻舳丝梢钥刂圃诟碌竭_(dá)多少個(gè)副本之前,必須阻塞系統(tǒng)。這是通過設(shè)置副本因子(replication factor)來調(diào)節(jié)與之相對(duì)的一致性級(jí)別。

通過副本因子(replication factor),你可以決定準(zhǔn)備犧牲多少性能來換取一致性。副本因子是你要求更新在集群中傳播到的節(jié)點(diǎn)數(shù)(注意,更新包括所有增加、刪除和更新操作)。

客戶端每次操作還必須設(shè)置一個(gè)一致性級(jí)別(consistency level)參數(shù),這個(gè)參數(shù)決定了多少個(gè)副本寫入成功才可以認(rèn)定寫操作是成功的,或者讀取過程中讀到多少個(gè)副本正確就可以認(rèn)定是讀成功的。這里 Cassandra 把決定一致性程度的權(quán)利留給了客戶自己。

所以,如果需要的話,你可以設(shè)定一致性級(jí)別和副本因子相等,從而達(dá)到一個(gè)較高的一致性水平,不過這樣就必須付出同步阻塞操作的代價(jià),只有所有節(jié)點(diǎn)都被更新完成才能成功返回一次更新。而實(shí)際上,Cassandra 一般都不會(huì)這么來用,原因顯而易見(這樣就喪失了可用性目標(biāo),影響性能,而且這不是你選擇 Cassandra 的初衷)。而如果一個(gè)客戶端設(shè)置一致性級(jí)別低于副本因子的話,即使有節(jié)點(diǎn)宕機(jī)了,仍然可以寫成功。

總體來說,Cassandra 更傾向于 CP,雖然它也可以通過調(diào)節(jié)一致性水平達(dá)到 AP;但是不推薦你這么設(shè)置。

4、高可用和容錯(cuò)(High Availability and Fault Tolerance)

從一般架構(gòu)的角度來看,系統(tǒng)的可用性是由滿足請求的能力來量度的。但計(jì)算機(jī)可能會(huì)有各種各樣的故障,從硬件器件故障到網(wǎng)絡(luò)中斷都有可能。如何計(jì)算機(jī)都可能發(fā)生這些情況,所以它們一般都有硬件冗余,并在發(fā)生故障事件的情況下會(huì)自動(dòng)響應(yīng)并進(jìn)行熱切換。對(duì)一個(gè)需要高可用的系統(tǒng),它必須由多臺(tái)聯(lián)網(wǎng)的計(jì)算機(jī)構(gòu)成,并且運(yùn)行于其上的軟件也必須能夠在集群條件下工作,有設(shè)備能夠識(shí)別節(jié)點(diǎn)故障,并將發(fā)生故障的中端的功能在剩余系統(tǒng)上進(jìn)行恢復(fù)。

Cassandra 就是高可用的。你可以在不中斷系統(tǒng)的情況下替換故障節(jié)點(diǎn),還可以把數(shù)據(jù)分布到多個(gè)數(shù)據(jù)中心里,從而提供更好的本地訪問性能,并且在某一數(shù)據(jù)中心發(fā)生火災(zāi)、洪水等不可抗災(zāi)難的時(shí)候防止系統(tǒng)徹底癱瘓。

5、面向行(Row-Oriented)

Cassandra 經(jīng)常被看做是一種面向列(Column-Oriented)的數(shù)據(jù)庫,這也并不算錯(cuò)。它的數(shù)據(jù)結(jié)構(gòu)不是關(guān)系型的,而是一個(gè)多維稀疏哈希表。稀疏(Sparse)意味著任何一行都可能會(huì)有一列或者幾列,但每行都不一定(像關(guān)系模型那樣)和其他行有一樣的列。每行都有一個(gè)唯一的鍵值,用于進(jìn)行數(shù)據(jù)訪問。所以,更確切地說,應(yīng)該把 Cassandra 看做是一個(gè)有索引的、面向行的存儲(chǔ)系統(tǒng)。

Cassandra 的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)基本可以看做是一個(gè)多維哈希表。這意味著你不必事先精確地決定你的具體數(shù)據(jù)結(jié)構(gòu)或是你的記錄應(yīng)該包含哪些具體字段。這特別適合處于草創(chuàng)階段,還在不斷增加或修改服務(wù)特性的應(yīng)用。而且也特別適合應(yīng)用在敏捷開發(fā)項(xiàng)目中,不必進(jìn)行長達(dá)數(shù)月的預(yù)先分析。對(duì)于使用 Cassandra 的應(yīng)用,如果業(yè)務(wù)發(fā)生變化了,只需要在運(yùn)行中增加或刪除某些字段就行了,不會(huì)造成服務(wù)中斷。

當(dāng)然, 這不是說你不需要考慮數(shù)據(jù)。相反,Cassandra 需要你換個(gè)角度看數(shù)據(jù)。在 RDBMS 里, 你得首先設(shè)計(jì)一個(gè)完整的數(shù)據(jù)模型, 然后考慮查詢方式, 而在 Cassandra 里,你可以首先思考如何查詢數(shù)據(jù),然后提供這些數(shù)據(jù)就可以了。

6、靈活的模式(Flexible Schema)

Cassandra 的早期版本支持無模式(schema-free)數(shù)據(jù)模型,可以動(dòng)態(tài)定義新的列。 無模式數(shù)據(jù)庫(如 Bigtable 和 MongoDB)在訪問大量數(shù)據(jù)時(shí)具有高度可擴(kuò)展性和高性能的優(yōu)勢。 無模式數(shù)據(jù)庫的主要缺點(diǎn)是難以確定數(shù)據(jù)的含義和格式,這限制了執(zhí)行復(fù)雜查詢的能力。

為了解決這些問題,Cassandra 引入了 Cassandra Query Language(CQL),它提供了一種通過類似于結(jié)構(gòu)化查詢語言(SQL)的語法來定義模式。最初,CQL 是作為 Cassandra 的另一個(gè)接口,并且基于 Apache Thrift 項(xiàng)目提供無模式的接口。在這個(gè)過渡階段,術(shù)語“模式可選”(Schema-optional)用于描述數(shù)據(jù)模型,我們可以使用 CQL 的模式來定義。并且可以通過 Thrift API 實(shí)現(xiàn)動(dòng)態(tài)擴(kuò)展以此添加新的列。在此期間,基礎(chǔ)數(shù)據(jù)存儲(chǔ)模型是基于 Bigtable 的。

從 3.0 版本開始,不推薦使用基于 Thrift API 的動(dòng)態(tài)列創(chuàng)建的 API,并且 Cassandra 底層存儲(chǔ)已經(jīng)重新實(shí)現(xiàn)了,以更緊密地與 CQL 保持一致。Cassandra 并沒有完全限制動(dòng)態(tài)擴(kuò)展架構(gòu)的能力,但它的工作方式卻截然不同。CQL 集合(比如 list、set、尤其是 map)提供了在無結(jié)構(gòu)化的格式里面添加內(nèi)容的能力,從而能擴(kuò)展現(xiàn)有的模式。CQL 還提供了改變列的類型的能力,以支持 JSON 格式的文本的存儲(chǔ)。

因此,描述 Cassandra 當(dāng)前狀態(tài)的最佳方式可能是它支持靈活的模式。

7、高性能(High Performance)

Cassandra 在設(shè)計(jì)之初就特別考慮了要充分利用多處理器和多核計(jì)算機(jī)的性能,并考慮在分布于多個(gè)數(shù)據(jù)中心的大量這類服務(wù)器上運(yùn)行。它可以一致而且無縫地?cái)U(kuò)展到數(shù)百臺(tái)機(jī)器,存儲(chǔ)數(shù) TB 的數(shù)據(jù)。Cassandra 已經(jīng)顯示出了高負(fù)載下的良好表現(xiàn),在一個(gè)非常普通的工作站上,Cassandra 也可以提供非常高的寫吞吐量。而如果你增加更多的服務(wù)器,你還可以繼續(xù)保持 Cassandra 所有的特性而無需犧牲性能。

Cassandra 的應(yīng)用場景

我們已經(jīng)介紹了 Cassandra 的主要特點(diǎn),對(duì) Cassandra 的長處有了一定的理解。盡管 Cassandra 設(shè)計(jì)精巧,功能出色,但也不能勝任所有的工作。所以我們來介紹一下 Cassandra 最適合的場景。

大規(guī)模部署

你可能不會(huì)開著一輛輕型的小卡車去取干洗的衣服,小卡車顯然不適合這種工作。Cassandra 的很多精巧設(shè)計(jì)都專注于高可用、可調(diào)一致性、P2P 協(xié)議、無縫擴(kuò)展等,這些都是 Cassandra 的賣點(diǎn)。這些特性在單節(jié)點(diǎn)工作時(shí)都是沒有意義的,更無法實(shí)現(xiàn)它的全部能力。

但是,單節(jié)點(diǎn)關(guān)系數(shù)據(jù)庫在很多情況下可能正是我們需要的。所以你需要做一些評(píng)估?紤]你的期望的流量、吞吐需求以及 SAL 等。關(guān)于評(píng)估沒有什么硬性的指標(biāo)和要求。但如果你認(rèn)為有幾種關(guān)系型數(shù)據(jù)庫可以很好地應(yīng)付你的流量,提供不錯(cuò)的性能,那可能選關(guān)系型數(shù)據(jù)庫更好。簡單地說,這是因?yàn)?RDBMS 更易于在單機(jī)上運(yùn)行,對(duì)你來說也更熟悉。

但是,如果你認(rèn)為需要至少幾個(gè)節(jié)點(diǎn)才能支撐你的業(yè)務(wù),那 Cassandra 就是個(gè)不錯(cuò)的選擇。如果你的應(yīng)用可能需要數(shù)十個(gè)節(jié)點(diǎn),那 Cassandra 可能就是個(gè)很棒的選擇了。

寫密集、統(tǒng)計(jì)和分析型工作

考慮一下你的應(yīng)用的讀寫比例,Cassandra 是為優(yōu)異的寫吞吐量而特別優(yōu)化的。

許多早期使用 Cassandra 的產(chǎn)品都用于存儲(chǔ)用戶狀態(tài)更新、社交網(wǎng)絡(luò)、建議/評(píng)價(jià)以及應(yīng)用統(tǒng)計(jì)等。這些都是 Cassandra 很好的應(yīng)用場景,因?yàn)檫@些應(yīng)用大都是寫多于讀的,并且更新可能隨時(shí)發(fā)生并伴有突發(fā)的峰值。事實(shí)上,支撐應(yīng)用負(fù)載需要很高的多客戶線程并發(fā)寫性能,這正是 Cassandra 的主要特性。

根據(jù)項(xiàng)目的 wiki,Cassandra 已經(jīng)被用于開發(fā)了多種不同的應(yīng)用,包括窗口化的時(shí)間序列數(shù)據(jù)庫,用于文檔搜索的反向索引,以及分布式任務(wù)優(yōu)先級(jí)隊(duì)列。

地區(qū)分布

Cassandra 直接支持多地分布的數(shù)據(jù)存儲(chǔ),Cassandra 可以很容易配置成將數(shù)據(jù)分布到多個(gè)數(shù)據(jù)中心的存儲(chǔ)方式。如果你有一個(gè)全球部署的應(yīng)用,那么讓數(shù)據(jù)貼近用戶會(huì)獲得不錯(cuò)的性能收益,Cassandra 正適合這種應(yīng)用場合。

變化的應(yīng)用

如果你正在“初創(chuàng)階段”,業(yè)務(wù)會(huì)不斷改進(jìn),Cassandra 這種靈活的模式的數(shù)據(jù)模型可能更適合你。這讓你的數(shù)據(jù)庫能更快地跟上業(yè)務(wù)改進(jìn)的步伐。

為什么會(huì)誕生 Apache Cassandra

2007 年 Facebook 為了解決消息收件箱搜索問題( Inbox Search problem)而開始設(shè)計(jì) Cassandra 項(xiàng)目。 當(dāng)時(shí) Facebook 遇到了傳統(tǒng)的方法難以解決的超大數(shù)據(jù)量存儲(chǔ)可擴(kuò)展性問題。具體來說,項(xiàng)目團(tuán)隊(duì)需要處理大量的消息副本、消息的反向索引等不同形式的數(shù)據(jù),需要處理很多隨機(jī)讀和并發(fā)隨機(jī)寫操作。

該團(tuán)隊(duì)由 Jeff Hammerbacher 領(lǐng)導(dǎo),核心工程師包括 Avinash Lakshman,Karthik Ranganathan 和搜索團(tuán)隊(duì)的 Prashant Malik 。2008年7月 Cassandra 的代碼被作為開源項(xiàng)目發(fā)布到 Google Code。雖然代碼在2008年作為 Google Code 的一個(gè)項(xiàng)目,但是這段時(shí)間基本上只有 Facebook 工程師來更新代碼,基本上沒有形成社區(qū)。所以在2009年3月,Cassandra 被轉(zhuǎn)移到 Apache 孵化器項(xiàng)目,并在2010年2月17日,它被投票成為一個(gè)頂級(jí)項(xiàng)目。 在 Apache Cassandra Wiki 上,您可以找到 committers 列表,其中許多人自 2010/2011 年以來就一直參與該項(xiàng)目。 committers 主要來自 Twitter,LinkedIn,Apple,其中還包括了許多獨(dú)立開發(fā)者。

Cassandra 的設(shè)計(jì)很大程度受 Amazon Dynamo 的影響,具體可參見《Dynamo: Amazon's Highly Available Key-value Store》。2010年由 Facebook 的 Lakshman 和 Malik 在 ACM 首次發(fā)表了 Cassandra 的論文 《Cassandra: a decentralized structured storage system》,向全世界介紹了 Cassandra。

隨著商界對(duì) Cassandra 的興趣增加,對(duì) Cassandra 的生產(chǎn)支持變得越來越明顯。2010年4月 Cassandra 的 Apache 項(xiàng)目主席 Jonathan Ellis 和其同事 Matt Pfeil 成立了一家名為 DataStax 公司(最初名為 Riptano)。DataStax 雇傭了多名 Cassandra Committer,為 Cassandra 項(xiàng)目提供了相關(guān)支持,并引領(lǐng)其發(fā)展。

誰在使用 Cassandra

Cassandra 在全世界有多達(dá) 1500 家公司使用:

蘋果的 Cassandra 集群達(dá)到 75,000 節(jié)點(diǎn),存儲(chǔ)了 10PB 的數(shù)據(jù);

Netflix 的 Cassandra 集群達(dá)到 2,500 個(gè)節(jié)點(diǎn),存儲(chǔ)了多達(dá) 420TB 的數(shù)據(jù);

宜搜的 Cassandra 集群達(dá)到 270 個(gè)節(jié)點(diǎn),存儲(chǔ)多達(dá) 300TB 的數(shù)據(jù);

eBay 的 Cassandra 集群達(dá)到 100 個(gè)節(jié)點(diǎn),存儲(chǔ)多達(dá) 250TB 的數(shù)據(jù);

360 的 Cassandra 集群達(dá)到 1500 個(gè)節(jié)點(diǎn);

餓了么的 Cassandra 集群達(dá)到 100 個(gè)節(jié)點(diǎn)。

Apache Cassandra 可以在 Linux、Unix、Mac OS 以及 Windows 上進(jìn)行安裝

更多>>軟件截圖

推薦軟件

其他版本下載

    精品推薦Apache

    Apache
    更多 (57個(gè)) >>ApacheApache是世界使用排名第一的Web服務(wù)器軟件,apache哪個(gè)版本穩(wěn)定?apache下載哪個(gè)版本?itmop小編為大家整理了apache歷史版本下載大全,包括apache中文版、最新版、最穩(wěn)定版本地址,適合windowns、xp、linux系統(tǒng)的軟件!Ap

    相關(guān)文章

    下載地址

    • Apache Cassandra分布式數(shù)據(jù)庫 v3.11.7 官方最新版

    查看所有評(píng)論>>網(wǎng)友評(píng)論

    發(fā)表評(píng)論

    (您的評(píng)論需要經(jīng)過審核才能顯示) 網(wǎng)友粉絲QQ群號(hào):203046401

    查看所有0條評(píng)論>>

    更多>>猜你喜歡