No Sql 读书笔记1(安装、配置、ruby使用cassandra)
2011-01-04 15:24
495 查看
看来我始终是于数据脱不了干系,心里也是始终渴望这探求这一领域。
本科自学数据挖掘,当初考研也是数据挖掘,继走马观花地看了BigTable的架构之后,终于真正踏上了研究之旅,并希望能在近期能真正用起来。实践中再巩固,提升。
今天看的文章是:
分布式 Key-Value 存储系统:Cassandra 入门
http://www.ibm.com/developerworks/cn/opensource/os-cn-cassandra/
Cassandra 的数据模型是基于列族(Column Family)的四维或五维模型。它借鉴了 Amazon 的 Dynamo 和
Google's BigTable 的数据结构和功能特点,采用 Memtable 和 SSTable 的方式进行存储。在 Cassandra
写入数据之前,需要先记录日志 ( CommitLog ),然后数据开始写入到 Column Family 对应的 Memtable
中,Memtable 是一种按照 key 排序数据的内存结构,在满足一定条件时,再把 Memtable 的数据批量的刷新到磁盘上,存储为
SSTable 。
//Memtable
//SSTable
//CommitLog
这文章原理性的东西不多,主要是些配置以及使用的细节。
Cassandra 节点的安装和配置
获取 Cassandra
Cassandra
的目录说明
配制 Cassandra
节点的数据存储目录和日志目录
修改配制文件 storage-conf.xml:
默认的内容
配置后的内容
修改日志配制文件 log4j.properties:
log4j.properties 配置
创建文件存放数据和日志的目录
配制完成后,启动 Cassandra
显示信息
看到这两行启动回显信息时,说明 Cassandra 已启动成功。
连接到 Cassandra 并添加、获取数据
Cassandra 的 bin 目录已自带了命令行连接工具 cassandra-cli,可使用它连接到
Cassandra,并添加、读取数据。
连接到 Cassandra,并添加、读取数据
停止 Cassandra 服务
查出 Cassandra 的 pid:16328
Cassandra 配制文件
storage-conf.xml 相关配制介绍
清单 1. storage-conf.xml 节点配制说明清单
本科自学数据挖掘,当初考研也是数据挖掘,继走马观花地看了BigTable的架构之后,终于真正踏上了研究之旅,并希望能在近期能真正用起来。实践中再巩固,提升。
今天看的文章是:
分布式 Key-Value 存储系统:Cassandra 入门
http://www.ibm.com/developerworks/cn/opensource/os-cn-cassandra/Cassandra 的数据模型是基于列族(Column Family)的四维或五维模型。它借鉴了 Amazon 的 Dynamo 和
Google's BigTable 的数据结构和功能特点,采用 Memtable 和 SSTable 的方式进行存储。在 Cassandra
写入数据之前,需要先记录日志 ( CommitLog ),然后数据开始写入到 Column Family 对应的 Memtable
中,Memtable 是一种按照 key 排序数据的内存结构,在满足一定条件时,再把 Memtable 的数据批量的刷新到磁盘上,存储为
SSTable 。
//Memtable
//SSTable
//CommitLog
这文章原理性的东西不多,主要是些配置以及使用的细节。
Cassandra 节点的安装和配置
获取 Cassandra
# wget http://labs.renren.com/apache-mirror/cassandra/0.6.0/apache- cassandra-0.6.0-rc1-bin.tar.gz # tar -zxvf apache-cassandra-0.6.0-rc1-bin.tar.gz # mv apache-cassandra-0.6.0-rc1 cassandra # ls Cassandra |
的目录说明
bin | 存放与 Cassandra 操作的相关脚本 |
conf | 存放配置文件的目录 |
interface | Cassandra 的 Thrift 接口定义文件,可以用于生成各种编程语言的接口代码 |
Javadoc | 源代码的 javadoc |
lib | Cassandra 运行时所需的 jar 包 |
节点的数据存储目录和日志目录
修改配制文件 storage-conf.xml:
默认的内容
<CommitLogDirectory>/var/lib/cassandra/commitlog</CommitLogDirectory> <DataFileDirectories> <DataFileDirectory>/var/lib/cassandra/data</DataFileDirectory> </DataFileDirectories> |
<CommitLogDirectory>/data3/db/lib/cassandra/commitlog</CommitLogDirectory> <DataFileDirectories> <DataFileDirectory>/data3/db/lib/cassandra/data</DataFileDirectory> </DataFileDirectories> |
log4j.properties 配置
# 日志路径 #log4j.appender.R.File=/var/log/cassandra/system.log # 配置后的日志路径 : log4j.appender.R.File=/data3/db/log/cassandra/system.log |
# mkdir – p /data3/db/lib/cassandra # mkdir – p /data3/db/log/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 并添加、获取数据
Cassandra 的 bin 目录已自带了命令行连接工具 cassandra-cli,可使用它连接到
Cassandra,并添加、读取数据。
连接到 Cassandra,并添加、读取数据
# bin/cassandra-cli --host localhost --port 9160 Connected to: "Test Cluster" on localhost/9160 Welcome to cassandra CLI. Type 'help' or '?' for help. Type 'quit' or 'exit' to quit. cassandra> cassandra> set Keyspace1.Standard2['studentA']['age'] = '18' Value inserted cassandra> get Keyspace1.Standard2['studentA'] => (column=age, value=18, timestamp=1272357045192000) Returned 1 results |
查出 Cassandra 的 pid:16328
# ps -ef | grep cassandra # kill 16328 |
storage-conf.xml 相关配制介绍
清单 1. 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> --> 清单 6. Ruby 连接 Cassandra,写入并读取数据 > require 'rubygems' > require 'cassandra' # 建立数据库连接 > cdb = Cassandra.new('Keyspace1',"192.168.10.1:9160", :retries => 3) # 写入数据 > cdb.insert(:Standard1, 'studentA', {'age' => '18'}) # 读取数据 > cdb.get(:Standard1, :studentA) # 关闭连接 > cdb.disconnect //Ruby果然是最简洁的。 //集群还是算了,以后有需求再看吧,选错文章了,本来打算看一些原理方面的文章,结果来了个实战的,再找找。
相关文章推荐
- CocoaPods安装和使用教程以及RVM、RuBy的安装配置
- maven笔记(maven使用与安装,eclipse中maven的配置,maven项目的创建)
- Linux学习笔记之 RPM包管理、Yum安装,配置及使用
- docker1.12安装配置及使用笔记
- 使用 XForms 和 Ruby on Rails 开发小型门诊管理系统,第 1 部分: 安装配置 IBM DB2 9 pureXML
- TFS安装使用笔记——TFS非域单服务器配置外网访问
- Ruby On Rails上手笔记(安装使用全过程)
- Fedora桌面系统使用笔记 安装好Fedora后系统配置及相关软件的安装
- Ubuntu10.04安装配置笔记-使用crosstool建立交叉编译器
- C++/GDI+ 学习笔记(一)——安装、配置&使用
- FreeBSD学习笔记12-pureftpd使用详解(1)-安装、配置、实现匿名登录
- C++/GDI+ 学习笔记(一)——安装、配置&使用
- nutch的安装、配置以及使用(学习笔记)
- CocoaPods安装和使用教程以及RVM、RuBy的安装配置以及注意事项
- 学习笔记(二)ubuntu16.04下Qt+opencv的安装配置及使用
- MyBatis 使用笔记(1) 简介、安装、配置
- linux学习笔记3:linux的网络配置,rpm包,shell以及samba服务器的使用和安装
- 【saltstack学习笔记之十】使用sls安装nginx并管理nginx的配置文件
- linux笔记 第二十一天 http高级配置及ab工具使用及编译安装http2.4
- ubuntu安装使用笔记06——maven安装配置