cassandra集群安装
gzip-dapache-cassandra-1.2.6-bin.tar.gz
tarxvfapache-cassandra-1.2.6-bin.tar
单机安装配置
1.配置log4j-server.properties
需要配置log4j.appender.R.File=/market/cassandra/apache-cassandra-1.2.6/log/cassandra.log
2.配置data_file_directories:存放数据库数据文件的目录路径(不是文件路径)
data_file_directories:/market/cassandra/apache-cassandra-1.2.6/data
commitlog_directory:存放提交日志的目录路径。
commitlog_directory:/market/cassandra/apache-cassandra-1.2.6/commitlog
saved_caches_directory:缓存文件夹路径
saved_caches_directory:/market/cassandra/apache-cassandra-1.2.6/saved_caches
3.启动cassandra
cd../bin
./cassandra-f
集群安装配置
cluster_name:集群名,所有集群里的节点,这个配置必须相同默认'TestCluster'
seeds:这是种子节点。
172.21.1.36
cassandra是一个p2p式的分布式数据库,没有所谓的中心节点。但为了保证节点能找到集群,你必须告诉它至少一台已经在集群内的节点IP。这样通过这个节点,它能找到集群内的所有节点,为了保证健壮性,尽量将集群里所有节点的seeds配置成一样的
seeds:'172.21.1.36,172.21.0.36,172.21.3.172'
listen_address:其它节点与自己通信的IP,这里必须设置为自己的主机IP。若设置为localhost或127.0.0.1,则可能其它节点无法与自己通信。
listen_address:172.21.1.36
rpc_address:这里设置其它节点上的客户端能否与自己的服务端通信。设置为0.0.0.0表示任何节点上的客户端都可以与自己通信,否则只允许本机客户端与自己通信
rpc_address:0.0.0.0
启动./cassandra,报错
xss=-ea-XX:+UseThreadPriorities-XX:ThreadPriorityPolicy=42-Xms1715M-Xmx1715M-Xmn100M-XX:+HeapDumpOnOutOfMemoryError-Xss180k
[market@172-21-1-36bin]$Error:Exceptionthrownbytheagent:java.rmi.server.ExportException:Portalreadyinuse:7199;nestedexceptionis:
java.net.BindException:Addressalreadyinuse
cassandra未关闭
netstat-an|grep':7199'
kill-9进程id
nodetool是一个查看集群信息的命令,运行nodetool需要指定host和port,port默认是8080,这个端口是Cassandra的jmx端口,nodetool通过jmx获取集群的信息,端口可以在bin/cassandra.in.sh中修改.
ring命令用于查看集群的节点信息,ring来源于consistenthash,在consistenthash中,各个节点组成一个环,通常称为ring。
ring命令的输出中包括当前集群的节点,各个节点的状态(Up还是Down),节点的load(数据量),节点在ring上的位置等信息
./nodetool-h172.21.3.172ring
cfstats命令
cfstats—查看各个columnfamily的详细信息,包括读写次数、响应时间、memtable、sstable等
./nodetool-h172.21.3.172cfstats
tpstats命令
tpstats命令输出当前集群的各种连接池的使用状态.包括数据一致性,消息池,提交池,内存表提交池,写操作的池等等
./nodetool-h172.21.3.172tpstats
./nodetool-h172.21.3.172info
flush命令或repair命令
flush命令是将某keyspace中的缓存区数据提交,所以必须有在flush命令后提交一个keySpace的参数,否则命令不能执行.
Java代码
[root@vm129bin]#./nodetool-h172.21.3.172flushsystem
命令行,所有命令都要以;结束
./cassandra-cli-h172.1.3.172
cd命令切换到Cassandra的bin目录下,./cassandra-cli启动cassandra-cli。
connect172.21.3.172/9160;连接本地机器所在的集群
showkeyspaces;显示集群中现有的keyspaceusexxxx;
进入keyspacexxxx
createcolumnfamilyxxxx;创建columnfamilyxxxx
dropkeyspacexxxx;删除keyspacexxxx
createkeyspacexxxx;创建keyspacexxxx
usekeyspace打开keyspace(类似数据库中库)
showschema显示该库中的表结构
listcolumnFamily查看表的数据集
setcolumnFamily[rowKey][column]=columnValue插入指定的key和列的值
getcolumnFamily[rowKey]:取得指定表和key的数据
//创建库
CREATEKEYSPACEtestDb
withplacement_strategy='SimpleStrategy'
andstrategy_options={replication_factor:3};//复制因子为3份
创建表
createcolumnfamilycustGroupswithcolumn_type='Standard'andcomparator='UTF8Type'anddefault_validation_class='BytesType'andkey_validation_class='UTF8Type'ANDcolumn_metadata=[{column_name:phoneNo,validation_class:'UTF8Type',index_type:KEYS},{column_name:custId,validation_class:'UTF8Type',index_type:KEYS},{column_name:custName,validation_class:'UTF8Type',index_type:KEYS}];