Cassandra安装使用简介

Cassandra的安装

前提

本文使用的Cassandra版本为3.9。

  • Cassandra3.9版本的运行需要jdk1.8的版本: Oracle Java Standard Edition 8 或者 OpenJDK 8都可以。可以通过命令java -version验证Java版本。
  • 如果想要使用cqlsh,需要Python2.7及其以上的版本。可以通过命令python --version验证python的版本。

使用二进制tarball文件安装

  • 从 Apache Cassandra downloads website 下载最新稳定发行版
  • 解压tarball文件到某个目录下, 比如通过如下命令:
    tar -xvf apache-cassandra-3.9-bin.tar.gz cassandra
具体示例:

wget http://mirrors.cnnic.cn/apache/cassandra/3.9/apache-cassandra-3.9-bin.tar.gz wget http://www.apache.org/dist/cassandra/3.9/apache-cassandra-3.9-bin.tar.gz.md5 wget https://www.apache.org/dist/cassandra/KEYS wget http://www.apache.org/dist/cassandra/3.9/apache-cassandra-3.9-bin.tar.gz.asc md5 apache-cassandra-3.9-bin.tar.gz | awk '{printf $4}' > mycomputation.md5 diff mycomputation.md5 apache-cassandra-3.9-bin.tar.gz.md5 gpg --import KEYS gpg --verify apache-cassandra-3.9-bin.tar.gz.asc apache-cassandra-3.9-bin.tar.gz tar -xvf apache-cassandra-3.9-bin.tar.gz cassandra


Cassandra的运行

  • 可选地,可把 apache-cassandra-3.6\bin 添加到path变量中。
  • 前台启动Cassandra,则直接在命令行窗口执行命令bin/cassandra -f,按“Control-C” 停止Cassandra.。如果是通过命令行bin/cassandra后台启动Cassandra,那么必须调用kill pid or pkill -f CassandraDaemon 来停止Cassandra, 其中pid是Cassandra的进程id, 此pid能够通过执行pgrep -f CassandraDaemon得到。
  • 通过从命令行执行bin/nodetool status得到Cassandra的运行情况。
  • 配置文件在con子目录下。
  • 从Cassandra 2.1开始, 日志和数据分别在logs 和data子目录下。更老的版本缺省在/var/log/cassandra 和 /var/lib/cassandra 下。

配置Cassandra

如果是单节点允许,则无需配置。如果是要配置集群或者客户端和node不在一个机器上,则需要做一些配置。

主运行配置

大部分的配置可以通过cassandra.yaml文件中的属性来设置。

  • cluster_name: 集群名
  • seeds: 集群种子,由逗号","分开的一列ip地址。
  • storage_port: 无需改变,只需保证端口没有被防火墙阻止。
  • listen_address: 节点的ip地址, 这个地址允许其他节点跟这个节点通信,所以要设置好。可选地,可以设置listen_interface 来告诉Cassandra 使用哪个interface。 listen_address和listen_interface只允许设置一个,而不是两个都设置。
  • native_transport_port: 连接storage_port, 保证这个端口没有被防火墙阻止,因为客户端要通过这个端口和Cassandra通信。

改变目录位置

  • data_file_directories: 数据文件所在的目录,可以是一个目录或多个目录。
  • commitlog_directory: commitlog文件所在的目录。
  • saved_caches_directory: 保存的缓存内容所在目录。
  • hints_directory: hints所在目录。

考虑性能原因,如果使用多个磁盘,最好把commitlog 和 data 文件放在不同的磁盘。

环境变量

JVM-level的参数设置,比如 heap size 可以在cassandra-env.sh中设置。可以添加额外的JVM命令行参数到JVM_OPTS环境变量; 当Cassandra启动,这些参数将会传递给JVM。

Logging

使用的logger是logbook,可以通过编辑logback.xml,改变日志设置。缺省情况下,INFO level日志,保存在system.log中,debug level保存在debug.log中。当前台运行时,INFO level日志也会在控制台打印。


插入和查询操作

Cassandra的API是CQL(the Cassandra Query Language)。要使用CQL, 必须连接到集群,这可以通过:

  • 使用cqlsh
  • 或通过Cassandra的client driver

1. CQLSH

cqlsh是一个命令行的shell,通过CQL与Cassandra交互。
如通过以下命令:
bin/cqlsh localhost
可以查看cqlsh,了解全部文档。
以下是示例:

$ bin/cqlsh localhost
Connected to Test Cluster at localhost:9042.
[cqlsh 5.0.1 | Cassandra 3.8 | CQL spec 3.4.2 | Native protocol v4]
Use HELP for help.
cqlsh> SELECT cluster_name, listen_address FROM system.local;

cluster_name | listen_address
--------------+----------------
Test Cluster | 127.0.0.1

(1 rows)
cqlsh>

2. Client drivers

通过Client drivers查看支持的语言驱动。

1)Datastax Java Driver for Apache Cassandra

  • Maven依赖:

驱动的Maven依赖:


com.datastax.cassandra
cassandra-driver-core
3.1.0

object mapper的Maven依赖:


com.datastax.cassandra
cassandra-driver-mapping
3.1.0

  • 二进制下载包

2)Datastax Python Driver for Apache Cassandra

  • 安装客户端驱动:
    pip install cassandra-driver
  • 验证安装:
    python -c 'import cassandra; print cassandra.__version__'
  • 测试正常连接
    from cassandra.cluster import Cluster
    cluster = Cluster()
    session = cluster.connect()
    rows = session.execute("SELECT cluster_name, listen_address FROM system.local")
    for row in rows:
    print(row.cluster_name, row.listen_address)

参考

Cassandra快速指导
Cassandra的Java Driver
Cassandra的Python Driver
Python Driver的安装
python-driver使用简介

你可能感兴趣的:(Cassandra安装使用简介)