我有一个Cassandra Cluster,在环中设置了5个C *节点。所有数据都在1个节点上复制。数据在节点之间进行分区。
我使用MongoDB手册设置了Sharded Cluster,但我觉得如果我需要更多的configsvr节点和App Server,这不是一个理想的设置来对Cassandra集群进行基准测试。
答案 0 :(得分:0)
以下是我提出的建议:
- 如何设置一个MongoDB分片群集,其中包含5个“模仿”我的Cassandra群集配置的节点?
醇>
为此,可以使用没有复制的分片群集。这也是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进行基准测试。这不适合生产环境。
- ConfigSvr,App Servers可以在与ShardSvr相同的节点上运行吗?如何为进程指定不同的配置?
醇>
是的,他们可以。您可以为进程使用不同的配置文件,也可以在命令行上运行它们。 MongoDB文档中概述了如何执行此操作。
- 我需要多少副本集?我认为一个副本集保存完全相同的数据,因此将所有节点添加到一个副本集中将不起作用。有没有比引入包含两个节点的5个副本集更简单的方法?
醇>
在为您的用例对数据库进行基准测试时,在基准测试时根本不使用复制也是合适的。这就是Datastax所做的,请参考答案1中的链接。
如果您想要复制,当您有5个节点时,您还可以构建一个3节点副本集和一个2节点副本集以及另外的arbiter。
使用6个节点,您可以使用三个2节点副本集,每个副本集都有一个仲裁器。这将最大限度地模仿Cassandra的复制因子1。