如何设定 Cassandra Cluster 在多个节点上
什么是 Cassandra Cluster?
A Cassandra 集群是整个 Cassandra 数据库。 这 Cassandra 集群包含许多不同层的存储单元,每一层都包含其他层。
大型组织,例如 Amazon像Facebook这样的公司需要管理海量数据。因此,这些机构无法将如此庞大的数据存储在单台机器上。这时,他们就会使用数据库,例如…… Cassandra 采用分布式架构。
这些组织将海量数据存储在多个节点上。这些节点彼此通信。为此, Cassandra 集群已建立。
- Cluster 它本质上是一组节点,这样节点之间就可以轻松地相互通信。
- 协调节点是接收客户端请求并代表该客户端与副本通信的节点。任何节点都可以充当任何请求的协调节点。
分区器
分区器决定数据在集群上的分布方式。分区器使用哈希函数在集群上分配数据。它使用分区键来计算哈希。该哈希称为 象征. 数据以此代币为基础进行分发。
默认分区器是 Murmur3Partitioner,它会生成均匀分布在固定范围内的令牌。每个节点拥有该范围内的一个或多个范围,这些范围的集合构成了…… 令牌环因为赋值是通过哈希而不是值来实现的,所以添加节点只会移动它所接管的范围,而不会重新排列整个数据集。
先决条件 Cassandra Cluster
集群设置有以下要求。
- 您应该有多台机器(物理机或虚拟机)作为节点。
- 网络中的节点必须能够相互通信。节点间通信的 7000 端口、启用 TLS 时使用的 7001 端口以及客户端连接的 9042 端口必须开放。
- 每个节点上都应该安装Linux。它是平台。 Cassandra 已在以下平台进行测试和支持。
- Apache Cassandra 必须在每个节点上安装相同版本。版本混用无法完成模式协议。
- 一个受支持的 JDK 必须在每台机器上安装,并设置 JAVA_HOME。
- 时钟必须与 NTP 同步。 Cassandra 通过时间戳解决冲突的写入操作,因此时钟漂移会在不知不觉中产生错误的结果。
最后一个要求最常被忽略,它会导致数据问题,而不是启动失败。
.
如何安装 Cassandra Cluster 在Linux上
Cassandra 必须在每台机器上安装此软件,然后任何机器才能加入集群。以下屏幕截图来自 DataStax Enterprise 图形安装程序,这是编写本教程时的常用方法。该安装程序已不再向公众分发,因此首先介绍当前的方法,然后才提供向导以供参考。
当前方法: 安装 Apache Cassandra 在每个节点上以相同的方式打包或二进制 tarball,然后验证每个节点是否都能独立启动,然后再尝试将它们连接起来。
tar -xzf apache-cassandra-x.y.z-bin.tar.gz -C /opt/ export CASSANDRA_HOME=/opt/apache-cassandra-x.y.z $CASSANDRA_HOME/bin/cassandra -f
单个节点正常启动后,将其停止,清除其数据目录,然后继续执行下面的集群配置部分。
步骤1) 运行 Cassandra 企业版安装。 Linux 在终端中运行安装程序。将显示以下页面。
此页面不提供任何必要信息。它仅提供有关 Cassandra 版本。因此请跳过此页并按下一步按钮。
步骤2) 接受许可协议。点击“下一步”按钮后,将显示以下页面。
本页提供有关以下软件包和子软件包的信息: Cassandra 即将安装的软件。下方会询问许可协议。勾选“我接受协议”复选框,然后点击“下一步”按钮。
步骤3) 安装构建器并单击“下一步”。单击“下一步”按钮后,您将看到以下页面。
此页面询问您有关安装选项的信息。
- 首先,它会询问安装目录。默认情况下,它安装在主目录中。
- 接下来,它会询问安装类型,选择简单安装。
- 接下来,它会询问是否更新系统,请勾选“否”。
- 接下来,它会询问默认接口。有两个选项,您可以安装在本地主机上,也可以选择 IP 地址。请选择 IP 地址进行安装。
- 按下一步按钮。
步骤4) 设置节点并单击“下一步”。单击“下一步”按钮后,将显示以下页面。
此页面询问有关节点设置的信息。
- 首先,选择节点类型“Cassandra 节点'。
- 接下来,在“Ring Name”中输入您的集群名称。 Cluster 同一集群中所有节点的名称应该相同。
- 接下来,选择种子节点。种子节点是其他非种子节点启动时所联系的节点。
- 提供此信息后,按下一步按钮。
步骤5) 安装监控代理。点击“下一步”按钮后,将显示以下页面。此页面会要求您输入代理的安装 IP 地址。
- 监控控制台需要代理,所有节点都可以在一个地方被观察到。
- 提供此信息后,按下一步按钮。
步骤6) 点击“下一步”进行安装。点击“下一步”按钮后,将显示以下页面。
现在安装程序已准备好安装。按下一步按钮。
步骤7) 等待安装过程完成。点击“下一步”按钮后,将显示以下页面。
安装程序将开始安装。
步骤8) 点击“完成”按钮。安装完成后,将显示以下页面。在同一页面上,您会看到默认显示的选项已勾选。
配置 cassandra.yaml 以加入节点
仅安装并不能创建集群。节点只有在 cassandra.yaml 文件中的四个设置一致时才能相互发现,而大多数集群配置问题都出在这个文件上。
cluster_name: 'Guru99 Cluster' seed_provider: - class_name: org.apache.cassandra.locator.SimpleSeedProvider parameters: - seeds: "192.168.1.10,192.168.1.11" listen_address: 192.168.1.10 rpc_address: 0.0.0.0 broadcast_rpc_address: 192.168.1.10 endpoint_snitch: GossipingPropertyFileSnitch
- 集群名称 必须在每个节点上都匹配。不匹配是节点拒绝加入的最常见原因。
- 种子 列出起始节点与其通信的联系点。每个数据中心两到三个种子节点就足够了;将每个节点都设为种子节点会阻止自动引导。ping.
- 监听地址 这是其他节点用来访问此节点的地址。它必须是一个真实的、可路由的地址,绝不能是 localhost。
- 端点告密者 告诉 Cassandra 机架和数据中心布局。戈西ping通常选择 PropertyFileSnitch,其值在 cassandra-rackdc.properties 中设置。
数据存在后更改告密者或集群名称需要额外的步骤,因此两者都应该在第一个节点启动之前确定。
开始 Cassandra Node
安装后 Cassandra 在每个节点上启动服务器,并按照以下步骤操作。顺序很重要:先启动种子节点,一次启动一个,等待每个节点报告运行正常后再启动下一个。同时启动多个节点可能会导致令牌范围冲突。
步骤1) 去 Cassandra 安装目录并启动服务器。
bin/cassandra -f
执行此命令后, Cassandra 服务器即将启动。以下是屏幕截图: Cassandra 服务器正在启动。
大约一分钟后服务器就会启动。逐个启动每个节点服务器。启动所有节点服务器后,您的 Cassandra 集群已可供使用。
步骤2) 通过检查任意一个节点的环来验证每个节点是否都已加入。
nodetool status nodetool describecluster
每个节点都应该显示状态 UN表示“运行正常”和“已启动”,并且“拥有”列应显示大致相等的百分比。describecluster 输出中只有一个模式版本,表明所有节点都同意该模式。
三种症状涵盖了大多数故障。从未出现的节点通常是集群名称不匹配或端口 7000 被阻塞。节点卡在…… UJ加入操作仍在传输数据,只是在大型集群上需要一些时间。所有权严重不均表明存在配置错误,可能是节点被放置在了错误的机架或数据中心。
如果环网络运行正常,则每个键空间的复制设置决定数据如何在其中分布,如以下部分所述: Cassandra 键空间 教程和 Cassandra 建筑 分解。











