Cassandra的bin目录下有两个很好用的工具nodetool和cassandra-cli。
一.nodetool工具
nodetool是一个查看集群信息的命令,运行nodetool需要指定host和port,port默认是8080,这个端口是Cassandra的jmx端口,nodetool通过jmx获取集群的信息,端口可以在bin/cassandra.in.sh中修改.
nodetool的java解析类: java org.apache.cassandra.tools.NodeCmd
命令执行格式:nodetool -host 服务器IP -port 端口号 <command>
king命令
ring命令用于查看集群的节点信息,ring来源于consistent hash,在consistent hash中,各个节点组成一个环,通常称为ring。
ring命令的输出中包括当前集群的节点,各个节点的状态(Up还是Down),节点的load(数据量),节点在ring上的位置等信息
info命令
info命令用于显示一个节点的信息,包括当前的load(数据量),运行时间,内存使用情况等。
[root@vm129 bin]# ./nodetool -h localhost -p 10036 info
16366895315811089625572228179498200556
Load : 495 bytes
Generation No : 1281008217
Uptime (seconds) : 1259
Heap Memory (MB) : 40.93 / 1021.94
cfstats命令
cfstats — 查看各个column family的详细信息,包括读写次数、响应时间、memtable、sstable等。
[root@vm129 bin]# ./nodetool -h localhost -p 10036 cfstats
Keyspace: Keyspace1
Read Count: 0
Read Latency: NaN ms.
Write Count: 0
Write Latency: NaN ms.
Pending Tasks: 0
Column Family: StandardByUUID1
........................
tpstats命令
tpstats命令输出当前集群的各种连接池的使用状态.包括数据一致性,消息池,提交池,内存表提交池,写操作的池等等.
[root@vm129 bin]# ./nodetool -h localhost -p 10036 tpstats
Pool Name Active Pending Completed
LB-TARGET 0 0 0
CONSISTENCY-MANAGER 0 0 0
MESSAGE-STREAMING-POOL 0 0 0
FLUSH-SORTER-POOL 0 0 0
LB-OPERATIONS 0 0 0
MEMTABLE-POST-FLUSHER 0 0 2
FLUSH-WRITER-POOL 0 0 2
MESSAGE-DESERIALIZER-POOL 0 0 0
flush命令或repair命令
flush命令是将某keyspace中的缓存区数据提交,所以必须有在flush命令后提交一个keySpace的参数,否则命令不能执行.
[root@vm129 bin]# ./nodetool -h localhost -p 10036 flush system
drain命令
drain命令是当数据写入某个node时,如果该集群节点不能写入时,将数据暂时写入memtables和replays commitlog.
[root@vm129 bin]# ./nodetool -h localhost -p 10036 drain
decommission命令
decommission命令将当前节点中的数据转移到其它的集群节点中,解除当前节点的对外服务
move命令
move命令将当前节点中的数据转移到另一个指定的集群节点.
loadbalance命令
上传当前节点的所有数据到其它集群节点中,并将读取节点的请求转发到ring中的其它节点中.
setcachecapacity命令
设置keySpace和column family的缓存能力,需要提交四个参数(后两个参数是数值型):
keySpace名称,colum falimy名称,keycache数值,rowCache数值
二.cassandra-cli工具
cassandra-cli是一个很好用的客户端命令行,它使用thrift API和服务器进行通信,能完成get/put/remove操作,并能查看配置信息,keyspace描述等。更为难得的是,这个使用java写的工具支持命令补全、历史命令等特性,这归功于开发人员使用了jline 这个包。
cassandra-cli需要提供两个参数,host和port,这里的port是thrift的监听端口,默认是9160,这个监听端口和前文提到的10036是不同的监听端口.所以不要混淆.稍后我会补一个图上来,简单解释一下这两个端口提供的服务有什么区别.
java类:org.apache.cassandra.cli.CliMain(大家可以翻看一下源码),大家有兴趣可以包装这个客户端,将整个操作界面化,增加易用性,哈哈!
[root@vm129 bin]# ./cassandra-cli
Welcome to cassandra CLI.
Type 'help' or '?' for help. Type 'quit' or 'exit' to quit.
cassandra> connect localhost/9160
Connected to: "Test Cluster" on localhost/9160
cassandra> show cluster name
Test Cluster
cassandra> set Keyspace1.Standard2['employee']['name'] = 'limingjie'
Value inserted.
cassandra> set Keyspace1.Standard2['employee']['age'] = '30'
Value inserted.
cassandra> set Keyspace1.Standard2['employee_1']['name'] = '孙悟空'
Value inserted.
cassandra> get Keyspace1.Standard2['employee']
=> (column=name, value=employee, timestamp=1270873106569000)
=> (column=age, value=30, timestamp=1270873099998000)
Returned 2 results.
cassandra> count Keyspace1.Standard2['employee']
2 columns
cassandra> del Keyspace1.Standard2['employee']['age']
column removed.
cassandra> count Keyspace1.Standard2['employee']
1 columns
cassandra> get Keyspace1.Standard2['employee']
=> (column=name, value=limingjie, timestamp=1270873106569000)
Returned 1 results.
cassandra> quit
分享到:
相关推荐
apache-cassandra-0.6.1-bin.tar.gzapache-cassandra-0.6.1-bin.tar.gzapache-cassandra-0.6.1-bin.tar.gzapache-cassandra-0.6.1-bin.tar.gzapache-cassandra-0.6.1-bin.tar.gzapache-cassandra-0.6.1-bin.tar.gz
Cassandra(apache-cassandra-3.11.11-bin.tar.gz)是一套开源分布式NoSQL数据库系统。它最初由Facebook开发,用于储存收件箱等简单格式数据,集GoogleBigTable的数据模型与Amazon Dynamo的完全分布式的架构于一身...
Cassandra(apache-cassandra-3.0.25-bin.tar.gz)是一套开源分布式NoSQL数据库系统。它最初由Facebook开发,用于储存收件箱等简单格式数据,集GoogleBigTable的数据模型与Amazon Dynamo的完全分布式的架构于一身...
Windows一键启动Eureka和Cassandra和redis-server的脚本.bat
官方离线安装包,亲测可用
apache-cassandra-3.11.13 官网原版
cassandra-thrift cassandra-thrift cassandra-thrift cassandra-thrift cassandra-thrift cassandra-thrift
官方离线安装包,亲测可用
cassandra-jdbc-1.2.5.jar
cassandra-driver-core,A driver for Apache Cassandra 1.2+ that works exclusively with the Cassandra Query Language version 3 (CQL3) and Cassandra's binary protocol.
Cassandra(apache-cassandra-4.0.1-bin.tar.gz)是一套开源分布式NoSQL数据库系统。它最初由Facebook开发,用于储存收件箱等简单格式数据,集GoogleBigTable的数据模型与Amazon Dynamo的完全分布式的架构于一身...
cassandra3.11.2-bin.tar.gz Linux下的安装包, 数据库
apache-cassandra-3.7-bin.tar.gz
大多数 Docker-Casssandra 集群都是使用 shell 脚本构建的,这些脚本结合了运行容器的 IP 发现和环境变量来将容器链接在一起。 我决定尝试使用和来处理服务发现。 SkyDock 使用简单的生成名称向 SkyDNS 注册每个 ...
apache Cassandra 项目 -- 分布式数据库
cassandra-trunk eclispe cassandra-trunk cassandra-trunk
cassandra 3.5
apache-cassandra-1.2.5
其主要功能比Dynamo (分布式的Key-Value存储系统)更丰富,但支持度却不如文档存储MongoDB(介于关系数据库和非关系数据库之间的开源产品,是非关系数据库当中功能最丰富,最像关系数据库的。支持的数据结构非常...
apache-cassandra-2.0.1-bin.tar