Cassandra 往往以机器集群的方式部署,但是在单台机器上也能跑得很好。为避免一下就要对付巨大的复杂系统,玩单机是入门良径。
现在还没有安装程序,最简单的方法就是从解压的目录1 或者 SVN 检出(参见: 选择一个版本)目录直接运行 Canssandra。如果你下载的不是二进制版本,你需要先使用 ant 编译它。
发布版的样例设置 conf/storage-conf.xml 包含了一些比较推荐的默认值和注释,但是你要保证 CommitLogDirectory 和 DataFileDirectories 都存在。 另外,最好也花点时间检查一下 conf/log4j.properties,确保配置中指定的目录都存在。
Mac OS X 的一些用户可能会在运行 Java 6 的时候遇到困难。如果你持续获取 Apple 的最新更新,Java 6 就已经安装好了 (包含于 Mac OS X 10.5 Update 1 中)。 不幸的是,Apple 在默认情况下是不使用它的。 你需要做的是修改环境变量 JAVA_HOME 为 /System/Library/Frameworks/JavaVM.framework/Versions/1.6/Home,并且把 /System/Library/Frameworks/JavaVM.framework/Versions/1.6/Home/bin 添加到环境变量 PATH 中。
万事俱备,只欠东风,现在你可以在命令行中运行 bin/cassandra -f2 来启动 Cassandra 了! 服务应该在前台启动(非后台方式),并且把日志打印到标准输出上。如果你没看到吓人的词汇(如 "error" 或者 "fatal"), 或者像 java stack trace 之类的东西, 那么你就成功了。请随意尝试 CassandraCli 和 ThriftInterface 的例子。遇到问题莫恐慌,冷静的看看 出岔子了!。
Cassandra ships with a very basic interactive command line interface. Using the CLI you can connect to remote nodes in the cluster to create or update your schema and set and retrieve records.
The examples below have been tested with Cassandra 1.0.6. For instructions for previous versions of Cassandra see one of: CassandraCli07, CassandraCli06.
You may also be interested in the DataStax documentation which has excellent coverage on this topic.
Starting the CLI
You can start the CLI using the bin/cassandra-cli script in your Cassandra installation (bin\cassandra-cli.bat on windows). If you are evaluating a local cassandra node then be sure that it has been correctly configured and successfully started before starting the CLI.
If successful you will see output similar to this:
Welcome to cassandra CLI.
Type 'help;' or '?' for help. Type 'quit;' or 'exit;' to quit.
You must then specify a system to connect to:
connect localhost/9160;
Creating a Keyspace
We first create a keyspace to run our examples in.
create keyspace Twissandra;
Selecting the keyspace to user
We must then select our example keyspace as our new context before we can run any queries.
use Twissandra;
To Create A Column
We can then create a column to play with.
create column family User with comparator = UTF8Type;
For the later examples to work you must also update the schema using the following command. This will set the return type for the first and last name to make them human readable. It will also add and index for the age field so that you filter your gets using the Users name field.
update column family User with
column_metadata =
[
{column_name: first, validation_class: UTF8Type},
{column_name: last, validation_class: UTF8Type},
{column_name: age, validation_class: UTF8Type, index_type: KEYS}
];
To Add Data
To add data we want to into our new column we must first specify our default key type otherwise we would have to specify it for each key using the format [utf8('keyname')] this is probably advisable if you have mixed key types but makes simple cases harder to read.
So we run the command below, which will last the length of you cli session. On quitting and restarting we must run it again.
assume User keys as utf8;
and then we add our data.
set User['jsmith']['first'] = 'John';
set User['jsmith']['last'] = 'Smith';
set User['jsmith']['age'] = '38';
If you get the error like this cannot parse 'John' as hex bytes, then it likely you either haven't set your default key type or you haven't updated your schema as in the create column example.
The set command uses API#insert
To Update Data
If we need to update a value we simply set it again.
set User['jsmith']['first'] = 'Jack';
To Get Data
Now let's read back the jsmith row to see what it contains:
get User['jsmith'];
The get command uses API#get_slice
To Query Data
get User where age = '12';
For help
help;
To Quit
quit;
To Execute Script
bin/cassandra-cli -host localhost -port 9160 -f script.txt
分享到:
相关推荐
总之,Cassandra节点管理是一项涉及多个复杂步骤的任务,需要谨慎处理以确保集群的稳定运行。理解这些概念和流程对于有效管理和优化Cassandra集群至关重要。在实践中,应遵循最佳实践,并结合实际情况灵活应用。
系统架构是 Cassandra 的另一个关键组件,它由多个节点组成,每个节点都可以独立地运行。这些节点之间可以形成集群,提供高可用性和高扩展性的存储解决方案。每个节点都可以作为一个独立的服务器,负责存储和管理...
cassandra_snapshotter, 在S3上,使用快照和增量备份备份cassandra节点的工具 cassandra_snapshotter在S3上使用快照和增量备份备份cassandra节点的工具项目的范围是使集群更容易备份到 S3,并合并快照和增量备份。...
Cassandra的主要特点就是它不是一个数据库,而是由一堆数据库节点共同构成的一个分布式网络服务,对Cassandra 的一个写操作,会被复制到其他节点上去,对Cassandra的读操作,也会被路由到某个节点上面去读取。对于一...
每个节点都拥有其他所有节点的消息,并且每秒会与多个节点交换这些信息。Gossip协议的使用允许Cassandra在面对故障恢复和扩展节点时,能快速达成全网络内的一致性状态。 Token(令牌)在Cassandra中用于确定数据...
3. 无中心:Cassandra没有中心节点,每个节点都是平等的,任何一个节点的失败都不会影响系统的整体运行。这提高了系统的容错性和可靠性。 4. 弹性可扩展:Cassandra可以很容易地添加新的节点来扩大数据库的规模,...
Cassandra的主要特点就是它不是一个数据库,而是由一堆数据库节点共同构成的一个分布式网络服务,对Cassandra 的一个写操作,会被复制到其他节点上去,对Cassandra的读操作,也会被路由到某个节点上面去读取。...
在这个策略下,token是一个0~2的127次方之间的一个整数(这也意味着理论上cassandra可以支持2的127次方个节点)。之所以是2的127次方,是因为MD5 HASH固定输出128位的数,去掉一位符号位,剩下127位。 cassandra会将...
Cassandra的系统架构基于P2P环形结构,每个节点通过Gossip机制进行消息同步。每个数据项都会被复制到N个节点(N是通过参数配置的副本因子),系统利用数据的复制机制将存储在各节点上的数据复制到其他结点上,实现了...
Cassandra 的主要特点就是它不是一个数据库,而是一个由一堆数据库节点共同构成的一个分布式网络服务,对 Cassandra 的一个写操作,会被复制到其他节点上去,对 Cassandra 的读操作,也会被路由到某个节点上面去读取...
总的来说,Cassandra是一个设计用于处理大数据量、高并发场景的分布式数据库系统,特别适合需要高可用性和分区容错性的应用场景。通过灵活的数据模型、复制策略和一致性控制,Cassandra能够满足各种复杂业务的需求。...
Gossiper通过节点间的流言传播算法,实现节点之间的高效通信和状态同步,这对于维护一个高可用和动态扩展的分布式系统至关重要。 面向未来,Cassandra持续优化其架构和功能,以适应不断增长的数据量和复杂度,尤其...
Cassandra 是一个分布式、高度可扩展的NoSQL数据库系统,由Facebook最初开发,后成为Apache软件基金会的顶级项目。Cassandra 1.2 版本是在其早期版本的基础上进行了一系列优化和改进,增强了性能和稳定性,使其在大...
Cassandra可以调整节点布局来避免某一个数据中心起火,备用的数据中心将至少有每条记录的完全复制。 1.6 范围查询 Cassandra支持范围查询,可以设置键的范围来查询。 1.7 列表数据结构 Cassandra支持列表数据...
总之,Cassandra 3.11.3是一个强大且成熟的分布式数据库系统,它在数据分布、数据模型、节点通信、性能优化、数据安全等方面都有出色的表现,是应对大数据挑战的理想选择。无论是大型互联网公司还是中小型企业,都...
Cassandra的核心特性在于其高可靠性、可伸缩性和分布式架构,它不是一个单一的数据库,而是由多个数据库节点组成的分布式网络服务。 - **数据模型**:Cassandra采用基于列集(Column Family)的数据模型,类似于...
Cassandra-Operator是针对Apache Cassandra在Kubernetes集群中部署和管理的一个开源项目。它使得在Kubernetes环境中运行和扩展Cassandra数据库变得更加简单和自动化。在这个压缩包“cassandra-operator,apache-...
3. **Gossip 协议**:Cassandra 使用 Gossip 协议进行节点间通信,每个节点都会周期性地与其他节点交换状态信息,以维持集群的健康状态。在3.11.13中,这个协议可能已经过优化,提升了集群发现和故障检测的效率。 4...
DevCenter 是一个强大的工具,专为数据科学家、开发人员和管理员设计,用于与Apache Cassandra数据库进行交互。这个工具提供了一个直观的用户界面,使得管理、查询和开发Cassandra数据库变得简单易行。Cassandra是一...