##初始化多节点群集(单个数据中心)
本主题包含有关使用单个数据中心部署Cassandra群集的信息。
###先决条件
在启动群集之前,每个节点都必须正确配置。启动群集之前,必须确定或执行以下操作:
-
对Cassandra如何工作有一个很好的理解。至少,请务必阅读了解体系结构,特别是数据复制部分和Cassandra的机架功能。
-
在每个节点上安装Cassandra。
-
为群集选择一个名称。
-
获取每个节点的IP地址。
-
确定哪些节点将是种子节点。不要使所有节点种子节点。
-
确定告密者和复制策略。该GossipingPropertyFileSnitch和NetworkTopologyStrategy被推荐用于生产环境。
-
确定每个机架的命名约定。例如,好的名字是RAC1,RAC2或R101,R102。
-
该cassandra.yaml配置文件和属性文件如 cassandra-rackdc.properties,给你更多的配置选项。
本示例介绍了在一个数据中心内安装跨2个机架的6节点群集。每个节点已经配置为使用GossipingPropertyFileSnitch和256个虚拟节点(vnodes)。
在Cassandra中,“数据中心”与“复制组”是同义的。这两个术语都是指为了复制目的将一组节点配置为一个组。
###步骤
1.假设你在这些节点上安装Cassandra:
node0 110.82.155.0 (seed1)
node1 110.82.155.1
node2 110.82.155.2
node3 110.82.156.3 (seed2)
node4 110.82.156.4
node5 110.82.156.5
**注意:**每个数据中心有多个种子节点是最佳做法。
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: "110.82.155.0,110.82.155.3"
listen_address:
rpc_address: 0.0.0.0
endpoint_snitch: GossipingPropertyFileSnitch
如果rpc_address设置为通配符地址(0.0.0.0),则必须设置broadcast_rpc_address,否则服务甚至不会启动。
5.在cassandra-rackdc.properties文件中,分配您在先决条件中确定的数据中心和机架名称。例如:
# indicate the rack and dc for this node
dc=DC1
rack=RAC1
6.该 GossipingPropertyFileSnitch总是加载 cassandra-topology.properties当该文件存在。从任何新群集或从中迁移的任何群集上的每个节点上删除该文件 PropertyFileSnitch。
7.在所有节点上安装并配置Cassandra之后,建议一次启动一个种子节点,然后启动其余的节点。
**注意:**如果节点由于自动重新启动而重新启动,则必须先停止节点并清除数据目录,如上所述。
包安装:
$ sudo service cassandra start
Tarball装置:
$ cd install_location
$ bin/cassandra
8.要检查铃声是否已启动并正在运行,请运行:
包安装:
$ nodetool status
Tarball装置:
$ cd install_location
$ bin/nodetool status
输出应该列出每个节点,并显示其状态 UN(正常)。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eQ1BDxIT-1602313972548)(http://docs.datastax.com/en/cassandra/3.0/cassandra/images/screenshots/init_nodetool_status.png)]