我是靠谱客的博主 健壮战斗机,最近开发中收集的这篇文章主要介绍三、初始化多节点集群(多个数据中心),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

##初始化多节点集群(多个数据中心)

本示例介绍了安装跨越两个数据中心的六节点群集。每个节点都配置为使用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(正常)。

最后

以上就是健壮战斗机为你收集整理的三、初始化多节点集群(多个数据中心)的全部内容,希望文章能够帮你解决三、初始化多节点集群(多个数据中心)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(65)

评论列表共有 0 条评论

立即
投稿
返回
顶部