当前位置:首页 > 开发 > 互联网 > 正文

Cassandra(二)

发表于: 2015-07-05   作者:星之空   来源:转载   浏览:
摘要: Cassandra是基于列族(Column Family)的四维或五维模型。它借鉴了 Amazon 的 Dynamo 和 Google's BigTable 的数据结构和功能特点,采 用 Memtable 和 SSTable 的方式进行存储。在 Cassandra 写入数据之前,需要先记录日志 ( CommitLog ),然后数据开始写入到 Column Family 对应的 Memt

Cassandra是基于列族(Column Family)的四维或五维模型。它借鉴了 Amazon 的 Dynamo 和 Google's BigTable 的数据结构和功能特点,采

用 Memtable 和 SSTable 的方式进行存储。在 Cassandra 写入数据之前,需要先记录日志 ( CommitLog ),然后数据开始写入到 Column

Family 对应的 Memtable 中,Memtable 是一种按照 key 排序数据的内存结构,在满足一定条件时,再把 Memtable 的数据批量的刷新到磁盘

上,存储为 SSTable 。

//无中心的架构设计,所有节点都是平等的,之间通过gossip进行节点通信


//--------------------------------------------------------------------------------------------
//启动Cassandra的配置
step one : 修改配制文件 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>



step two : 修改日志配制文件 log4j.properties:
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 -f
//启动客户端
bin/cassandra-cli
//连接服务器
connect ip地址/Port端口

停止 Cassandra 服务
查出 Cassandra 的 pid:16328
# ps -ef | grep cassandra
# kill 16328


show cluster name//显示集群的名字



//-----------------------------------------至此可以启动与测试使用Cassandra了




//存在主键--;列族;类似于HBase---键值存储--类似于Redis
//某种程度上又那么类似于关系数据库(包括语法)
keyspace   相当于一个数据库
family(列族)相当于一个表


show keyspaces  显示所有的数据库
create keyspace test 建立一个数据库名叫test
use test 使用该数据库
create column family User建立一个User的列族
describe keyspace test 对该数据库的描述

//增加数据,列族是一个多维有序的映射
//无需提前设置---但是列族是要设置的
set User['a']['name']='Xue'
set User['a']['email']='me@qq.com'

//User是个列族,a就是key,name和email就是两个列

count User['a'] 计算列族User在['a']的数目
//有点像Redis基于内存数据库啊


//获取该数据
get User['a']['name']
get User['a']['email']
get User['a']
//

del User['a']['email']//删除该数据



//集群就是个keyspace的巨大容器
对keyspace的配置有
副本因子
副本存放策略
列族




//每个列都是一个由键,值,时间戳组成的
//不需要先预定--只要有先设置列族再往里面添加列
列的定义中存在另外一个元素设置---列的排列顺序(多种)


//超级列---是一些子列的集合
//多维的存储如['a']['name']--a就是一个超级列

//还可以设计组合键--将多个键值设计融合在一起--这是设计问题了

//具体的可以通过Java API来具体操作cassandra--进行增删改查
//查询时候可以使用区间与切片返回大的集合的一个自己
//相当于条件查询啦---总之啦--存在多种查询方式了
//删除也有多种了---单个与批量的删除
//总之啦--各种丰富的 API 操作


//垃圾回收也是延时的--可以在回收时间内进行数据恢复


可以通过Thrift与Avro与不同的语言进行交互
还有Web,还有一些Java和Python写的客户端进行交互
还可以有可视化界面进行监控(MBean)
其他的分析工具(JMap,OpenNMS,Nagios)


维护的工具:
cfstats:查看每个列族数据的概述信息
tpstats:维护线程池的信息
刷写 bin/nodetool flush -h ip地址
修复 bin/nodetool repair -h ip地址
快照 bin/nodetool -h ip地址 snapshot
快照 bin/nodetool -h ip地址 snapshot one_keysapce_name
清理 bin/nodetool cleanup -h ip地址
清除快照 bin/nodetool -h ip地址 cleansnapshot
负载均衡 bin/nodetool -h ip地址 loadbalance
查看所有节点 bin/nodetool -host ip地址 ring
撤销节点 bin/nodetool decommission -h ip地址



性能调优:
改变commit log改变存储位置--可以多的设置多个位置--其他
如日志反转时间参数设置--写操作持久化参数设置
设置回复超时
memtable内存大小的设置--在内存存在的时间--写入磁盘的线程数目
并发操作数目--包括硬件的考量
缓存的设置
进行压力测试
缓冲区尺寸
JVM调试

Cassandra(二)

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
1基本安装 1.1在基于RHEL的系统中安装Cassandra 1.1.1必要条件 Ø YUM包管理器 Ø Root或sudo权限 Ø J
Cassandra是有FaceBook开发并开源的一个NoSQL分布式存储。目前是Apache基金会下面的一级项目,它的
第1章引言 1.1编写目的 介绍apache cassandra。 1.2非关系型数据库—Cassandra 1.2.1简介 Cassandra
关于NoSql数据存储方式的优劣这里不再讨论,可以关注 http://www.iteye.com/topic/524977 这里简要介
1、到官网下载压缩包。 http://cassandra.apache.org/download/ 我下载的是最新的 apache-cassandra
Cassandra 的数据存储结构 Cassandra 的数据模型是基于列族(Column Family)的四维或五维模型。它
一、 简介 Apache Cassandra是一套开源分布式Key-Value存储系统。它最初由Facebook开发,用于储存特
1. 概述 Cassandra是一套开源分布式NoSQL数据库系统,设计思想采用了google的BigTable的数据模型和A
Cassandra是一个开源的分布式数据库,结合了Dynamo的Key/Value与Bigtable的面向列的特点。 Cassandr
http://blog.csdn.net/kirayuan/article/details/6430889 一、 简介 Apache Cassandra是一套开源分
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号