在 Ubuntu 上安装 Apache Cassandra
openkk
12年前
Apache Cassandra 是一个分布式的、可伸缩、高可用以及容错的 NoSQL 数据库,最开始由 非死book 开发,后来贡献给 Apache 基金会。Cassandra 的数据模型灵感来自于 Google Bigtable ,其分布式模型灵感来自 Amazon Dynamo. 如果你希望了解更多 Cassandra 的设计细节,可参考 非死book 的一篇 论文 。
本文将介绍如何在 Ubuntu 12.04 上安装 Cassandra。- 首先使用如下命令安装新的更新
sudo apt-get update sudo apt-get upgrade
- 打开 /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
- 注册并添加 PGP 密钥然后重新更新,注意你需要相应的修改密钥
gpg --keyserver wwwkeys.pgp.net --recv-keys 4BD736A82B5C1B00 sudo apt-key add ~/.gnupg/pubring.gpg sudo apt-get update
- 开始安装 Cassandra
sudo apt-get install cassandra
- 启动 Cassandra 服务器
sudo cassandra -f
启动后,你将会看到如下信息.... .... .... INFO 12:18:29,140 Listening for thrift clients...
- 要停止 Cassandra 服务器进程必须先找到它的进程 id
ps auwx | grep cassandra
下列输出信息可知道进程 id 为 3595root 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.
- 你也可以使用如下命令来启动 Cassandra 服务
sudo /etc/init.d/cassandra start
- 使用如下命令来停止 Cassandra 服务
sudo /etc/init.d/cassandra stop
- /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
你也可以使用二进制的安装方法,详情请看这里。