Cassandra分布式NoSQL資料庫安裝部署指導
Apache Cassandra是一套開源分布式 Key-Value 儲存系統。它最初由 Facebook 開發用於儲存特別大的資料。Cassandra適合於即時交易處理和提供互動型資料。Cassandra的資料模型是基於列族(Column Family)的四維或五維模型。它借鑒了 Amazon 的 Dynamo 和 Google's BigTable 的資料結構和功能特點,採用 Memtable 和 SSTable 的方式進行儲存。在 Cassandra 寫入資料之前,需要先記錄日誌 ( CommitLog ),然後資料開始寫入到 Column Family 對應的 Memtable 中,Memtable 是一種按照 key 排序資料的記憶體結構,在滿足一定條件時,再把 Memtable的資料批量的重新整理到磁碟上,儲存為SSTable。本文主要來介紹一下關於Cassandra的安裝配置方法。
註:本文預設您已經安裝了JDK環境
一、Cassandra節點的安裝和配置
1.下載Cassandra
wget http://www.apache.org/dyn/closer.cgi?path=/cassandra/2.1.5/apache-cassandra-2.1.5-bin.tar.gz
2.解壓縮檔案
tar -zxvf apache-cassandra-2.1.5-bin.tar.gz
mv apache-cassandra-2.1.5-rc1 cassandra
3.Cassandra的目錄說明
bin 存放與 Cassandra 操作的相關指令碼
conf 存放設定檔的目錄
interface Cassandra 的 Thrift 介面定義檔案,可以用於產生各種程式設計語言的介面代碼
Javadoc 原始碼的 javadoc
lib Cassandra 運行時所需的 jar 包
4.配製Cassandra節點的資料存放區目錄
#修改配製檔案 storage-conf.xml
#cd conf
<CommitLogDirectory>/data/db/lib/cassandra/commitlog</CommitLogDirectory>
<DataFileDirectories>
<DataFileDirectory>/data/db/lib/cassandra/data</DataFileDirectory>
</DataFileDirectories>
5.修改日誌配製檔案 log4j.properties
# 日誌路徑
#log4j.appender.R.File=/var/log/cassandra/system.log
# 配置後的日誌路徑 :
log4j.appender.R.File=/data/db/log/cassandra/system.log
6.建立檔案存放資料和日誌的目錄
# mkdir – p /data/db/lib/cassandra
# mkdir – p /data/db/log/Cassandra
7.配製完成後,啟動 Cassandra
# bin/Cassandra
INFO 09:29:12,888 Starting up server gossip
INFO 09:29:12,992 Binding thrift service to localhost/127.0.0.1:9160
#看到這兩行啟動回顯資訊時,說明 Cassandra 已啟動成功。
8.串連到 Cassandra 並添加、擷取資料
#bin/cassandra-cli --host localhost --port 9160
#cassandra>
#cassandra> set Keyspace1.Standard2['studentA']['age'] = '18'
#Value inserted
#cassandra> get Keyspace1.Standard2['studentA']
#=> (column=age, value=18, timestamp=1272357045192000)
#Returned 1 results
9.停止Cassandra服務
# ps -ef | grep cassandra
# kill -9 16250
二、補充
Cassandra配製檔案storage-conf.xml相關配製說明
#storage-conf.xml
<!-- 叢集時顯示的節點名稱 -->
<ClusterName>Test Cluster</ClusterName>
<!-- 節點啟動時,是否自動加入到叢集中,預設為 false -->
<AutoBootstrap>false</AutoBootstrap>
<!-- 叢集的節點配製 -->
<Seeds> <Seed>127.0.0.1</Seed> </Seeds>
<!-- 節點之間通迅的監聽地址 -->
<ListenAddress>localhost</ListenAddress>
<!-- 基於 Thrift 的 cassandra 用戶端監聽地址,叢集時設為:0.0.0.0 表示偵聽所有用戶端 , 預設為:localhost -->
<ThriftAddress>localhost</ThriftAddress>
<!-- 用戶端串連的連接埠 -->
<ThriftPort>9160</ThriftPort>
<!-- FlushDataBufferSizeInMB 將 memtables 上的資料寫入在 Disk 上,超過設定好的限制大小時 ( 預設 32M),則將資料寫入磁碟,
FlushIndexBufferSizeInMB 超過設定的時間長度(預設 8 分鐘)後,將 memtables 由的資料寫入磁碟中-->
<FlushDataBufferSizeInMB>32</FlushDataBufferSizeInMB>
<FlushIndexBufferSizeInMB>8</FlushIndexBufferSizeInMB>
<!-- 節點之間的日誌記錄同步模式。預設:periodic, 對應配製 CommitLogSyncPeriodInMS 啟動 batch 時,則對應的配製CommitLogSyncBatchWindowInMS -->
<CommitLogSync>periodic</CommitLogSync>
<!-- 預設為每 10 秒同步一次日誌記錄 -->
<CommitLogSyncPeriodInMS>10000</CommitLogSyncPeriodInMS>
<!-- <CommitLogSyncBatchWindowInMS>1</CommitLogSyncBatchWindowInMS> -->
《NoSQL資料庫入門》,高清PDF 版下載見
NoSQL資料庫的基礎知識
公司專屬應用程式NoSQL的關鍵
本文永久更新連結地址: