如何设置MongoDB Sharded Cluster以对抗Cassandra?

时间:2016-09-02 08:23:59

标签: mongodb

我有一个Cassandra Cluster,在环中设置了5个C *节点。所有数据都在1个节点上复制。数据在节点之间进行分区。

我使用MongoDB手册设置了Sharded Cluster,但我觉得如果我需要更多的configsvr节点和App Server,这不是一个理想的设置来对Cassandra集群进行基准测试。

  • 如何设置具有5个节点的MongoDB分片群集,模拟"模仿"我的Cassandra集群配置?
  • ConfigSvr,App Servers可以在与ShardSvr相同的节点上运行吗?如何为进程指定不同的配置?
  • 我需要多少副本集?我认为一个副本集保存完全相同的数据,因此将所有节点添加到一个副本集中将无法正常工作。有没有比引入包含两个节点的5个副本集更简单的方法?

1 个答案:

答案 0 :(得分:0)

以下是我提出的建议:

  
      
  1. 如何设置一个MongoDB分片群集,其中包含5个“模仿”我的Cassandra群集配置的节点?
  2.   

为此,可以使用没有复制的分片群集。这也是Datastax used MongoDB如何根据Cassandra和其他数据库对YCSB基准进行基准测试的方式:

No configuration files were used for MongoDB; instead the services were started with the parameters in the command line.  For the first instance that has a configuration database:
bin/mongod --fork --logpath /var/log/mongodb/mongocfg.log --logappend --dbpath /mnt/mongodb/mongocfg –configsvr

Each service was then started:
bin/mongod --fork --logpath /var/log/mongodb/mongodb.log --logappend --dbpath /mnt/mongodb/mongodb --shardsvr --storageEngine wiredTiger
bin/mongos –-fork --logpath /var/log/mongodb/mongos.log --logappend --configdb $MONGO_MASTER

请注意这个问题是因为我们想要对Cassandra和MongoDB进行基准测试。这不适合生产环境。

  
      
  1. ConfigSvr,App Servers可以在与ShardSvr相同的节点上运行吗?如何为进程指定不同的配置?
  2.   

是的,他们可以。您可以为进程使用不同的配置文件,也可以在命令行上运行它们。 MongoDB文档中概述了如何执行此操作。

  
      
  1. 我需要多少副本集?我认为一个副本集保存完全相同的数据,因此将所有节点添加到一个副本集中将不起作用。有没有比引入包含两个节点的5个副本集更简单的方法?
  2.   

在为您的用例对数据库进行基准测试时,在基准测试时根本不使用复制也是合适的。这就是Datastax所做的,请参考答案1中的链接。

如果您想要复制,当您有5个节点时,您还可以构建一个3节点副本集和一个2节点副本集以及另外的arbiter

使用6个节点,您可以使用三个2节点副本集,每个副本集都有一个仲裁器。这将最大限度地模仿Cassandra的复制因子1。