在 Ubuntu 上安装 Apache Cassandra

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

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

 
<font face="Courier New">1</font>Error: Exception thrown by the agent : java.rmi.server.ExportException: Port already in <font face="Courier New">use: 7199; nested exception is:  </font>
<font face="Courier New">2</font> java.net.BindException: Address already in <font face="Courier New">use</font>

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

英文原文OSCHINA原创翻译

相关推荐