Apache Cassandra 安装及配置
一.简介
Cassandra是一套开源分布式NoSQL数据库系统。它最初由Facebook开发,用于储存收件箱等简单格式数据,集GoogleBigTable的数据模型与Amazon Dynamo的完全分布式的架构于一身。
Cassandra是一个混合型的非关系的数据库,类似于Google的BigTable。Cassandra的主要特点就是它不是一个数据库,而是由一堆数据库节点共同构成的一个分布式网络服务,对Cassandra 的一个写操作,会被复制到其他节点上去,对Cassandra的读操作,也会被路由到某个节点上面去读取。对于一个Cassandra群集来说,扩展性能是比较简单的事情,只管在群集里面添加节点就可以了。
二.安装说明
以Cassandra 2.0.11版本为例
1、文件准备:
下载apache-cassandra-2.0.11-bin.tar 点击下载
下载jdk-7u45-linux-x64.tar 点击下载
(注意:Cassdra2.0.11 的最低要求是1.7版本的JDK)
2、安装JDK1.7:
jdk的安装见文章《CentOS 6下安装JDK并配置环境变量》
3、准备用户环境:
groupadd cassandra
useradd -s /bin/bash -g cassandra -d /opt/cassandra cassandra
4、解压、设置权限:
tar -zxvf apache-cassandra-2.0.11-bin.tar -C /opt/cassandra
chown -R cassandra:cassandra /opt/cassandra
mkdir /var/lib/cassandra
mkdir /var/log/cassandra
chown -R cassandra:cassandra /var/lib/cassandra
chown -R cassandra:cassandra /var/log/cassandra
5、运行Cassandra:
切换到cassandra用户,运行bin/cassandra
cd /opt/cassandra/apache-cassandra-2.0.11/bin/
su cassandra ./cassandra
********如果出现
INFO 02:34:57,479 Compacting [SSTableReader(path='/var/lib/cassandra/data/system/local/system-local-jb-4-Data.db'), SSTableReader(path='/var/lib/cassandra/data/system/local/system-local-jb-3-Data.db'), SSTableReader(path='/var/lib/cassandra/data/system/local/system-local-jb-1-Data.db'), SSTableReader(path='/var/lib/cassandra/data/system/local/system-local-jb-2-Data.db')]
INFO 02:34:57,545 Node localhost/127.0.0.1 state jump to normal
********证明成功启动
6、测试cassandra:
开一个cqlsh试试
[root@master bin]# ./cqlsh
Connected to Test Cluster at localhost:9160.
[cqlsh 4.1.1 | Cassandra 2.0.11 | CQL spec 3.1.1 | Thrift protocol 19.39.0]
Use HELP for help.
cqlsh>
7、关闭Cassandra:
ps -aux |grep cassandra
kill pid#pid为cassandra的pid
三.Cassandra集群配置
Cassandra 使用了去中心化的模式(类似 memcached), 因此使用它搭建集群非常 简单。下面简述使用 Cassandra 2.0.11 搭建集群的过程。
1. 首先需要准备3台或以上的计算机。下面假定有3台运行 Linux 操作系统的计 算机,IP地址分别为:192.168.23.10
192.168.23.11
192.168.23.12
2. 挑选其中的一台机开始配置,先展开 cassandra 发行包:
$ cd apache-cassandra-$VERSION
其中的 conf/cassandra.yaml 文件为主要配置文件,0.7 版以后不再采用XML格式配置文件了,而是 YAML 格式,不熟悉的话可以先了解一下。
Cassandra 在配置文件里默认设定了几个目录:
data_file_directories:
/var/lib/cassandra/datacommitlog_directory: /var/lib/cassandra/commitlogsaved_caches_directory: /var/lib/cassandra/saved_caches
data_file_directories 可以一次同时设置几个不同目录,cassandra 会自动同步所有目录的数据。另外在日志配置文件 log4j-server.properties 也有一个 默认设定日志文件的目录:
log4j.appender.R.File=/var/log/cassandra/system.log
一般情况下采用默认的配置即可,除非你有特殊的储存要求,所以现在有两种
方案
气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载
:一是按照默认配置创建相关的目录,二是修改配置文件采用自己指定的目录。
下面为了简单起见采用第一种方案:
$ mkdir -p /var/log/cassandra
$ chown -R `whoami` /var/log/cassandra
$ mkdir -p /var/lib/cassandra
$ chown -R `whoami` /var/lib/cassandra
上面的 `whoami` 是 Linux 指令用于获取当前登录的用户名,如果你不准备用当前登录用户运行 Cassandra,那么需要把 `whoami` 替换成具体的用户名。
3. 配置文件
$ vi conf/cassandra.yaml
由于 Cassandra 采用去中心化结构,所以当集群里的一台机器(节点)启动之后需要一个途径通知当前集群(有新节点加入啦),Cassandra 的配置文件里有一个 seeds 的设置项,所谓的 seeds 就是能够联系集群中所有节点的一台计算机,假如集群中所有的节点位于同一个机房同一个子网,那么只要随意挑选几台比较稳定的计算机即可。在当前的例子中因为只有3台机器,所以我挑选第一台作为种子节点,配置如下:
seeds:- 192.168.23.10
然后配置节点之前通信的IP地址:
listen_address: 192.168.23.10
需要注意的是这里必须使用具体的IP地址,而不能使用 0.0.0.0 这样的地址。
配置 Cassandra Thrift 客户端(应用程序)访问的IP地址:
rpc_address: 192.168.23.10
这项可以使用 0.0.0.0 监听一台机器所有的网络接口。
Cassandra 的 Keyspaces 和 ColumnFamilies 不再需要配置了,他们将在运行时创建和维护。
把配置好的 Cassandra 复制到第2和第3台机器,同时创建相关的目录,还需要修改 listen_address 和 rpc_address 为实际机器的IP地址。至此所有的配置完成了。
4. 启动Cassandra各个节点以及集群管理
启动顺序没什么所谓,只要保证种子节点启动就可以了:
$ bin/cassandra -f
参数 -f 的作用是让 Cassandra 以前端程序方式运行,这样有利于调试和观察日志信息,而在实际生产环境中这个参数是不需要的(即 Cassandra 会以 daemon 方式运行)。
所有节点启动后可以通过 bin/nodetool 工具管理集群,比如查看所有节点运行情况:
$ bin/nodetool -host 192.168.23.10 ring
运行结果类似如下:
Address Status State Load Owns Token
159559...
192.168.23.10 Up Normal 49.27 KB 39.32% 563215...
192.168.23.11 Up Normal 54.42 KB 16.81% 849292...
192.168.23.12 Up Normal 73.14 KB 43.86% 159559...
命令中 -host 参数用于指定 nodetool 跟哪一个节点通信,对于 nodetool ring 命令来说,跟哪个节点通信都没有区别,所以可以随意指定其中一个节点。
从上面结果列
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
可以看到运行中的节点是否在线、State、数据负载量以及节点Token(可以理解为节点名称,这个是节点第一次启动时自动产生的)。我们可以使用 nodetool 组合 token 对具体节点进行管理,比如查看指定节点的详细信息:
$ bin/nodetool -host 192.168.23.10 info
运行的结果大致如下:
71
Load : 54.42 KB
Generation No : 1302057702
Uptime (seconds) : 591
Heap Memory (MB) : 212.14 / 1877.63