Cassandra 之旅 (二) Getting Started

一般来说学习某样东西, 我们都是找个范例照着范例先做一遍. 之后再可以通过资料, 自己使用积累去学习掌握它. 对于Cassandra, 我也不例外. 先按照官方文档部署一个简单的单节点服务出来玩一玩.

Step 0: 安装JAVA环境, JDK 1.6或以上

Step 1: 下载 Cassandra

Step 2: 基本配置

配置文件存放在<安装目录>/conf下面

Step 2.1: 配置cassandra需要使用的文件夹, 打开conf/cassandra.yaml文件

data_file_directories 修改成Windows下你想存放数据的路径, 如就存放到<安装目录>/data文件夹下. 注意前面的-是不能省略的

    data_file_directories:

    - C:\Program Files (x86)\apache-cassandra-1.2.3\data

commitlog_directory 修改成Windows下你想存放Log的路径

saved_caches_directory 修改成Windwos下你想存放cache的路径

Step 2.2: 打开conf/log4j-server.properties

log4j.appender.R.File=<安装目录>/system.log

确保这些文件夹是存在的, 且有写入的权限.

Step 2.3: 配置内存( 可选)

cassandra默认分配内存是基于你物理内存大小的, 为物理内存的1/4到1/2. 如果你想自己配置内存使用大小, 可以打开 conf/cassandra-env.sh, 修改如下配置

#MAX_HEAP_SIZE="4G"
#HEAP_NEWSIZE="800M"

一般经验来说, 你应该设置HEAP_NEWSIZE为MAX_HEAP_SIZE的1/4大小. 如果你遇到OutOfMemory的异常或者大量的GCs, 你可以尝试调大这两个值来解决这个问题.

Step 3: 启动 cassandra

到BIN目录下双击启动批处理文件cassandra.bat

只要把窗口关掉就可以关闭cassandra服务了

Step 4: 使用 cassandra-cli

cassandra-cli是一个与cassandra服务交互的命令行的接口, 可以执行创建KEYSPACE, COLUMN FAMILY, 擦入数据, 查询数据等操作.

运行在BIN目录下的cassandra-cli.bat就可以打开客户端了。cassanra-cli.bat是支持参数的,在命令行下,中转到BIN目录,运行

cassandra-cli.bat help;

可以查看如何传入参数,比如cassandra.yaml的默认配置的rpc的IP与端口分别是localhost, 9160。如果你把localhost改成本机的IP(非127.0.0.1),那你双击cassandra-cli.bat就无法连接到服务器了。这时你可以使用connect IP/PORT来连接到正确的IP与端口上。你也可以写一个批

处理:

cassandra-cli.bat -h 16.158.81.54 -u lewis -pw lewis

启动后可以看到如下信息:

注意cli的命令是以;为结束的.

Connected to: "Test Cluster" on 127.0.0.1/9160
Welcome to Cassandra CLI version 1.0.7

Type 'help;' or '?' for help.
Type 'quit;' or 'exit;' to quit.

[default@unknown] 

可以使用HELP;命令查看所有支持的命令, 以及命令的使用方法. 如:

HELP GET;

接下来我们就来操作一下cassandra数据库

首先, 创建一个Keyspace:

create keyspace DEMO; 回车执行

第二步, 指名要操作的keyspace

use DEMO; 回车执行

第三步, 创建一个叫Users的列族

[default@DEMO]create column family Users                
...     with key_validation_class = 'UTF8Type'    
...     and comparator = 'UTF8Type'               
...     and default_validation_class = 'UTF8Type';

好了, 接下来你就可以往里面存数据了

[default@DEMO] set Users[1234][name] = scott;
Value inserted.
Elapsed time: 10 msec(s).
[default@DEMO] set Users[1234][password] = tiger;
Value inserted.
Elapsed time: 10 msec(s).

取数据如下:

[default@DEMO] get Users[1234];
=> (column=name, value=scott, timestamp=1350769161684000)
=> (column=password, value=tiger, timestamp=1350769245191000)

Returned 2 results.
Elapsed time: 67 msec(s).

配置多节点集群

刚才的步骤只是建立了一个单节点的cassandra. 其实也是一个cassandra集群, 但只包含一个节点而已. 通过添加更多的节点, 就可以让它成为一个多节点的集群了. 

Note:

http://www.datastax.com/download 可以下载DataStax Community Edition, 这个安装完成后, Cassandra都是默认帮你配好的。这个工具还包括CQL3的SHELL和一个WEB的管理工具。

原文地址:https://www.cnblogs.com/modestmt/p/3051607.html