欢迎投稿

今日深度:

Linux环境Cassandra的单机及集群部署,linuxcassandra

Linux环境Cassandra的单机及集群部署,linuxcassandra


一、Cassandra单节点安装

一,Cassandra特点
1,分布式数据存储系统:每个节点都会存放部分数据的一个副本,如果一个节点down掉,另一个副本会相应请求
2,无中心架构:没有节点会承担特殊的管理任务,所有节点功能完全一样,不存在单点失效的问题
3,弹性水平扩展
4,可调节的一致性:数据一致性和性能二者不可兼得,这属于大数据环境下普遍存在的问题,需要做出取舍
5,无schema
二,Cassandra单节点安装

Cassandra版本:2.1.5
Java版本:
java version “1.7.0_72”
Java(TM) SE Runtime Environment (build 1.7.0_72-b14)
Java HotSpot(TM) 64-Bit Server VM (build 24.72-b04, mixed mode)
1,下载Cassandra安装包
首先去Cassandra官网下载最新版本压缩包:

下载

2,安装JDK并配置环境变量

[root@localhost cassandra]# echo $CASSANDRA_HOME 
/root/wifi/cassandra
[root@localhost cassandra]# echo $JAVA_HOME
/usr/java/default
[root@localhost cassandra]# 

3,修改JVM配置
JVM配置文件为cassandra-env.sh,其中有很多JVM配置如最大堆内存等等,
4,修改Cassandra配置
Cassandra配置文件为cassandra.yaml,比较重要的配置项如下:
默认集群名(cluster_name):Test Cluster
默认缓存文件存放路径(saved_caches_directory):CASSANDRA_HOME/data/saved_caches
默认数据文件存放路径(data_file_directories):CASSANDRA_HOME/data/data
默认commitlog存放路径(commitlog_directory):CASSANDRA_HOME/data/commitlog
默认的Cassandra服务地址(rpc_address):localhost
默认的Cassandra服务端口(rpc_port):9160
默认的CQL本地服务地址(listen_address):localhost
默认的CQL本地服务端口(native_transport_port): 9042
5,修改日志配置
从2.1+版本开始,Cassandra使用logback记录日志(参见Cassandra启动文件CASSANDRA_HOME/bin/cassandra)

cassandra_parms="-Dlogback.configurationFile=logback.xml"  
cassandra_parms="$cassandra_parms -Dcassandra.logdir=$CASSANDRA_HOME/logs" 

查看CASSANDRA_HOME/conf/logback.xml,可以找到Cassandra系统日志存放路径
${cassandra.logdir}/system.log

6,启动服务

[root@localhost apache-cassandra-2.1.5]# bin/cassandra

三,连接Cassandra
1,Cassandra命令行界面
不推荐这种连接方式,Cassandra命令行界面将会在Cassandra 3.0版本中移除

[root@localhost cassandra]# bin/cassandra-cli -h 192.168.199.44 -p 9160
Connected to: "Test Cluster" on 192.168.199.44/9160
Welcome to Cassandra CLI version 2.1.5
The CLI is deprecated and will be removed in Cassandra 3.0.  Consider migrating to cqlsh.
CQL is fully backwards compatible with Thrift data; see http://www.datastax.com/dev/blog/thrift-to-cql3
Type 'help;' or '?' for help.
Type 'quit;' or 'exit;' to quit.
[default@unknown] 

2,使用Cassandra交互式命令行接口cqlsh

[root@localhost cassandra]# bin/cqlsh 192.168.199.44 9042
Connected to Test Cluster at 192.168.199.44:9042.
[cqlsh 5.0.1 | Cassandra 2.1.5 | CQL spec 3.2.0 | Native protocol v3]
Use HELP for help.
cqlsh> 

四,为Cassandra设置用户名和密码
修改cassandra.yaml配置文件
把默认的
authenticator: AllowAllAuthenticator
改成
authenticator: PasswordAuthenticator
如果你需要登陆进去以后查看修改权限之类,需要修改
authorizer: AllowAllAuthorizer

authorizer: CassandraAuthorizer
启动cassandra

cql连接,cassandra是默认账户和密码

./cqlsh -u cassandra -p cassandra 192.168.199.225.44 9042

创建用户

CREATE USER myusername WITH PASSWORD 'mypassword' SUPERUSER ;

这里用户有两种,一个是superuser,一种是nosuperuser
cqlsh退出以后,用新用户登陆

./cqlsh -u root -p 123456 192.168.199.225.44 9042

注意,如果是集群模式,只需要在一台机器上配置就可以了,会自动同步过去

二、Cassandra多节点集群部署

1,部署第一个节点

Open cassandra.yaml which is in 'apache-cassandra-1.1.0/conf'.
Change listen_address: localhost -->  listen_address: <node IP address>
         rpc_address: localhost -->  rpc_address: <node IP address>
- seeds: "127.0.0.1" --> - seeds: "node IP address"

list_address定义了集群中其他节点的连接方式,所以多节点的集群必须将这个改成它实际的网卡地址。
roc_address定义了这个节点在哪里监听客户端,所以可以跟node的IP地址IP地址一样,如果我们想在所有的可用网卡接口上监听的话,设置为0.0.0.0。
seeds作为连接点,当一个新的节点加入到集群中的时候,它联系seeds得到其他节点的一些基础信息。所以在多节点中,作为种子的节点必须是所有的节点都可以通过路由连接到的。

注:在多节点的集群中,最好拥有多个seeds。多个节点作为seeds可以通过如下方式定义。
- seeds: “,,”
2,增加其他节点
简单的,我们就把第一个节点上的Apache Cassandra文件夹复制到每一个节点中,将listen_address和rpc_address替换成每一个节点对应的值(不需要去改变seeds区域的东西)。当我们将每一个节点启动的时候他们将加入到集群中。

在日志的记录中我们可以看到这个节点能够看到的其他节点的信息。
节点信息
3,监视集群
Nodetool,这个工具内置在了Apache Cassandra中,我们可以在bin目录下找到他。我们可以像如下方式来查看集群的一些信息。
集群信息

jConsole 我们可以使用这个工具监视内存的使用状况,线程的表现等等。在详细分析集群的细节和微调性能的时候,这个工具也显得非常的有用。

Cassandra GUI 如果你想以可视化的方式查看集群内的数据的话,这个工具很有用,有了这个工具,我们可以看到跨集群分布的内容。

www.htsjk.Com true http://www.htsjk.com/cassandra/25972.html NewsArticle Linux环境Cassandra的单机及集群部署,linuxcassandra 一、Cassandra单节点安装 一,Cassandra特点 1,分布式数据存储系统:每个节点都会存放部分数据的一个副本,如果一个节点down掉,另一个副...
相关文章
    暂无相关文章
评论暂时关闭