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-3.9-bin.tar.gz”后,你将获得Cassandra的安装目录,其中包括bin目录(存放启动和管理脚本)、conf目录(配置文件)、lib目录(依赖库)、resources目录(例如Cassandra的默认启动脚本)等...
Cassandra CLI是Apache Cassandra数据库系统的一个命令行工具,它提供了与Cassandra集群交互的能力,包括连接到远程节点、创建或更新模式(schema)、设置和检索记录及列,以及查询节点和集群元数据。这个工具主要...
cassandra 脚本用于启动、停止或管理 Cassandra 服务,而 cqlsh 是 Cassandra Query Language 的交互式 shell,用于执行 CQL 查询。 2. conf 目录:这里存储了 Cassandra 的配置文件,如 cassandra.yaml,它是 ...
Cassandra服务定义是Ambari用来理解如何与Cassandra交互的蓝图,包括安装步骤、配置参数、启动脚本以及健康检查等。 在这个"ambari-cassandra-service-master"压缩包中,我们可以期待找到以下关键组成部分: 1. **...
2. **CQL编辑器**:DevCenter内置了一个Cassandra查询语言(CQL)的编辑器,提供了代码补全、语法高亮和错误检查功能,帮助用户编写和执行CQL命令。这使得对数据库的操作变得更加高效和准确。 3. **数据浏览**:...
- **CQL交互**:支持Cassandra Query Language (CQL)的编写和执行,方便进行数据查询和操作。 - **实时监控**:提供集群性能指标的实时视图,如节点状态、CPU使用率、磁盘空间等。 - **数据导入导出**:支持将...
Cassandra API通常是指用于与Cassandra集群交互的接口,开发者可以使用这些API来读写数据、管理表、监控集群状态等。对于JavaScript开发者,常用的Cassandra驱动程序是DataStax的Node.js驱动程序,它允许通过...
Python的Cassandra驱动程序如`cassandra-driver`库提供了这样的功能,可以方便地与Cassandra集群交互。 **Jenkins** Jenkins是一个开源的持续集成工具,广泛用于自动化各种任务,包括构建、测试和部署软件。将...
6. **script_for_cassandra.txt**:这个文件可能是CQL脚本,用于创建Cassandra表、插入数据或执行查询。在Spark应用之前,你可能需要先运行这些CQL命令来准备测试数据。 7. **源码分析**:在`CassandraTest.scala`...
- **bin**: 包含启动和停止Cassandra服务的脚本,如`cassandra.bat`。 - **conf**: 存放配置文件,如`cassandra.yaml`,用于配置Cassandra的行为。 - **interface**: 提供Thrift接口定义文件,可以生成不同编程语言...
2. **数据一致性检查**:Scylla支持CQL(Cassandra Query Language),脚本可能通过执行CQL命令来检查数据的一致性,例如使用`nodetool repair`命令进行定期的数据修复,确保所有副本之间的数据同步。 3. **故障...
在Cassandra-Phantom项目中,Makefile可能包含了启动Cassandra容器、构建和运行Scala应用程序等命令,简化了开发流程。 通过这个项目,开发者可以学习如何设置Cassandra环境,使用Phantom DSL来定义和操作Cassandra...
源代码通常包括了所有必要的组件,如服务器端程序、配置文件、示例脚本和文档,以便于用户安装、配置和维护KairosDB系统。 在实际应用中,KairosDB常被用于监控系统,例如服务器性能监控、网络设备日志分析、用户...
Java 有着丰富的库和框架支持,对于构建与 Cassandra 集成的工具非常方便,因为它提供了一系列的驱动程序和 API 来与 Cassandra 进行交互。 根据提供的压缩包子文件名 "meetup-cassandra-injector-master",我们...
Cassandra是一个分布式NoSQL数据库系统,常用于处理大规模的数据存储需求,而Ansible则是一种强大的IT自动化工具,能够帮助我们简化配置管理、应用部署和任务执行等任务。 描述中的 "执行脚本 clear; ansible-...
4. **运行迁移**:通过命令行执行shifter命令,应用迁移脚本到Cassandra实例。 5. **验证迁移**:确保迁移完成后,数据和结构与预期一致,无丢失或错误。 **shifter-master文件夹内容** 在"shifter-master"压缩包中...
CLI的增强功能,如脚本支持和丰富的命令集,大大提高了开发者的工作效率,简化了Infinispan的使用体验。 其次,`spark-cassandra-connector.zip`包含了Apache Spark与Cassandra之间的连接器,即StringDataStax ...
cassandra6可能包含该版本的安装指南、配置示例、测试脚本或者代码示例,帮助读者理解Cassandra 6.0的功能和用法。 总结来说,这篇博客可能涵盖了以下知识点: 1. Cassandra基础:数据模型、分区策略、副本分布。 ...
Spark通过DAG(有向无环图)执行引擎优化了计算流程,支持多种计算模式,包括批处理、交互式查询(Spark SQL)、流处理(Spark Streaming)和机器学习(MLlib)等。 Spark架构主要包括以下几个组件: 1. **Driver**...
1. `bin`:存放可执行脚本,如`spark-submit`用于提交Spark应用,`spark-shell`提供交互式Shell环境。 2. `conf`:配置文件夹,存放默认配置模板,如`spark-defaults.conf`,用户可以根据需求自定义配置。 3. `jars`...