对Debian和Gentoo下部署Cassandra指南

本文提供了一步一步的指南,详细解释了如何在Debian和Gentoo系统上下载、安装及配置Cassandra。包括创建启动、停止和查看状态的脚本,以及如何以集群模式运行Cassandra,涉及节点间的连接和数据同步。同时,提供了测试步骤以确保部署成功。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

下载Cassandra

http://incubator.apache.org/cassandra/download/ 选择二进制包下载,包名类似 apache-cassandra-incubating-x.y.z-bin.tar.gz 。

设置和运行

为了方便,下面所有命令以root身份执行。

1.以一个独立节点运行

  1. tar -zxvf cassandra-$VERSION.tar.gz   
  2.     mv cassandra-$VERSION /opt/cassandra   
  3.        
  4.     sudo mkdir -p /var/log/cassandra   
  5.     sudo mkdir -p /var/lib/cassandra   
  6.        
  7.     echo 'alias PATH=$PATH:/opt/cassandra/bin/'  >> ~/.bashrc && source ~/.bashrc  

创建start-cassandra.sh

  1. /opt/cassandra/bin/cassand  

 创 建stop-cassandra.sh

  1. kill `ps aux |  fgrep  $USER | grep cassandra | grep -v  'grep'  | awk  '{print $2}' `  

创建show-cassandra.sh

  1. #/bin/bash    
  2.     echo "cassandra PID: `ps aux |  fgrep  $USER | grep cassandra | grep -v 'grep' | awk '{print $2}'`"   

以后台方式运行节点:

  1. ./start-cassandra.sh  

或以前台方式运行:

  1. cassandra -f  

测试

  1. cassandra-cli --host localhost --port 9160  

如果成功会显示:

  1. Connected to localhost/9160   
  2.    Welcome to cassandra CLI.   
  3.     
  4.    Type 'help'  or  '?'   for  help. Type  'quit'  or  'exit'  to quit.   
  5.    cassandra>  

尝试写和读键:

  1. set  Keyspace1.Standard1[ 'shugelee' ][ 'first' ] =  'Lee'    
  2.   set  Keyspace1.Standard1[ 'shugelee' ][ 'last' ] =  'Li'    
  3.   set  Keyspace1.Standard1[ 'shugelee' ][ 'age' ] =  '21'    
  4.      
  5.   get  Keyspace1.Standard1[ 'shugelee' ]  

結果类似:

  1. (column=last, value=li; timestamp=1263050140529)   
  2.    (column=first, value=lee; timestamp=1263050117638)   
  3.    (column=age, value=18; timestamp=1263050155638)   
  4.  Returned 3 rows.  


2.以一个簇(集群)运行

假定两台debian均按上面安装并初步设置了cassandra环境:

  • A 192.168.1.101 [development server]
  • B 192.168.1.105 [developer Lee Li]

将A 192.168.1.101 [development server]作为主server运行。

development server的设置

  1. <Seed>127.0.0.1</Seed>  

改为:

  1. <Seed>192.168.1.101</Seed>  

  1. <ListenAddress>localhost</ListenAddress>  

改为:

  1. <ListenAddress>192.168.1.105</ListenAddress>  

  1. <ThriftAddress>localhost</ThriftAddress>  

改为:

  1. <ThriftAddress>0.0.0.0</ThriftAddress>  

developer Lee Li的设置

  1. <Seed>127.0.0.1</Seed>  

改为:

  1. <Seed>192.168.1.101</Seed>   
  2.     <Seed>192.168.1.105</Seed>  

  1. <ListenAddress>localhost</ListenAddress>  

改为:

  1. <ListenAddress>192.168.1.101</ListenAddress>  

  1. <ThriftAddress>localhost</ThriftAddress>  

改为:

  1. <ThriftAddress>0.0.0.0</ThriftAddress>  

分别运行A和B上的cassandra:

  1. canssandra -f  

分别在A和B上测试:

  1. nodeprobe -host 192.168.1.101 ring  

如果成功,結果类似:

  1. DEBUG - Loading settings from /opt/cassandra/bin/../conf/storage-conf.xml   
  2.  DEBUG - Syncing log with a period of 1000   
  3.  Starting Token                                 Ending Token                                 Size Address        Ring   
  4.  132617574668126261121070408499066554197        127319937893509951017249225297128612859         1 192.168.1.101  |<--|   
  5.  127319937893509951017249225297128612859        132617574668126261121070408499066554197         1 192.168.1.105  |-->|  

分别在A和B上测试链接到一个node:

  1. cassandra-cli  --host 192.168.1.105 --port 9160  

如果成功,結果类似:

  1. # cassandra-cli  --host 192.168.1.105 --port 9160    
  2.  Connected to 192.168.1.105/9160   
  3.  Welcome to cassandra CLI.   
  4.     
  5.  Type 'help'  or  '?'   for  help. Type  'quit'  or  'exit'  to quit.   
  6.  cassandra>  


3.测试清单

测试清单一:

  • A连接到自己的cassandra
  • A连接到B的cassandra
  • B连接到自己的cassandra
  • B连接到A的cassandra
  • A连接到自己的cassandra,写入并读取键值
  • A连接到B的cassandra,写入并读取键值
  • B连接到自己的cassandra,写入并读取键值
  • B连接到A的cassandra,写入并读取键值

测试清单二:

  • B停止Cassandra服务,B连接到A并写入数据,重启B的Cassandra服务,B连接到自身的Casssandra,查看刚刚在A写入 的数据(以-f方式运行观察,B重启时,立即自动与A同步!非常好!)


4.在各个平台下运行


Gentoo GNU/Linux + JRE6下运行成功


Windows XP SP3 + JRE6下运行成功

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值