Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >如何在Ubuntu 14.04上使用Cassandra运行多节点群集数据库

如何在Ubuntu 14.04上使用Cassandra运行多节点群集数据库

原创
作者头像
温浪
修改于 2018-10-12 10:24:43
修改于 2018-10-12 10:24:43
1.4K00
代码可运行
举报
运行总次数:0
代码可运行

介绍

Apache Cassandra是一个高度可扩展的开源数据库系统,在多节点设置上实现了出色的性能。

在本教程中,您将学习如何安装和使用CassandraUbuntu 14.04上运行多节点集群。

准备

因为您即将构建一个多节点Cassandra集群,所以您必须确定您希望在集群中拥有多少台服务器并配置它们。建议但不要求它们具有相同或相似的规格。

要完成本教程,您需要以下内容:

  • 至少两个初始设置的Ubuntu 14.04服务器。没有服务器的同学可以在这里购买,不过我个人更推荐您使用免费的腾讯云开发者实验室进行试验,学会安装后再购买服务器
  • 必须使用防火墙保护每台服务器。如果您使用的是腾讯云的CVM服务器,您可以直接在腾讯云控制台中的安全组进行设置启用。
  • 每个服务器还必须安装Cassandra。

第1步 - 删除默认数据

Cassandra集群中的服务器称为节点。您现在在每台服务器上拥有的是单节点Cassandra集群。在此步骤中,我们将设置节点以用作多节点Cassandra集群。

必须在群集中的每个节点上重复此步骤和后续步骤中的所有命令,因此请确保打开的终端数与群集中的节点数一样多。

您将在每个节点上运行的第一个命令将停止Cassandra守护程序。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo service cassandra stop

完成后,删除默认数据集。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo rm -rf /var/lib/cassandra/data/system/*

第2步 - 配置群集

Cassandra的配置文件位于/etc/cassandra目录中。该配置文件cassandra.yaml包含许多指令,并且评论很好。在此步骤中,我们将修改该文件以设置群集。

只需修改以下指令即可设置多节点Cassandra集群:

  • cluster_name:这是您的群集的名称。
  • -seeds:这是以逗号分隔的群集中每个节点的IP地址列表。
  • listen_address:这是群集中的其他节点将用于连接到此节点的IP地址。它默认为localhost,需要更改为节点的IP地址。
  • rpc_address:这是远程过程调用的IP地址。它默认为localhost。如果正确配置了服务器的主机名,请保持原样。否则,请更改为服务器的IP地址或环回地址(127.0.0.1)。
  • endpoint_snitch:snitch的名字,这是告诉Cassandra它的网络是什么样的。默认为SimpleSnitch,用于一个数据中心的网络。在我们的例子中,我们将其更改为GossipingPropertyFileSnitch,这是生产设置的首选。
  • auto_bootstrap:该指令不在配置文件中,因此必须添加并设置为false。这使新节点自动使用正确的数据。如果要将节点添加到现有群集,则它是可选的,但在初始化新群集(即没有数据的群集)时需要。

使用nano或您喜欢的文本编辑器打开配置文件进行编辑。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo nano /etc/cassandra/cassandra.yaml

在文件中搜索以下指令,并按如下所示修改它们以匹配您的群集。替换your_server_ip为您当前正在处理的服务器的IP地址。每个服务器上的列表- seeds:应该相同,并且将包含用逗号分隔的每个服务器的IP地址。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
. . .cluster_name: 'CassandraDOCluster'. . .seed_provider:
  - class_name: org.apache.cassandra.locator.SimpleSeedProvider
    parameters:
         - seeds: "your_server_ip,your_server_ip_2,...your_server_ip_n". . .listen_address: your_server_ip
​
. . .rpc_address: your_server_ip
​
. . .endpoint_snitch: GossipingPropertyFileSnitch
​
. . .

在文件的底部,auto_bootstrap通过粘贴此行添加指令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
auto_bootstrap: false

完成修改文件后,保存并关闭它。对要包含在群集中的所有服务器重复此步骤。

第3步 - 配置防火墙

此时,已配置群集,但节点未进行通信。在此步骤中,我们将配置防火墙以允许Cassandra流量。

首先,重新启动Cassandra守护程序。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo service cassandra start

如果检查群集的状态,您将发现只列出了本地节点,因为它还无法与其他节点通信。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo nodetool status
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Datacenter: datacenter1
=======================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
--  Address      Load       Tokens       Owns    Host ID                               Rack
UN  192.168.1.4  147.48 KB  256          ?       f50799ee-8589-4eb8-a0c8-241cd254e424  rack1
​
Note: Non-system keyspaces don't have the same replication settings, effective ownership information is meaningless

为了允许通信,我们需要为每个节点打开以下网络端口:

  • 7000,这是命令和数据的TCP端口。
  • 9042,这是本机传输服务器的TCP端口。Cassandra命令行实用程序cqlsh将通过此端口连接到群集。

要修改防火墙规则,请打开IPv4的规则文件。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo nano /etc/iptables/rules.v4

在INPUT链中复制并粘贴以下行,这将允许上述端口上的流量。如果您正在使用防火墙教程中的文件rules.v4,则可以在# Reject anything that's fallen through to this point注释之前插入以下行。

指定的IP地址-s应该是群集中另一个节点的IP地址。如果你有一个IP地址的两个节点111.111.111.111222.222.222.222,在对规则111.111.111.111的机器应该使用的IP地址222.222.222.222

新防火墙规则

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
-A INPUT -p tcp -s your_other_server_ip -m multiport --dports 7000,9042 -m state --state NEW,ESTABLISHED -j ACCEPT

添加规则后,保存并关闭文件,然后重新启动IPTables。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo service iptables-persistent restart

步骤4 - 检查群集状态

我们现在已经完成了将节点变为多节点集群所需的所有步骤。您可以通过检查其状态来验证他们是否都在进行通信。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo nodetool status
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Datacenter: datacenter1
=======================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
--  Address      Load       Tokens       Owns    Host ID                               Rack
UN  192.168.1.4  147.48 KB  256          ?       f50799ee-8589-4eb8-a0c8-241cd254e424  rack1
UN  192.168.1.6  139.04 KB  256          ?       54b16af1-ad0a-4288-b34e-cacab39caeec  rack1
​
Note: Non-system keyspaces don't have the same replication settings, effective ownership information is meaningless

如果您可以看到您配置的所有节点,那么您刚刚成功设置了一个多节点Cassandra集群。

您还可以使用cqlshCassandra命令行客户端检查是否可以连接到群集。请注意,您可以为此命令指定群集中任何节点的IP地址。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cqlsh your_server_ip 9042

你会看到它连接:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Connected to My DO Cluster at 192.168.1.6:9042.
[cqlsh 5.0.1 | Cassandra 2.2.3 | CQL spec 3.3.1 | Native protocol v4]
Use HELP for help.
cqlsh>

然后你可以退出CQL终端。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
exit

结论

恭喜!您现在在Ubuntu 14.04上运行了一个多节点Cassandra集群。如果需要对群集进行故障排除,则首先查找线索位于/var/log/cassandra目录中的日志文件

想要了解更多关于使用Cassandra运行多节点群集数据库的相关教程,请前往腾讯云+社区学习更多知识。


参考文献:《How To Run a Multi-Node Cluster Database with Cassandra on Ubuntu 14.04》

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Akka-CQRS(2)- 安装部署cassandra cluster,ubuntu-16.04.1-LTS and MacOS mojave
对于akka-cluster这样的分布式软件系统来说,选择配套的数据库类型也是比较讲究的,最好也是分布式的,如cassandra,能保证良好的HA特性。前面的例子里示范akka-persistence时已经使用了cassandra作为journal和snapshot-store。一直以来基本上都在一部macbookpro上开发、测试akka-cluster相关软件。这次在腾讯云上租了两台8G,50G的服务器,安装了ubuntu 16.04.1 LTS操作系统,想着可以在一个真正的环境下试试cassandra cluster的安装部署和实际使用。先是试着在ubuntu上安装部署:
用户1150956
2019/05/25
9830
【DB宝58】Cassandra 简介
Cassandra([kəˈsændrə])是云原生和微服务化场景中最好的NoSQL数据库。
AiDBA宝典
2021/12/17
2.1K0
【DB宝58】Cassandra 简介
Apache Cassandra多节点跨数据中心集群配置以及日常操作
Cassandra是去中心化的集群架构,没有传统集群的中心节点,各个节点地位都是平等的,通过Gossip协议维持集群中的节点信息。为了使集群中的各节点在启动时能发现其他节点,需要指定种子节点(seeds),各节点都先和种子节点通信,通过种子节点获取其他节点列表,然后和其他节点通信。种子节点可以指定多个,通过在 conf/ cassandra.yaml中的seeds属性配置。
星哥玩云
2022/08/18
1.3K0
Apache Cassandra多节点跨数据中心集群配置以及日常操作
CentOS7 cassandra安装与测试
3节点分别安装(192.168.6.117,192.168.6.118,192.168.6.119) #下载 http://mirrors.hust.edu.cn/apache/cassandra/3.11.7/apache-cassandra-3.11.7-bin.tar.gz tar -xvf apache-cassandra-3.11.7-bin.tar.gz -C /opt cd /opt/apache-cassandra-3.11.7/ sed -i 's$#MAX_HEAP_SIZE="4
肖哥哥
2020/08/06
7250
如何在Ubuntu 14.04上安装Cassandra并运行单节点集群
Cassandra或Apache Cassandra是一个高度可扩展的开源NoSQL数据库系统,在多节点设置上实现了出色的性能。
信姜缘
2018/10/09
1.4K0
apache-cassandra
Github: https://github.com/apache/cassandra/
阿超
2024/12/22
3060
Cassandra教程(3)---- 架
Cassandra是设计用于跨多节点方式处理大数据,它没有单点故障;这种架构设计之初就考虑到了系统和硬件故障。Cassandra地址发生失效问题,通过采用跨节点的分布式系统,将数据分布在集群中的所有节点上解决。每个节点使用P2P的gossip协议来改变集群中的自己和其他节点的状态信息。写操作按顺序记录在每个节点的commit log上,以确保数据持久化。数据写入到一个in-memory结构,叫做memtable,类似于一个write-back缓存。每当memtable满了时,数据就写入到硬盘SSTable数据文件中。所有的写都自动分区和复制。Cassandra定期的使用compaction压缩SSTable。丢弃标记为tombstone的过期数据。为了保证集群数据的一致性,可以采用不同的repair机制。
py3study
2020/01/09
2K0
cassandra简单介绍与基本操作
  项目中用到了cassandra,用来存储海量数据,且要有高效的查询;本博客就进行简单的介绍和进行一些基本的操作
青石路
2018/09/10
1.9K0
cassandra简单介绍与基本操作
Apache Cassandra 快速入门指南
我们在这篇文章简单介绍了 Apache Cassandra 是什么,以及有什么值得关注的特性。本文将简单介绍 Apache Cassandra 的安装以及简单使用,可以帮助大家快速了解 Apache Cassandra。
大数据和云计算技术
2019/10/30
1.8K0
【云原生实战】KubeSphere平台安装之Linux单节点和多节点部署
4c8g;centos7.9;防火墙放行 30000~32767;指定hostname
陶然同学
2023/02/27
7210
【云原生实战】KubeSphere平台安装之Linux单节点和多节点部署
如何在Ubuntu 14.04上使用主从复制迁移Redis数据
Redis是一个内存中的NoSQL,键值缓存和存储,也可以保存到磁盘。它越来越受欢迎,并且在大型和小型项目中被用作数据存储区。出于多种原因,例如转换到功能更强大的服务器,有时需要将数据从一台服务器迁移到另一台服务器。
藕丝空间
2018/10/16
8950
Cassandra应用实践
执行bin/cqlsh ip即可cassandra的shell客户端,可以执行的CQL命令和mysql比较类似。
用户2003442
2019/02/25
1.8K0
如何在Ubuntu 18.04上创建多节点MySQL集群
MySQL Cluster分布式数据库为MySQL数据库管理系统提供高可用性和吞吐量。MySQL Cluster由一个或多个管理节点(ndb_mgmd)组成,这些节点存储集群的配置并控制ndbd存储集群数据的数据节点()。与管理节点通信后,客户端(MySQL客户端,服务器或本机API)直接连接到这些数据节点。
木纸鸢
2018/09/25
4.2K0
K3S 多节点集群部署
K3S 是一个轻量级的 Kubernetes 发行版,适合在资源受限的环境中部署。本文将详细介绍如何在多节点环境中部署 K3S,包括服务器和节点的配置、网络设置、Ingress 部署及调试方法。无论你是 K3S 新手还是资深用户,这份指南都能帮助你顺利搭建高效的 K3S 集群。
行者深蓝
2024/07/25
1.3K0
Linux NFS服务器配置与多节点部署详解
收到,我将以默语博主的身份,为零基础的新手撰写一篇完整且详细的《Linux——NFS服务器配置》技术博客。 内容将基于CentOS/Linux服务器,涵盖NFS概念、通讯原理、优缺点、安装部署(包括多节点、多服务器环境)、详细命令解释、常见错误与排查方法,并包含适用于k8s集群环境的挂载示例。 我会使用Markdown格式,结构清晰,操作步骤详细,示例丰富,便于小白理解。 马上为你整理好,请稍等!
默 语
2025/04/28
4970
Linux NFS服务器配置与多节点部署详解
故障分析 | Cassandra 用户信息 list Error
客户在集群中查看用户信息 list users 时,报错 Error from server:xxx 。其实是个简单的查看语句,但魔法失灵了?下面我们将集群中用户角色等信息的查看方式做一个统一的分析说明。
爱可生开源社区
2022/12/15
9920
数据源管理 | 分布式NoSQL系统,Cassandra集群管理
Cassandra是一套开源分布式NoSQL数据库系统。它最初由Facebook开发,用于储存收件箱等简单格式数据,此后,由于Cassandra良好的可扩展性,逐渐发展成为了一种流行的分布式结构化数据存储方案。
知了一笑
2020/08/13
9560
数据源管理 | 分布式NoSQL系统,Cassandra集群管理
如何在Ubuntu 14.04上保护Redis安装
但是,请记住,Redis旨在供受信任环境中的受信任客户端使用,并且没有自己的强大安全功能。为了突出显示这一点,可以看看这里来自Redis官方网站的引用:
挺问中原
2018/10/19
9860
基于docker创建Cassandra集群
Cassandra采用去中心化的集群架构,没有master节点的概念;但是会有seed节点在新节点连入时通知当前集群。
py3study
2020/07/29
2.6K0
基于docker创建Cassandra集群
如何在Ubuntu 14.04上使用Ghost和Nginx创建博客
Ghost是一个轻量级(~7.5MB)的开源博客平台,非常易于使用。Ghost是完全可定制的。互联网上有很多可供Ghost使用的免费或付费的主题。
穿鞋跑得快
2018/09/21
1.3K0
相关推荐
Akka-CQRS(2)- 安装部署cassandra cluster,ubuntu-16.04.1-LTS and MacOS mojave
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档