如何在Ubuntu 16.04中运行单节点Cassandra群集

时间:2020-03-05 15:29:21  来源:igfitidea点击:

Apache Cassandra是一个开放源代码的分布式,高性能,高度可伸缩和容错的关系后数据库解决方案。
它既可以用作在线/事务处理应用程序的实时数据存储,又可以用作商业智能系统的读取密集型数据库。

关系数据库与Cassandra

关系数据库系统处理适度的传入数据速度,并从一个或者几个位置获取数据。
它管理主要结构化的数据,并支持具有故障转移的单点故障的复杂/嵌套事务。

Cassandra通过从许多位置获取数据来处理高传入数据速度。
它管理所有数据类型并支持没有单点故障的简单事务。
它提供了恒定的正常运行时间。
此外,它还提供读/写可伸缩性。

在本文中,我将提供有关如何安装Apache Cassandra并在Ubuntu 16.04服务器上运行单节点群集的教程。

安装Java

Cassandra需要Java应用程序才能在服务器上运行,请确保已安装最新的Java版本。
我们可以更新APT存储库软件包并安装Java。
Cassandra 3或者更高版本需要安装Java 8+版本。

root@ubuntu:~# apt-get update
root@ubuntu:~# apt-get install default-jdk
Setting up default-jdk (2:1.8-56ubuntu2) ...
Setting up gconf-service-backend (3.2.6-3ubuntu6) ...
Setting up gconf2 (3.2.6-3ubuntu6) ...
Setting up libgnomevfs2-common (1:2.24.4-6.1ubuntu1) ...
Setting up libgnomevfs2-0:amd64 (1:2.24.4-6.1ubuntu1) ...
Setting up libgnome2-common (2.32.1-5ubuntu1) ...
Setting up libgnome-2-0:amd64 (2.32.1-5ubuntu1) ...
Processing triggers for libc-bin (2.23-0ubuntu3) ...
Processing triggers for ureadahead (0.100.0-19) ...
Processing triggers for systemd (229-4ubuntu4) ...
Processing triggers for ca-certificates (20150104ubuntu1) ...
Updating certificates in /etc/ssl/certs...
0 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d...
done.
done.

我们可以确认已安装Java版本。

root@ubuntu:~# java -version
openjdk version "1.8.0_91"
OpenJDK Runtime Environment (build 1.8.0_91-8u91-b14-0ubuntu4~16.04.1-b14)
OpenJDK 64-Bit Server VM (build 25.91-b14, mixed mode)

创建一个用户来运行Cassandra

始终建议以用户而不是root用户身份运行此应用程序。
因此,我创建了我的Cassandra用户来运行该应用程序。

root@ubuntu:~# groupadd cassandra
root@ubuntu:~# useradd -d /home/cassandra -s /bin/bash -m -g cassandra cassandra
root@ubuntu:~# grep cassandra /etc/passwd
cassandra:x:1000:1000::/home/cassandra:/bin/bash

下载并安装Cassandra

现在,我们可以从此处下载最新的Apache Cassandra,并将其复制到首选目录。

我将这个tar文件下载到了/tmp文件夹中,并将其内容提取到了我的卡桑德拉“家”中。

root@ubuntu:/tmp# wget http://mirror.cc.columbia.edu/pub/software/apache/cassandra/3.6/apache-cassandra-3.6-bin.tar.gz
--2015-06-12 08:36:47-- http://mirror.cc.columbia.edu/pub/software/apache/cassandra/3.6/apache-cassandra-3.6-bin.tar.gz
Resolving mirror.cc.columbia.edu (mirror.cc.columbia.edu)... 128.59.59.71
Connecting to mirror.cc.columbia.edu (mirror.cc.columbia.edu)|128.59.59.71|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 35552323 (34M) [application/x-gzip]
Saving to: ‘apache-cassandra-3.6-bin.tar.gz’
apache-cassandra-3.6-bin.tar.gz 100%[===================================================================>] 33.91M 6.43MB/s in 12s
2015-06-12 08:37:01 (2.93 MB/s) - ‘apache-cassandra-3.6-bin.tar.gz’ saved [35552323/35552323]
root@ubuntu:/tmp# tar -xvf apache-cassandra-3.6-bin.tar.gz -C /home/cassandra --strip-components=1

更正所有权和设置变量

我们可以更正文件的所有权并设置适当的环境变量以顺利运行此应用程序。

root@ubuntu:/home/cassandra# export CASSANDRA_HOME=/home/cassandra
root@ubuntu:/home/cassandra# export PATH=$PATH:$CASSANDRA_HOME/bin
root@ubuntu:/home/cassandra# chown -R cassandra.cassandra .

现在,我们可以切换到cassandra用户并按以下方式运行此应用程序:

cassandra@ubuntu:~$sh bin/cassandra
INFO 09:10:39 Cassandra version: 3.6
INFO 09:10:39 Thrift API version: 20.1.0
INFO 09:10:39 CQL supported versions: 3.4.2 (default: 3.4.2)
INFO 09:10:39 Initializing index summary manager with a memory pool size of 24 MB and a resize interval of 60 minutes
INFO 09:10:39 Starting Messaging Service on localhost/127.0.0.1:7000 (lo)
INFO 09:10:39 Loading persisted ring state
INFO 09:10:39 Starting up server gossip
INFO 09:10:39 Updating topology for localhost/127.0.0.1
INFO 09:10:39 Updating topology for localhost/127.0.0.1
INFO 09:10:39 Node localhost/127.0.0.1 state jump to NORMAL

此输出表示Cassandra服务器现在已启动并运行良好。
现在,我们可以通过此命令检查并确认集群的状态。

root@ubuntu:/home/cassandra# nodetool status
Datacenter: datacenter1
=======================
Status=Up/Down
|/State=Normal/Leaving/Joining/Moving
-- Address Load Tokens Owns (effective) Host ID Rack
UN 127.0.0.1 142.65 KiB 256 100.0% fc76be14-acde-47d4-a4a2-5d015804bb3c rack1
The status and state notation UN means it is up and normal.

我们已经完成了单节点Cassandra集群的安装。
现在,我们可以看到如何连接到集群。

连接到我们的集群

我们可以执行此shell脚本“ cqlsh”来连接到我们的集群节点。