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 ?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的关键

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/4ef1f43d9d4196482860efe340813ce8.html