在 Ubuntu 上安装 Apache Cassandra

openkk 12年前

Apache Cassandra 是一个分布式的、可伸缩、高可用以及容错的 NoSQL 数据库,最开始由 非死book 开发,后来贡献给 Apache 基金会。Cassandra 的数据模型灵感来自于 Google Bigtable ,其分布式模型灵感来自 Amazon Dynamo. 如果你希望了解更多 Cassandra 的设计细节,可参考 非死book 的一篇 论文

本文将介绍如何在 Ubuntu 12.04 上安装 Cassandra。
  1. 首先使用如下命令安装新的更新
    sudo apt-get update  sudo apt-get upgrade
  2. 打开 /etc/apt/sources.list
    sudo gedit /etc/apt/sources.list
    在 sources.list 文件中添加如下内容
    deb http://www.apache.org/dist/cassandra/debian 10x main  deb-src http://www.apache.org/dist/cassandra/debian 10x main
  3. 注册并添加 PGP 密钥然后重新更新,注意你需要相应的修改密钥
    gpg --keyserver wwwkeys.pgp.net --recv-keys 4BD736A82B5C1B00  sudo apt-key add ~/.gnupg/pubring.gpg  sudo apt-get update
  4. 开始安装 Cassandra
    sudo apt-get install cassandra
  5. 启动 Cassandra 服务器
    sudo cassandra -f
    启动后,你将会看到如下信息
    ....  ....  ....  INFO 12:18:29,140 Listening for thrift clients...
  6. 要停止 Cassandra 服务器进程必须先找到它的进程 id
    ps auwx | grep cassandra
    下列输出信息可知道进程 id 为 3595
    root      3595  0.0  0.0  60048  1908 pts/0    S+   12:18   0:00 sudo cassandra -f
    然后使用 kill 命令来终止 Cassandra 服务(尽管这种方法比较粗暴)
    sudo kill <pid>
    当进程被停止后,你可在 Thrift 看到如下信息
    INFO 13:04:08,663 Stop listening to thrift clients  INFO 13:04:08,666 Waiting for messaging service to quiesce  INFO 13:04:08,667 MessagingService shutting down server thread.
  7. 你也可以使用如下命令来启动 Cassandra 服务
    sudo /etc/init.d/cassandra start
  8. 使用如下命令来停止 Cassandra 服务
    sudo /etc/init.d/cassandra stop
安装 Cassandra 将会创建如下目录
  • /var/lib/cassandra (data directories)
  • /var/log/cassandra (log directory)
  • /var/run/cassandra (runtime files)
  • /usr/share/cassandra (environment settings)
  • /usr/share/cassandra/lib (JAR files)
  • /usr/bin (binary files)
  • /usr/sbin
  • /etc/cassandra (configuration files)
  • /etc/init.d (service startup script)
  • /etc/security/limits.d (cassandra user limits)
  • /etc/default

在 Linux 平台上安装 JNA (Java Native Access) 会优化 Cassandra 的内存使用,要安装 JNA 很简单,只需要从这里下载 jna.jar 文件,并将这个文件保存到 /usr/share/cassandra/lib 目录即可.

如果你在启动 Cassandra 服务器时出现下面错误,则可能是 Cassandra 已经启动了,你需要首先停止正在运行的服务

Error: Exception thrown by the agent : java.rmi.server.ExportException: Port already in use: 7199; nested exception is:    java.net.BindException: Address already in use

你也可以使用二进制的安装方法,详情请看这里

英文原文