Welcome 微信登录

首页 / 数据库 / MySQL / 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.下载Cassandrawget http://www.apache.org/dyn/closer.cgi?path=/cassandra/2.1.5/apache-cassandra-2.1.5-bin.tar.gz2.解压缩文件tar -zxvf apache-cassandra-2.1.5-bin.tar.gzmv  apache-cassandra-2.1.5-rc1 cassandra3.Cassandra的目录说明bin  存放与 Cassandra 操作的相关脚本conf  存放配置文件的目录interface  Cassandra 的 Thrift 接口定义文件,可以用于生成各种编程语言的接口代码Javadoc  源代码的 javadoclib  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.log6.创建文件存放数据和日志的目录# mkdir – p /data/db/lib/cassandra# mkdir – p /data/db/log/Cassandra7.配制完成后,启动 Cassandra# bin/CassandraINFO 09:29:12,888 Starting up server gossipINFO 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 results9.停止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 版下载见 http://www.linuxidc.com/Linux/2014-09/106689.htmNoSQL数据库的基础知识 http://www.linuxidc.com/Linux/2014-09/106690.htm企业应用NoSQL的关键 http://www.linuxidc.com/Linux/2014-10/107978.htm本文永久更新链接地址