由于项目需要高并发的写入数据操作,原有的关系型数据库很难满足这部分的数据要求。经过查阅资料和比较后准备采用Cassandra来解决高写入的问题。
同时由于Cassandra可以和Hadoop很好的集成,为以后的在线分析也做了比较好的铺垫。
下面就是我做的一些测试。
1、获取Cassandra介质
下载并解压缩apache-cassandra-1.1.2-bin.tar.gz
2、运行配置Cassandra
执行以下指令启动。
./cassandra -f
f的意思是前台运行,可以随时Ctrl+C终止。
java.io.IOError: java.io.IOException: unable to mkdirs /var/lib/cassandra/data/system/schema_columnfamilies
会出错,因为这个用户没有创建/var/lib/cassandra/的权限(也可以给用户增加/var/lib的权限)
需要修改cassandra.yaml中的以下配置的路径
data_file_directories:
- /Nautilus/cassandra/data
commitlog_directory: /Nautilus/cassandra/commitlog
saved_caches_directory: /Nautilus/cassandra/saved_caches
修改log4j-server.properties中指定的log路径
log4j.appender.R.File=/Nautilus/cassandra/system.log
3、使用cassandra-cli测试
格式:bin/cassandra-cli -h host -p rpc_port
这里我们执行以下指令
./cassandra-cli -h 127.0.0.1 -p 9160
Connected to: "Test Cluster" on 127.0.0.1/9160
Welcome to Cassandra CLI version 1.1.2
Type 'help;' or '?' for help.
Type 'quit;' or 'exit;' to quit.
[default@unknown]
成功登录cli
4、创建测试keyspace
创建一个叫NOAH的keyspace
[default@unknown] create keyspace NOAH;
5a7a3b46-c006-3a22-9c84-e3b50662c8fa
Waiting for schema agreement...
... schemas agree across the cluster
使用NOAH的keyspace
[default@unknown] use NOAH;
Authenticated to keyspace: NOAH
[default@NOAH]
5、创建测试column family
创建一个叫Users的column family
[default@NOAH] create column family Users;
e6ae2c83-0f71-3882-be08-0275b894f261
Waiting for schema agreement...
... schemas agree across the cluster
6、存入一些测试数据到Users
[default@NOAH] set Users[utf8('1234')][utf8('name')] = utf8('张三')