我正在尝试使用datastax ops center为学校项目复制cassandra nosql数据库中的数据。根据我的阅读,有三个关键字:cluster,node和datacenter,据我了解,一个节点中的数据可以在另一个节点中复制,而另一个节点又存在于另一个集群中。包含相同(重复)数据的所有节点组成一个数据中心。是对的吗?

如果不是,有什么区别?

最佳答案

Cassandra中元素的层次结构为:

  • 集群
  • 数据中心
  • 机架
  • 服务器
  • 节点(更准确地说是vnode)

  • 群集是数据中心的集合。

    数据中心是机架的集合。

    机架是服务器的集合。

    服务器默认包含256个虚拟节点(或vnode)。

    vnode是服务器内的数据存储层。

    注意:服务器是Cassandra软件。服务器安装在机器上,其中机器是物理服务器,EC2实例或类似服务器。

    现在专门解决您的问题。

    单个数据单元称为分区。是的,分区跨多个节点复制。分区的每个副本称为副本。

    在多数据中心群集中,复制是按数据中心进行的。例如,如果您在旧金山有一个名为dc-sf的数据中心,而在纽约有一个名为dc-ny的数据中心,则可以控制每个数据中心的副本数。

    例如,您可以将dc-sf设置为3个副本,将dc-ny设置为2个副本。

    这些数字称为复制因子。您可以专门说dc-sf的复制因子为3,而dc-ny的复制因子为2。简单来说,dc-sf将具有3个分布在三个vnode上的数据副本,而dc-sf将具有数据的2个副本分布在两个vnode上。

    尽管每个服务器默认都有256个vnode,但是Cassandra足够聪明,可以选择存在于不同物理服务器上的vnode。

    总结一下:
  • 数据跨多个虚拟节点复制(每个服务器默认包含256个vnode)
  • 数据的每个副本称为副本
  • 数据单位称为分区
  • 每个数据中心的
  • 复制控制

    10-06 15:41
    查看更多