`

cassandra(四)--脚本执行命令和集群交互

阅读更多
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




分享到:
评论
6 楼 grepkey 2012-11-01  
我用nodetool tpstats
发现有很多 flushwriter  All time blocked  这种状态下的很多    想问下如何进行处理   
5 楼 shendegang123 2012-06-26  
ttttt              tt
4 楼 zhoujianyong2011 2012-04-17  
192.168.5.6     datacenter1 rack1       Up     Normal  64.49 MB        33.33%  0                                          
192.168.5.11    datacenter1 rack1       Up     Normal  64.62 MB        33.33%  56713727820156410577229101238628035242     
192.168.5.7     datacenter1 rack1       Up     Normal  64.57 MB        33.33%  113427455640312821154458202477256070484
三台机器的状态已经这样了,求指点!
3 楼 zhoujianyong2011 2012-04-17  
Space used (total): 67485766
Space used (live): 67485766
我用cfstats命令看cassandra状态成这样了,是不是代表没有空间了?
如何才能扩大空间呢?
2 楼 zhoujianyong2011 2012-04-17  
lxiaodao 写道
我在试验并发写入的时候(java客户端),单节点老是出现问题,不是连接被拒绝就是其它问题。请问大家有没有遇到类似的问题,是不是使用cluster就没有这样的问题。
还有,我感觉cassandra的查询功能很弱啊,select * from user u where u.name='gongcheng'这样的查询好像不能支持啊!?

给name建索引就行
1 楼 lxiaodao 2010-12-18  
我在试验并发写入的时候(java客户端),单节点老是出现问题,不是连接被拒绝就是其它问题。请问大家有没有遇到类似的问题,是不是使用cluster就没有这样的问题。
还有,我感觉cassandra的查询功能很弱啊,select * from user u where u.name='gongcheng'这样的查询好像不能支持啊!?

相关推荐

    apache-cassandra-3.9-bin.tar.gz

    在解压“apache-cassandra-3.9-bin.tar.gz”后,你将获得Cassandra的安装目录,其中包括bin目录(存放启动和管理脚本)、conf目录(配置文件)、lib目录(依赖库)、resources目录(例如Cassandra的默认启动脚本)等...

    cassandra cli 命令 大全

    Cassandra CLI是Apache Cassandra数据库系统的一个命令行工具,它提供了与Cassandra集群交互的能力,包括连接到远程节点、创建或更新模式(schema)、设置和检索记录及列,以及查询节点和集群元数据。这个工具主要...

    apache-cassandra-3.11.8-bin.tar.gz

    cassandra 脚本用于启动、停止或管理 Cassandra 服务,而 cqlsh 是 Cassandra Query Language 的交互式 shell,用于执行 CQL 查询。 2. conf 目录:这里存储了 Cassandra 的配置文件,如 cassandra.yaml,它是 ...

    ambari-cassandra-service:在Apache Ambari中使用的Cassandra服务定义

    Cassandra服务定义是Ambari用来理解如何与Cassandra交互的蓝图,包括安装步骤、配置参数、启动脚本以及健康检查等。 在这个"ambari-cassandra-service-master"压缩包中,我们可以期待找到以下关键组成部分: 1. **...

    DevCenter cassandra客户端

    2. **CQL编辑器**:DevCenter内置了一个Cassandra查询语言(CQL)的编辑器,提供了代码补全、语法高亮和错误检查功能,帮助用户编写和执行CQL命令。这使得对数据库的操作变得更加高效和准确。 3. **数据浏览**:...

    cassandra 图形化工具

    - **CQL交互**:支持Cassandra Query Language (CQL)的编写和执行,方便进行数据查询和操作。 - **实时监控**:提供集群性能指标的实时视图,如节点状态、CPU使用率、磁盘空间等。 - **数据导入导出**:支持将...

    cassandra-api-test

    Cassandra API通常是指用于与Cassandra集群交互的接口,开发者可以使用这些API来读写数据、管理表、监控集群状态等。对于JavaScript开发者,常用的Cassandra驱动程序是DataStax的Node.js驱动程序,它允许通过...

    cassandra-create-helper-script:在Jenkins作业中使用的Python包装器将处理创建角色,表和键空间

    Python的Cassandra驱动程序如`cassandra-driver`库提供了这样的功能,可以方便地与Cassandra集群交互。 **Jenkins** Jenkins是一个开源的持续集成工具,广泛用于自动化各种任务,包括构建、测试和部署软件。将...

    在Spark上使用CLI读取Cassandra数据

    6. **script_for_cassandra.txt**:这个文件可能是CQL脚本,用于创建Cassandra表、插入数据或执行查询。在Spark应用之前,你可能需要先运行这些CQL命令来准备测试数据。 7. **源码分析**:在`CassandraTest.scala`...

    Nosql - Cassandra 入门学习

    - **bin**: 包含启动和停止Cassandra服务的脚本,如`cassandra.bat`。 - **conf**: 存放配置文件,如`cassandra.yaml`,用于配置Cassandra的行为。 - **interface**: 提供Thrift接口定义文件,可以生成不同编程语言...

    用于管理和修复Scylla集群的Python脚本_Python_下载.zip

    2. **数据一致性检查**:Scylla支持CQL(Cassandra Query Language),脚本可能通过执行CQL命令来检查数据的一致性,例如使用`nodetool repair`命令进行定期的数据修复,确保所有副本之间的数据同步。 3. **故障...

    cassandra-phantom:Cassandra + Phantom示例

    在Cassandra-Phantom项目中,Makefile可能包含了启动Cassandra容器、构建和运行Scala应用程序等命令,简化了开发流程。 通过这个项目,开发者可以学习如何设置Cassandra环境,使用Phantom DSL来定义和操作Cassandra...

    cpp-KairosDB是基于Cassandra存储的快速时间序列数据库

    源代码通常包括了所有必要的组件,如服务器端程序、配置文件、示例脚本和文档,以便于用户安装、配置和维护KairosDB系统。 在实际应用中,KairosDB常被用于监控系统,例如服务器性能监控、网络设备日志分析、用户...

    meetup-cassandra-injector:Cassandra Lyonnais Meetup 的注入器

    Java 有着丰富的库和框架支持,对于构建与 Cassandra 集成的工具非常方便,因为它提供了一系列的驱动程序和 API 来与 Cassandra 进行交互。 根据提供的压缩包子文件名 "meetup-cassandra-injector-master",我们...

    ansible-cassandra:用Ansible安装cassandra

    Cassandra是一个分布式NoSQL数据库系统,常用于处理大规模的数据存储需求,而Ansible则是一种强大的IT自动化工具,能够帮助我们简化配置管理、应用部署和任务执行等任务。 描述中的 "执行脚本 clear; ansible-...

    Python-shifterCassandra迁移工具

    4. **运行迁移**:通过命令行执行shifter命令,应用迁移脚本到Cassandra实例。 5. **验证迁移**:确保迁移完成后,数据和结构与预期一致,无丢失或错误。 **shifter-master文件夹内容** 在"shifter-master"压缩包中...

    infinispan-cli-interpreter-8.2.0.Beta2.zip

    CLI的增强功能,如脚本支持和丰富的命令集,大大提高了开发者的工作效率,简化了Infinispan的使用体验。 其次,`spark-cassandra-connector.zip`包含了Apache Spark与Cassandra之间的连接器,即StringDataStax ...

    cassandra Example的一点理解及疑问

    cassandra6可能包含该版本的安装指南、配置示例、测试脚本或者代码示例,帮助读者理解Cassandra 6.0的功能和用法。 总结来说,这篇博客可能涵盖了以下知识点: 1. Cassandra基础:数据模型、分区策略、副本分布。 ...

    实时计算框架:Spark集群搭建与入门案例.docx

    Spark通过DAG(有向无环图)执行引擎优化了计算流程,支持多种计算模式,包括批处理、交互式查询(Spark SQL)、流处理(Spark Streaming)和机器学习(MLlib)等。 Spark架构主要包括以下几个组件: 1. **Driver**...

    spark-2.2.2-bin-hadoop2.7.tgz

    1. `bin`:存放可执行脚本,如`spark-submit`用于提交Spark应用,`spark-shell`提供交互式Shell环境。 2. `conf`:配置文件夹,存放默认配置模板,如`spark-defaults.conf`,用户可以根据需求自定义配置。 3. `jars`...

Global site tag (gtag.js) - Google Analytics