概述
##初始化多节点集群(多个数据中心)
本示例介绍了安装跨越两个数据中心的六节点群集。每个节点都配置为使用GossipingPropertyFileSnitch(支持多个机架)和256个虚拟节点(vnodes)。
在Cassandra中,“数据中心”与“复制组”是同义的。这两个术语都是指为了复制目的将一组节点配置为一个组。
###先决条件
在启动群集之前,每个节点都必须正确配置。启动群集之前,必须确定或执行以下操作:
-
对Cassandra如何工作有一个很好的理解。至少,请务必阅读了解Cassandra 的架构(尤其是数据复制部分)和机架功能。
-
在每个节点上安装Cassandra。
-
为群集选择一个名称。
-
获取每个节点的IP地址。
-
确定哪些节点将是种子节点。不要使所有节点种子节点。
-
确定告密者和复制策略。该GossipingPropertyFileSnitch和NetworkTopologyStrategy被推荐用于生产环境。
-
确定每个数据中心和机架的命名约定。例如:DC1,DC2或100,200 / RAC1,RAC2或R101,R102。仔细选择名字; 重命名数据中心是不可能的。
-
在该cassandra.yaml配置文件和属性文件如 cassandra-rackdc.properties,给你更多的配置选项。
###步骤
1.假设你在这些节点上安装Cassandra:
node0 10.168.66.41 (seed1)
node1 10.176.43.66
node2 10.168.247.41
node3 10.176.170.59 (seed2)
node4 10.169.61.170
node5 10.169.30.138
**注意:**每个数据中心有多个种子节点是最佳做法。
2.如果在群集中运行防火墙,则必须打开某些端口才能在节点之间进行通信。请参阅配置防火墙端口的访问。
3.如果Cassandra正在运行,您必须停止服务器并清除数据:
这样做会从系统表中删除默认的cluster_name(Test Cluster)。所有节点必须使用相同的群集名称。
包安装:
#停止Cassandra
$ sudo service cassandra stop
#清除数据
$ sudo rm -rf /var/lib/cassandra/data/system/*
Tarball装置:
#停止Cassandra
$ ps auwx | grep cassandra
$ sudo kill pid
#清除数据
$ sudo rm -rf /var/lib/cassandra/data/data/system/*
4.在每个节点的cassandra.yaml文件中设置属性:
**注意:**在对cassandra.yaml文件进行任何更改之后,必须重新启动节点才能使更改生效。
- 要设置的属性:
-
群集名:
-
num_tokens: 推荐值:256
-
seeds: 每个种子节点的内部IP地址
在新的集群中。种子节点不执行引导(新节点加入现有集群的过程)。 -
listen_address:
如果节点是种子节点,则该地址必须与种子列表中的IP地址匹配。否则,gossip沟通失败,因为它不知道它是种子。如果没有设置,Cassandra会向系统请求本地地址,即与其主机名相关的地址。在某些情况下,Cassandra不会生成正确的地址,您必须指定listen_address。
-
rpc_address:监听客户端连接的地址
-
endpoint_snitch: 告密者的姓名(请参阅endpoint_snitch。)如果要更换告密者,请参阅 切换告密。
-
auto_bootstrap: false(仅 在初始化没有数据的干净节点时添加此设置。)
-
在所有节点上使用相同的 cassandra.yaml文件。
例:
cluster_name: 'MyCassandraCluster'
num_tokens: 256
seed_provider:
- class_name: org.apache.cassandra.locator.SimpleSeedProvider
parameters:
- seeds: "10.168.66.41,10.176.170.59"
listen_address:
endpoint_snitch: GossipingPropertyFileSnitch
**注意:**在种子列表中包含每个数据中心的至少一个节点。
5.在cassandra-rackdc.properties文件中,分配您在先决条件中确定的数据中心和机架名称。例如:
节点0到2
## Indicate the rack and dc for this node
dc=DC1
rack=RAC1
节点3到5
## Indicate the rack and dc for this node
dc=DC2
rack=RAC1
6.该 GossipingPropertyFileSnitch总是加载 cassandra-topology.properties当该文件存在。从任何新群集或从中迁移的任何群集上的每个节点上删除该文件 PropertyFileSnitch。
7.在所有节点上安装并配置Cassandra之后,DataStax建议一次启动一个种子节点,然后启动其余的节点。
**注意:**如果节点由于自动重新启动而重新启动,则必须先停止节点并清除数据目录,如上所述。
包安装:
$ sudo service cassandra start
Tarball装置:
$ cd install_location
$ bin/cassandra
要检查集群是否已启动并正在运行,请运行:
包安装:
$ nodetool status
Tarball装置:
$ cd install_location
$ bin/nodetool status
输出应该列出每个节点,并显示其状态 UN(正常)。
最后
以上就是健壮战斗机为你收集整理的三、初始化多节点集群(多个数据中心)的全部内容,希望文章能够帮你解决三、初始化多节点集群(多个数据中心)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复