在CentOS 8 Linux上安装Apache Cassandra
如何在CentOS 8 Linux机器上安装Apache Cassandra? Apache Cassandra是一个免费的开源NoSQL数据库管理系统,旨在进行分布式和高度可用。 Cassandra可以在许多商品服务器上处理大量数据,而不会出现任何单点故障。
本教程将引导我们完成在CentOS 8上安装Cassandra的工作。完成安装后,请继续进行配置和调整Cassandra的工作,以与可用资源最少的机器一起使用。
Cassandra的特点
Cassandra提供了Cassandra查询语言(CQL),这是一种类似SQL的语言,
创建和更新数据库架构并访问数据。 CQL允许用户
使用以下命令在Cassandra节点群集中组织数据:
键空间:定义如何复制数据集,例如在哪个数据中心和多少个副本中。键空间包含表格。Table:定义分区集合的类型化架构。 Cassandra表可以在零停机时间内灵活地向表中添加新列。
表包含分区,分区包含列,分区。Partition:定义Cassandra中所有行必须具有的主键的必需部分。所有性能查询都在查询中提供分区键。行:包含由唯一主键标识的列的集合,该主键由分区键和可选的其他聚类键组成。列:具有一个类型且属于一行的单个数据。
Cassandra支持以下客户端驱动程序:JavaPythonRubyC/.NETNodejsPHPC ++ ScalaClojureErlangGoHaskellRustPerlElixirDart
在CentOS 8上安装Apache Cassandra
在CentOS 8上运行Cassandra需要Java。在撰写本文时,所需的Java版本是8. 如果要使用cqlsh,则需要最新版本的Python 2.7.
安装Java 8和Python:
sudo yum -y install epel-release python2 java-1.8.0-openjdk-devel
确认安装Java和Python。
$java -version openjdk version "1.8.0_242" OpenJDK Runtime Environment (build 1.8.0_242-b08) OpenJDK 64-Bit Server VM (build 25.242-b08, mixed mode) $python2.7 --version Python 2.7.16
在CentOS 8上安装Apache Cassandra
现在已经安装了Java和Python。现在让我们将Cassandra存储库添加到我们的CentOS系统中。
sudo tee /etc/yum.repos.d/cassandra.repo <<EOF [cassandra] name=Apache Cassandra baseurl=https://www.apache.org/dist/cassandra/redhat/311x/ gpgcheck=1 repo_gpgcheck=1 gpgkey=https://www.apache.org/dist/cassandra/KEYS EOF
使用以下命令安装Apache Cassandra。
sudo yum -y install cassandra
创建Cassandra服务。
sudo tee /etc/systemd/system/cassandra.service<<EOF [Unit] Description=Apache Cassandra After=network.target [Service] PIDFile=/var/run/cassandra/cassandra.pid User=cassandra Group=cassandra ExecStart=/usr/sbin/cassandra -f -p /var/run/cassandra/cassandra.pid Restart=always [Install] WantedBy=multi-user.target EOF
启动并启用服务以在引导时启动。
sudo systemctl daemon-reload sudo systemctl start cassandra.service sudo systemctl enable cassandra
检查服务状态:
$systemctl status cassandra.service ● cassandra.service - Apache Cassandra Loaded: loaded (/etc/systemd/system/cassandra.service; disabled; vendor preset: disabled) Active: active (running) since Wed 2017-03-04 22:24:31 EAT; 2s ago Main PID: 8758 (java) Tasks: 10 (limit: 26213) Memory: 3.9G CGroup: /system.slice/cassandra.service └─8758 java -Xloggc:/var/log/cassandra/gc.log -ea -XX:+UseThreadPriorities -XX:ThreadPriorityPolicy=42 -XX:+HeapDumpOnOutOfMemoryError -Xss256k -XX:StringTableSize=1000003 -XX:+AlwaysPreTouch -XX:-Us> Mar 04 22:24:31 cent8.localdomain systemd[1]: Started Apache Cassandra.
我们还可以通过以下命令验证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 70 KiB 256 100.0% 0daf41fa-22e5-4471-bc00-9aed6f566235 rack1
要对Cassandra运行查询,请使用以下命令调用CQL shell。
$cqlsh Connected to Test Cluster at 127.0.0.1:9042. [cqlsh 5.0.1 | Cassandra 3.11.6 | CQL spec 3.4.4 | Native protocol v4] Use HELP for help. cqlsh>
配置文件的默认位置是/etc/cassandra。日志和数据目录的默认位置是/var/log/cassandra /和/var/lib/cassandra。
配置Cassandra
要在单个节点上运行Cassandra,默认配置文件位于/etc/cassandra/conf/cassandra.yaml。对于节点群集设置,我们可能需要修改此文件以确保正确调整群集。
至少你
应该考虑设置以下属性:cluster_name:群集的名称.seeds:群集种子的IP地址的逗号分隔列表.storage_port:我们不一定需要更改此设置,但请确保没有防火墙阻止此端口.listen_address:节点的IP地址,这是允许其他节点与该节点通信的地址,因此更改它很重要。native_transport_port:对于storage_port,请确保此端口未被防火墙阻止,因为客户端将与之通信。卡桑德拉在这个港口。
更改目录的位置
配置yaml文件控制以下数据目录。data_file_directories:数据文件所在的一个或者多个目录.commitlog_directory:提交日志文件所在的目录.saved_caches_directory:保存的缓存所在的目录.hints_directory:提示所在的目录。
出于性能原因,如果我们有多个磁盘,请考虑将提交日志和数据文件放在不同的磁盘上。
设置环境变量
JVM级设置(例如堆大小)在cassandra-env.sh中设置。考虑将任何其他JVM命令行参数添加到环境变量JVM_OPTS中。这些参数在启动时会传递给Cassandra服务。
Cassandra日志
正在使用的记录器是logback。我们可以通过编辑logback.xml更改日志记录属性。默认情况下,它将以INFO级别登录到名为system.log的文件中,并以调试级别登录到名为debug.log的文件中。在前台运行时,它还将以INFO级别登录到控制台。