@xtccc
2016-04-03T10:22:14.000000Z
字数 2456
阅读 3485
Cassandra
参考文档:
目录
在真正开始部署Cassandra Cluster之前,我们应该对硬件规格、存储数据量以及workload进行评估,参考 Planning a cluster deployment 。
Cassandra分为 Apache Cassandra 和 DataStax Enterprise(DSE) 两类,它们的对比可以参照 这里,关于版本发布的规律可以参考 这里。
本文选择的版本是DataStax Enterprise 4.8,它使用了Cassandra 2.1和CQL 3.1,参考 DataStax Enterprise 4.8 - Installing DataStax Enterprise using the binary tarball 。
参考:
下载和安装
如果以下载安装包的形式来安装DSE,则首先需要在DataStax网站注册,然后用用户名和密码来下载安装包(下载后会以一个目录的形式存在):
curl --user username@password -L http://downloads.datastax.com/enterprise/dse.tar.gz | tar xz
配置
首先,需要配置存放data、commit log以及saved_caches的目录。
然后,需要修改相应的配置文件。Cassandra的主要配置文件是cassandra.yaml,DSE的主要配置文件是dse.yaml。
注意:cassandra.yaml中的seeds
必须用ip来表示(带双引号),不能写成hostname;listen_address
也必须写成本机的ip。
关于 replication factor:这个不需要在配置文件里面设置 —— 应该在创建keyspace时再设置,因为每个keyspace都可以有各自的副本因子数。
关于 token:在第一次启动之前,集群中的每个节点都必须被赋予一个token。在cassandra.yaml文件中设置initial_token(实测不设置也可以),同时一定要注释掉num_token。参考 Calculating tokens 以及 Generating tokens。
关于 集群拓扑:需要配置cassandra-rackdc.properties,但是似乎不需要配置 cassandra-topology.properties 和 cassandra-topology.yaml 。
关于 rpc_address: cassandra.yaml中的这个配置默认值是"localhost",这样运行没什么问题,如果改成本机的IP也可以。之前在运行OpsCenter时,发现有个DSE节点死活都连不上,后来把这个DSE节点cassandra.yaml文件中的"rpc_address"改成本机的IP后重启就可以了,
问题:怎样配置data center name ?
参考 Installing OpsCenter,Installing DataStax Agents
OpsCenter只要装在一个节点上即可,但每一个被监控的DSE节点上都要安装并运行DataStax-Agent,OpsCenter会与每个节点上的agent进行通信,以获取它们的状态并发出命令。
如果没有安装Datastax agent就启动OpsCenter,那么我们可以在Web中看到OpsCenter给出的提示,按照提示我们就可以在web上实现在各个节点中安装DataStax Agents。
启动和关系OpsCenter/DataStax-Agent的方法参考 Starting and Stopping OpsCenter and DataStax agents。
首选,依次启动seeds,然后再启动其他节点,不要一次性启动全部的节点。
(以下假设是用tarball安装)
[install_dir]/bin/dse cassandra
查看该节点的状态:
[install_dir]/bin/nodetool stataus
[install_dir]/bin/dse cassandra-stop
DataStax Agent
必须先在每一个被监控的DSE节点上启动DataStax-Agent:
Tarball安装
-----------------------------------------------------------------
后台启动:
$ <install_dir>/bin/datastax-agent
前台启动:
$ <install_dir>/bin/datastax-agent -f
关闭:(没有直接关闭的命令,先找到其pid然后kill)
$ ps -ef | grep datastax-agent
$ kill <pid>
重启:(没有直接重启的命令,先关闭再启动)
Package安装
-----------------------------------------------------------------
$ service datastax-agent {start|stop|status|restart|force-reload}