Chinaunix首页 | 论坛 | 博客
  • 博客访问: 17452
  • 博文数量: 5
  • 博客积分: 125
  • 博客等级: 入伍新兵
  • 技术积分: 65
  • 用 户 组: 普通用户
  • 注册时间: 2011-12-20 11:29
文章分类
文章存档

2012年(5)

我的朋友

分类: LINUX

2012-07-18 20:36:23

 

Cassandra简介

Cassandra是一个混合型的非关系的数据库,类似于GoogleBigTable。其主要功能比Dynomite(分布式的Key-Value)更丰富,但支持度却不如文档存储MongoDB(介于关系数据库和非关系数据库之间的开源产品,是非关系数据库当***能最丰富,最像关系数据库的。支持的非常松散,是类似jsonbjson格式,因此可以存储比较复杂的数据类型。)Cassandra最初由Facebook开发,后转变成了开源项目。

一、java环境部署 1.1 JDK的安装

下载JDK1.6_20以上的版本,本案例以1.60_29为例

安装JDK

chmod +x jdk-6u29-linux-x64.bin

./ jdk-6u29-linux-x64.bin

1.2环境变量配置

配置.bash_profile

参考:

export JAVA_HOME=/home/zcb/jdk1.6.0_29

export PATH=$JAVA_HOME/bin:$PATH:$HOME/bin

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export JAVA_HOME PATH CLASSPATH

source . bash_profile        #加载环境变量,也可reboot

二、Cassandra的安装 2.1下载cassandra安装包,本案例以apache-cassandra-1.0.6-bin.tar.gz为例

 #tar -zxvf apache-cassandra-1.0.6-bin.tar.gz

#cd apache-cassandra-1.0.6

#mkdir -p /var/log/cassandra

#chown -R zcb.zcb /var/log/Cassandra        //注意目录的属主和属组

#mkdir -p /var/lib/cassandra

#chown -R zcb.zcb /var/lib/cassandra

注:由于原二进制安装包没有包含安全机制的class包,现已完整打包可用zip包用于部署。

部署步骤:

1、直接将apache-cassandra-1.0.6.zip上传至服务器指定目录

2mkdir apache-cassandra-1.0.6

3unzip apache-cassandra-1.0.6.zip  -d apache-cassandra-1.0.6

4#mkdir -p /var/log/cassandra

#chown -R zcb.zcb /var/log/Cassandra

#mkdir -p /var/lib/cassandra

#chown -R zcb.zcb /var/lib/cassandra

三、Cassandra的配置 3.1修改conf目录下的log4j.properties文件:

log4j.appender.R.File=/var/log/cassandra/logs/system.log   #日志文件目录,默认

3.2修改conf目录下的cassandra.yaml配置文件:

cluster_name: 'PisCluster'                #集群名称

注:如重命名集群名称后,需删除原cassandra数据文件,重新启动初始化

data_file_directories:

    - /var/lib/cassandra/data

commitlog_directory: /var/lib/cassandra/commitlog

# Cassandra在写数据之前,也需要先记录日志,称之为commitlog,然后数据才会写入到Column Family

saved_caches_directory: /var/lib/cassandra/saved_caches

#数据缓存文件在磁盘中的存储位置

authenticator:org.apache.cassandra.auth.AllowAllAuthenticator    #允许所有用户访问

authenticator: org.apache.cassandra.auth.SimpleAuthenticator

#合法的用户和对应的密码都在passwd.properties文件中定义

authority:org.apache.cassandra.auth.AllowAllAuthority           #登录的用户具有所有权限fM

authority: org.apache.cassandra.auth.SimpleAuthority

#合法的用户和对应的权限都在access.properties文件中定义

listen_address:             #节点间通讯的地址

rpc_address: 0.0.0.0         #对外服务的地址, 0.0.0.0 意为侦听所有地址

rpc_port: 9160             #服务端口为9160

其他配置,待补充

3.3 密码策略文件配置:

passwd.properties

用户名=密码        #pis=pispwd

access.properties

1=用户名          

#设定那些用户可以显示keyspaces列表,多个用户用逗号分隔。

2Keyspace1.=pis

#pis用户对keyspace1有可读可写权限

3Keyspace1.Standard1.=pis

#pis用户对keyspace1中的Standard1列族有可读可写权限。

注:cassandra的用户权限细分定位到column family (列族)

3.4 启动与停止

启动:

cd /apache-cassandra1.0.3

bin/Cassandra bin/Cassandra –f            #-f 前台启动

如有Starting up server gossip信息,说明cassandra已在本机运行

ps –ef | grep java   查看服务是否启动

注:如果是使用zip包部署,在添加过用户密码策略后,直接可执行cassandra主目录下的start脚本启动服务。

停止:cassandra没有设计专门的停止服务命令

pgrep -u `whoami` -f cassandra | xargs kill -9

四、字符客户端简单操作 4.1客户端操作

单节点:

linux下可直接使用命令登录

bin/cassandra-cli --host localhost

The command line client is interactive so if everything worked you should
be sitting in front of a prompt...
Connected to: "Test Cluster" on localhost/9160
Welcome to cassandra CLI.
Type 'help;' or '?' for help. Type 'quit;' or 'exit;' to quit.
[default@unknown]

出现以上信息说明此次登录成功。

带密码连接:

Cassandra主目录下输入bin/ cassandra-cli –h -p9160 -u pis -pw 'pispwd';

[default@unknown] show cluster name ;   

#查看cassandra集群的名字,可在cassandra.yaml中进行设置

[default@unknown] create keyspace zcb;     

#创建一个名为zcb的密钥空间相当于mysqldatabase

[default@unknown] show keyspaces ;    #查看keyspaces

#keyspace大致相当于关系数据库里的一个数据库。它会定义一个或多个列族,列族大致可以对应于关系数据库中的表。

[default@unknown] use zcb ;   #进入keyspace

[default@zcb]create column family user;    #创建一个名为user的列族

[default@zcb] describe zcb;  

#查看zcb这个keyspace的描述信息和列族的定义

[default@zcb] create column family user with comparator=UTF8Type and default_validation_class=UTF8Type and key_validation_class=UTF8Type;

#with后指定各种类型

[default@zcb]set user[‘student’][‘name’]=’abc’;

#user列族中插入一个名为student的键值,列名为name,值为abc的数据

[default@zcb]get user[‘student’];           #查看键值student的数据

[default@zcb]count user[‘student’];         #统计列数

[default@zcb]del user [‘student’];           #删除列

[default@zcb]drop column family user;       #删除列族

[default@zcb]drop keyspace zcb;            #删除keyspace

阅读(1636) | 评论(0) | 转发(1) |
0

上一篇:DRBD磁盘测试

下一篇:没有了

给主人留下些什么吧!~~