`
- 浏览:
47455 次
- 性别:
-
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调试
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
Cassandra权威指南,如果想学习bigdata的话,可以关注一下
一个现代、功能丰富且高度可调的 C/C++ 客户端库,适用于 Apache Cassandra 2.1+,仅使用 Cassandra 的二进制协议和 Cassandra 查询语言 v3。此驱动程序也可以与其他 DataStax 产品一起使用: 特征 异步 API 简单、...
YUM包管理器Root或sudo权限JRE6或者JRE7JNA(JavanativeAccess)(生产环境需要)安装配置JRE(略)添加软件包仓库到...JRE6或者JRE7JNA(JavanativeAccess)(生产环境需要)安装配置JRE(略)下载Cassandra二进制tarball由手
Cassandra 二进制协议 v2 上 cassandra 的 Node.js 驱动程序。 特征 CQL 二进制协议 v2 集群对等点的自动发现 故障转移集群对等点 与服务器断开连接时重试查询 使用分页状态分页大型结果集 活动 快速开始 var ...
lua-resty-cassandra, 使用CQL二进制协议的纯Lua客户端 这里 repo 为正在积极维护。 我强烈建议你尝试 。 lua-resty-cassandra 使用CQL二进制协议v2的纯Lua客户端。如果在 Nginx/openresty中使用,它是 100%个非阻塞...
Cassandra 高清英文原版 第二版! 无水印,无第三方链接!
二、Cassandra安装环境配置 三、Cassandra的基本使用 四、Cassandra的Java客户端使用 五、Cassandra的核心知识点 4、课程目录 第1节 - 01-数据存储和NoSQL概述 第2节 - 02-NoSQL数据库的分类 第3节 - 03-Cassandra的...
工程依赖的开源项目,也供其他需要的朋友使用。
使用官方Cassandra CQL3二进制协议进行连接的会话存储。 安装 npm install connect-cassandra-cql 用法 快递4 var express = require ( 'express' ) , cookieParser = require ( 'cookie-parser' ) , session ...
此驱动程序专门用于 Cassandra 查询语言版本 3 (CQL3) 和 Cassandra 的二进制协议。 建造 该库使用 DataStax 官方 c++ 驱动程序在构建 php-cassandra 之前,您应该下载并安装适用于 Apache Cassandra 的 DataStax ...
#Cassandra TPC-DS 设置 要使用它,您还需要克隆 ...构建 tpcds-kit 二进制文件 cd tpcds-kit/tools make -f Makefile.suite 构建 Java 加载器 cd ../../cassandra-tpcds make compile 制作数据。 您需要使用所需
一个现代、功能丰富且高度可调的 Node.js 客户端库,用于 Apache Cassandra 和DSE,仅使用 Cassandra 的二进制协议和 Cassandra 查询语言。 特征 简单、准备和批处理语句 异步 IO、并行执行、请求流水线 连接池 ...
一个现代的,且高度可调的Node.js客户端库,用于Apache Cassandra和 ,仅使用Cassandra的二进制协议和Cassandra查询语言。 安装 $ npm install cassandra-driver 产品特点 简单,准备和语句 异步IO,并行执行,请求...
适用于ApacheCassandra:registered:的DataStax Node.js驱动程序一种现代,功能丰富且高度可调的Node.js客户端库,适用于Apache Cassandra和DSE,仅使用Cassandra的二进制协议和Cassandra查询语言。 用于Apache...
node-cassandra-cql 是一个 Apache Cassandra CQL3 二进制协议的 Node.js CQL 驱动。CQL 是 Cassandra 的查询语言。该项目提供到多个主机的连接池、查询参数,以及可通过列名获取数值和支持 bigint。 示例代码: ...
是全世界排名第二的NoSQL数据库 Cassandra下载: Cassandra的文档: Cassandra的JIRA: Cassandra的源代码: Cassandra的技术博客: Cassandra的Meetup Group: Cassandra针对不同语言的客户端Driver: 使用...
Cassandra 的 Thrift 二进制协议转储该程序可以读取 tcpdump 的输出并将任何 cassandra thrift 二进制协议请求解码为人类可读的格式。 这主要用于实时可视化入站流量或验证应用程序是否正确发送数据(一致性级别等)...
这是一个用于 Cassandra 的 SpringFramework Data 项目,它通过用于 Cassandra 2.0 的官方 DataStax 2.x Java使用二进制 CQL3 协议。 支持 SpringFramework Data Repositories 中的原生 CQL3 查询。版本当前版本: ...
一个现代的,且高度可调的Python客户端库,仅使用Cassandra的二进制协议和Cassandra Query Language v3,适用于Apache Cassandra(2.1+)和DataStax Enterprise(4.7+)。 该驱动程序支持Python 2.7、3.5、3.6、...