Cassandra入门指南--安装及配置

本文介绍了Apache Cassandra的安装和配置过程,包括在Ubuntu 14.04上设置JRE环境,下载并安装Cassandra,启动和停止Cassandra服务,以及使用cqlsh客户端工具进行基本操作。Cassandra是一个分布式NoSQL数据库,适用于需要高可用性和可扩展性的场景。

本文已迁移到我的新博客地址:blog.favorstack.io 欢迎访问~

今天开始,学习NoSQL数据库之Cassandra,将过程记录下来,也供有兴趣的参考。

 

简介

 

Apache Cassandra是一个开源分布式NoSQL数据库系统。最初由Facebook创建,集Google BigTable的数据模型与Amazon Dynamo的完全分布式的架构于一身。

文档:

 

 

Cassandra的官方文档主要是Wiki:http://wiki.apache.org/cassandra
另外,DataStax公司提供了更为详细的第三方文档可供参考学习:
http://docs.datastax.com/en/cassandra/2.1
我一向习惯是,学习一个新东西,先把环境搭起来,然后再折腾。

 

基本环境

 

OS:Ubuntu 14.04 x64
JDK:jdk-7u45-linux-x64.tar.gz
Cassandra:apache-cassandra-2.1.9-bin.tar.gz

 

JRE环境配置

1.首先检查一下需要的JRE环境:
$ java –version
如果已经安装了JDK或JRE,可能会显示如下:
java version "1.7.0_45"
Java(TM) SE Runtime Environment (build1.7.0_45-b18)
Java HotSpot(TM) 64-Bit Server VM (build24.45-b08, mixed mode)

如果没有,那么首先需要安装,其实只需要JRE就可以,这里因为有现成的JDK,所以就不单独再去下载JRE包了,注意Cassandra2.1.9需要Java7+(具体是7u25+)
2.创建一个目录,用来安装jre:
$ sudo mkdir /usr/lib/jvm
3.然后将我们的jdk包解压到该目录:
$ sudo tar -zxvf jdk-7u45-linux-x64.tar.gz -C /usr/lib/jvm
4.配置安装一个新的JRE:
$ sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/jdk1.7.0_45/jre/bin/java" 1
5.将该JRE设置为系统默认:
$ sudo update-alternatives --set java /usr/lib/jvm/jdk1.7.0_45/jre/bin/java
6.然后如第一步那样检查一下:
$ java –version

另外我们可以将该环境变量加入系统配置(可选):
$ sudo vi /etc/profile
最后追加:
export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_45/jre

 

安装Cassandra

1.首先从官网下载:
http://cassandra.apache.org/download/
找到一个合适的下载链接:
wget http://mirrors.hust.edu.cn/apache/cassandra/2.1.9/apache-cassandra-2.1.9-bin.tar.gz
也可以手动下载后再传到Linux中
2.解压并安装:
$ sudo tar -zxvf apache-cassandra-2.1.9-bin.tar.gz -C /var/lib

 

启动Cassandra

进入解压后的目录:
$ cd /var/lib/apache-cassandra-2.1.9
$ sudo bin/cassandra -f

如果启动过程没有什么异常的话,那么现在cassandra就已经启动成功了:
INFO 10:32:48 Starting listening for CQL clients onlocalhost/127.0.0.1:9042...
INFO 10:32:48 Binding thrift service to localhost/127.0.0.1:9160
INFO 10:32:48 Listening for thrift clients...

 

 

Cassandra默认运行在9160端口,我们可以检查一下:

 

注意:Cassandra2.1开始,客户端(cqlsh)默认端口改为9042了,Thrift客户端监听9160端口

$ netstat -nltp |grep 9160

显示:
tcp       0      0 127.0.0.1:9160          0.0.0.0:*               LISTEN   

 

 

停止Cassandra

 

 

 如果想停止的话,直接Ctrl+C就可以了。

注:” -f” 选项指定cassandra在前台运行,如果不加的话会在后台运行
如果要结束在后台运行的cassandra,输入:
$ ps -ef |grep cassandra
查询到该进程的pid,然后kill:
$ sudo kill pid
这里pid替换成你实际的pid即可。

使用cqlsh客户端工具

cqlsh是Cassandra的一个交互式的命令行界面,通过cqlsh,我们可以执行CQL(Cassandra Query Language)语句,使用CQL我们可以定义模式,插入数据,执行查询等等。

运行以下命令可以连接到本地Cassandra实例:
$ bin/cqlsh
如果连接成功,会提示如下:
Connected to Test Cluster at127.0.0.1:9042.
[cqlsh 5.0.1 | Cassandra 2.1.9 | CQL spec3.2.0 | Native protocol v3]
Use HELP for help.
cqlsh>


上面显示我们连接到了一个叫Test Cluster的集群,这是默认的名字。
在cqlsh中命令要以”;”结尾,这跟MySQL等其他客户端是一样的,并且支持TAB补全及提示功能,这点比较方便,比如一个命令记不全或者一个命令会有哪些选项时,可以用TAB列出。
现在我们来建一个keyspace--表的命名空间:
CREATE KEYSPACE mykeyspace
WITH replication = {'class':'SimpleStrategy', 'replication_factor': 1};

基本上一路TAB就写出来了,呵呵。
然后切换到该keyspace:
cqlsh> use mykeyspace ;
接着建表(叫做表可能不太准确):
create TABLE users(
    userid intPRIMARY KEY,
    fname text,
    lname text
);

 

 

 

插入几条数据:
insert into users (userid, fname, lname ) VALUES ( 1,'john','smith');
insert into users (userid, fname, lname ) VALUES ( 2,'john','zhangsan');
insert into users (userid, fname, lname ) VALUES ( 3,'john','smith');


现在我们执行以下查询看看:
select * from users;

 

 


需要注意的是,如果要执行带where条件的查询,那么条件中指定的列必须先建索引,否则会出错:
select * from users where lname = 'smith';
InvalidRequest: code=2200 [Invalid query]message="No secondary indexes on the restricted columns support theprovided operators: "

 

 

先建索引:
create INDEX on users(lname);
然后再执行刚才的查询就好了:

 

 

使用exit或quit可以退出cqlsh。
现在我们完成了基本的配置,但是我们现在只有一个节点,通常一个Cassandra集群中存在多个节点,配置多个节点的集群也非常简单,基本上就是重复以上步骤,然后做些小的调整即可,这个放在下一篇再介绍吧。

 

 

参考文档:http://wiki.apache.org/cassandra/GettingStarted

本文已迁移到我的新博客地址:blog.favorstack.io 欢迎访问~

 

 

<think>嗯,用户想要在Linux系统上安装配置Cassandra指南。首先,我需要回忆一下之前提供的引用内容,看看有没有相关的步骤。引用1提到进入Cassandra目录并运行bin/cassandra,引用2是关于配置yum仓库,引用3提到了需要Python3环境和解压安装包,引用4显示了一些日志路径。 首先,我应该整理一个清晰的步骤指南。用户可能使用的是不同的Linux发行版,所以需要涵盖两种安装方式:使用yum仓库和手动解压安装。根据引用2,用yum安装的话需要配置cassandra.repo文件,而引用3和1则是手动解压后的启动方法。 然后,用户可能需要环境准备,比如Java和Python3的支持,因为引用3提到需要Python3环境,而Cassandra通常依赖Java。因此,第一步应该检查Java和Python3的安装情况,并给出安装命令,比如使用apt或yum安装。 接下来是具体的安装步骤。分两部分:通过yum安装和手动解压。引用2中的yum仓库配置需要详细写出,包括编辑repo文件的内容。手动解压的部分则需要从下载tar包开始,解压后运行bin/cassandra,如引用1和3所述。 配置部分可能需要涉及Cassandra配置文件,比如cassandra.yaml,但用户提供的引用中没有详细配置信息,可能需要提到常见的配置项,如集群名称、监听地址、数据存储路径等。引用4中的路径/var/lib/cassandra/data可能涉及数据目录的配置,需要指出用户可以根据需要修改。 验证安装部分,使用nodetool status和cqlsh命令是标准做法,应该包括进去。另外,启动服务的方式,如果是yum安装可能是systemctl,而手动启动则是直接运行脚本,这里需要区分清楚。 注意事项方面,防火墙设置和日志位置(如引用4中的日志路径)也是重要的,需要提醒用户开放9042端口,并查看日志排查问题。 最后生成相关问题,考虑用户可能的后续步骤,比如配置文件详解、集群配置、性能优化、数据迁移和监控工具,这些都是安装后常见的需求。要确保问题覆盖用户可能遇到的下一步问题。</think>### Linux系统安装配置Cassandra分步指南 #### 一、环境准备 1. 确保已安装Java 8/11(Cassandra 4.x+要求) ```bash sudo apt install openjdk-11-jdk # Debian/Ubuntu sudo yum install java-11-openjdk # CentOS/RHEL ``` 2. 安装Python 3.6+(Cassandra工具依赖)[^3] ```bash sudo apt install python3 ``` #### 二、安装方式选择 ► **方式1:通过YUM仓库安装(推荐)** 1. 创建repo文件[^2] ```bash sudo vi /etc/yum.repos.d/cassandra.repo ``` 插入内容: ```ini [cassandra] name=Apache Cassandra baseurl=https://www.apache.org/dist/cassandra/redhat/40x/ gpgcheck=1 repo_gpgcheck=1 gpgkey=https://www.apache.org/dist/cassandra/KEYS ``` 2. 执行安装 ```bash sudo yum install cassandra ``` ► **方式2:手动二进制安装** ```bash wget https://archive.apache.org/dist/cassandra/4.0.0/apache-cassandra-4.0.0-bin.tar.gz tar -zxvf apache-cassandra-4.0.0-bin.tar.gz # 解压到目标目录[^3] cd apache-cassandra-4.0.0 ``` #### 三、基础配置 1. 修改配置文件`conf/cassandra.yaml` ```yaml cluster_name: 'MyCluster' listen_address: 本机IP rpc_address: 0.0.0.0 data_file_directories: - /var/lib/cassandra/data commitlog_directory: /var/lib/cassandra/commitlog ``` 2. 创建数据目录 ```bash sudo mkdir -p /var/lib/cassandra sudo chown -R 当前用户:用户组 /var/lib/cassandra ``` #### 四、启动与验证 ```bash bin/cassandra -R # 前台启动[^1] ``` ► 验证节点状态 ```bash bin/nodetool status ``` 应显示类似: ``` Datacenter: datacenter1 ======================= Status=Up/Down |/ State=Normal/Leaving/Joining/Moving -- Address Load Tokens Owns (effective) Host ID UN 127.0.0.1 103.67 KiB 256 100.0% aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee ``` ► CQL Shell连接验证 ```bash bin/cqlsh localhost 9042 ``` #### 五、注意事项 1. 防火墙需开放端口: - 9042: CQL客户端 - 7000: 节点通信 2. 日志位置:`logs/system.log`[^4]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值