Cassandra 介绍以及安装使用

一、Cassandra 介绍

Cassandra简短介绍: ​ Apache Cassandra是一个开源的分布式数据库,它具有高可用、弹性可伸缩、强容错、可调节的一致性等特点。Cassandra 基于Amazon'Dynamo 的分布式架构设计以及它的数据模型是基于Google的Bigtable进行开发。现在被广泛应用于web站点。 ​

二、Cassandra安装

安装的话一般分2种:1.下载可执行的安装包;2.源码编译;第一种我们先不用介绍,直接从下载页面下载需要的可执行文件即可;我们主要来介绍源码编译得到我们需要的过程,这里以最新release版本进行演示,在进行源码编译安装前本机上面需要执行一些预操作包括:jdk安装,这里建议jdk1.8以及以上的版本进行安装,安装可以参考相关谷歌文档进行;ant 安装,因为cassandra使用ant编译工具;作者的jdk 以及ant的版本信息如下:
➜ cassandra git:(3.11) java -version
java version "1.8.0_144"
Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)

➜ cassandra git:(3.11) ant -version
Apache Ant(TM) version 1.10.1 compiled on February 2 2017

上面的预先准备完成以后,那么我们开始执行正确的源码编译安装:

2.1.源码编译流程
  • 从github 下载对应的源码:git clone https://github.com/apache/cassandra.git

  • 切换到release的分支:git checkout -b 3.11 origin/cassandra-3.11

  • cd 到cassandra的目录下面,在这个目录下面一定要有一个build.xml 这个类似的文件,因为cassandra使用ant 做编译软件,该文件不可缺少;

  • 编译&打包为可执行的文件: ant clean build release

    我们在build 目录下面可以看到如下的一些内容:

build git:(3.11) ✗ ls
apache-cassandra-3.11.3-SNAPSHOT-bin.rat.txt apache-cassandra-thrift-3.11.3- SNAPSHOT.pom
apache-cassandra-3.11.3-SNAPSHOT-bin.tar.gz build-dependencies-sources.xml
apache-cassandra-3.11.3-SNAPSHOT-bin.tar.gz.md5 build-dependencies.xml
apache-cassandra-3.11.3-SNAPSHOT-bin.tar.gz.sha classes
apache-cassandra-3.11.3-SNAPSHOT-dist.pom dist
apache-cassandra-3.11.3-SNAPSHOT-parent.pom ecj
apache-cassandra-3.11.3-SNAPSHOT-src.rat.txt jacoco
apache-cassandra-3.11.3-SNAPSHOT-src.tar.gz javadoc
apache-cassandra-3.11.3-SNAPSHOT-src.tar.gz.md5 lib
apache-cassandra-3.11.3-SNAPSHOT-src.tar.gz.sha maven-ant-tasks-2.1.3.jar
apache-cassandra-3.11.3-SNAPSHOT.jar test
apache-cassandra-3.11.3-SNAPSHOT.pom tools
apache-cassandra-thrift-3.11.3-SNAPSHOT.jar
这些就是我们打编译打出来的release包;当然这里version给的是snapshot版本,我们可以基于实际情况在build.xml里面进行修改

  • 我们选择上面5种build目录下的apache-cassandra-3.11.3-SNAPSHOT-bin.tar.gz 作为我们的安装版本

  • 到第这一步和第一种所说的下载可执行包的结果就一样了,那么我们可以做的事情就是,解压编译得到的tar包(下载的可执行包)

    cd到解压的包里面,然后主要有下面几类文件夹:

➜ apache-cassandra-3.11.3-SNAPSHOT git:(3.11) ✗ ll|grep dr |awk '{print $NF}'|tr -s '\n' ' '
bin conf doc interface javadoc lib pylib tools

分别介绍下这几个文件夹的意义:
bin
这个目录包括了很多可执行的文件,包括执行query语言的shell(cqlsh)客户端,以及命令行接口(CLI)的客户端,nodetool脚本(nodetool脚本是一个用于观测集群状态以及进行集群级别操作的工具脚本)此外还包含了一些用于在SSTable上面进行操作的脚本文件,比如:列出sstable包含的key的功能可执行文件(sstablekeys),大量读取以及恢复sstable内容的可执行文件(sstableloader)以及把cassandra的SSTable进行版本更新的可执行文件(sstableupgrade)。
conf
这个目录包含了cassandra实列的一些配置文件。那么久要求这个配置文件包含:cassandra.yaml(这个是cassandra可以运行的最主要的配置文件)、logback.xml(这个文件可以配置cassandra的打log的一些信息)、一些附加的可以选择性的做配置,比如可以使用配置修改网络拓扑结构(network topology)、trigger等;
interface
这个文件夹只包含了cassandra.thrift这个文件,这个文件基于thrift协议定义了一个RPC的接口。我们可以使用这个接口文件开发出多语言的接口。但是这个thrift接口后续不会支持,在4.0就直接被删除。
javadoc
这个文件夹里面主要是web化的一些cassandra的java api的展示;
lib
包含cassandra实列需要运行的一些lib 包;
pylib
包含cassandra的实列运行的时候cqlsh能够运行的python包;
tools
一些工具,包含了cassandra的压测工具,cassandra-stress等;

2.2.启动cassandra实列

分别介绍下在Linux/Mac os 以及windows上如何启动cassandra的实列:

windows

windows环境下你遵循如下操作即可:

  • 设置下JAVA_HOME,设置方式可以参考百度、谷歌

  • 设置下我们的CASSANDRA_HOME,在环境变量里设置下;

  • 默认情况下数据存储目录,cache目录,log目录这里使用默认的,也就是在CASSANDRA_HOME

    目录下面会有data(存放数据),logs(存放生成的log)

    完成上述操作,我们后续启动下进程,启动相关参考后续和Linux一样的操作

Linux/Mac os

在Linux环境下 设置完成JAVA_HOME以后,直接cd 到解压的tar包目录下面的bin目录下;

在这个目录下会有cassandra这个可执行文件,为了让我们的运行足够的简单,在Linux环境下,我们自己可以编写一个start脚本,命名为start-server.sh,脚本的内容是:

nohup ./cassandra -f > log 2>&1 &

然后直接在bin 目录下面运行 sh start-server.sh 即可启动该机器的cassandra进程。当然在start-server.sh 脚本里面我们可以做其他操作比如预调整进程的nice值等;

验证成功启动

我们可以通过jps 或者ps ef |grep cassandra 查看是否启动进程,或者netstat 查找9042端口是否处于listen状态来判断是否成功启动;

停止进程

bin目录下面有stop-server 可以处理这件事

执行cql验证

在bin目录下面可以执行cassandra-cli(3.0版本前)或者是cqlsh脚本进而输入胡cql语句直接访问数据库

但是如果需要通过cqlsh 运行cql语句的话,需要本机安装python2.7以及以上版本。

后续接下来的文章会系统介绍cassandra软件的配置、调优、使用、监控搭建、生产环境下的部署、cql的使用以及语句模型、到深入的代码研究和分析等一系列的文章,敬请期待。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,029评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,238评论 3 388
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,576评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,214评论 1 287
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,324评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,392评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,416评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,196评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,631评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,919评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,090评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,767评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,410评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,090评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,328评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,952评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,979评论 2 351

推荐阅读更多精彩内容